自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (4)
  • 收藏
  • 关注

原创 Vmware Centos7配置桥接模式

前提我的版本是VMware15。1 虚拟机设置网络适配器虚拟机设置桥接模式,复制网络连接状态为可选,主要用于笔记本电脑在移动网络中发生IP变化时的自适应。2 设置网络选择和主机相同的网卡,保存退出。3 Centos设置在/etc/sysconfig/network-scripts/下查看是否存在ifcfg-xxx,别管xxx是多少,干它,比如我的是ifcfg-ens33,vi打开编辑,ONBOOT=no改为ONBOOT=yes,保存退出,其它都不用改。4 测试网络不需要关防

2020-06-19 15:31:36 314

原创 一文学会ElasticSearch 7.x的DDL、DQL、DML语句编写

1 说明不会查询语句的编写直接使用JavaAPI,你永远在东拼西凑,永远达不到所想即所得。本文的描述会方便我们写各种ES语句,包括索引、映射、查询、聚合。由于这些语句都是Json,因此它实际上对应的是各种嵌套对象。本文的思维导图所描述的各种语句都是从左到右连接起来的,现在对一些标记约定进行说明:类似properties { } 这样的花括号和properties [] 的中括号均代表数组,但...

2020-02-08 11:48:00 1414

原创 @RequestMapping/@Controller注解在哪里得到处理?

1 结论@RequestMapping/@Controller注解在实例化RequestMappingHandlerMapping的时候处理。先从ApplicationContext获取所有已注册Bean,然后依次判断是否包含这两个注解,如果是则把RequestMapping标注的method注册到RequestMappingHandlerMapping$MappingRegistry.mapp...

2020-01-28 22:20:05 567

原创 Zookeeper原理和代码实现

  Zookeeper是一个分布式一致性协调框架,它使用Zab一致性协议实现分布式一致性,提供树状节点的数据存储,该一致性特性可用于支持集群Leader选举;在一致性的基础上,Zookeeper的分布式一致性数据存储功能可用于名字服务(Naming Server)、动态DNS(DDNS)、分布式锁、分布式数据结构(常见的是队列)、发布订阅、配置中心、注册中心、分布式协调等功能。本文采取《从Paxo...

2019-12-01 14:42:44 474

原创 使用HSDB查看JVM中Class的运行时状态

1 前述  为了深入理解JVM原理,有必要知道Class类在JVM内部的表示形式,HSDB工具可以查看JVM中Class的运行时状态,下面记录一下使用过程。2 HSDB  HSDB (HotSpot Debbuger)是一款内置于SA(Serviceability Agent)中的GUI调试工具(《HotSpot实战》)。它位于%JAVA_HOME%/lib/sa-jdi.jar包中。SA是...

2019-11-20 00:25:14 416

原创 读书笔记:《Netty进阶之路》——ChannelHandler并发安全、NioEventLoop防阻塞挂死

  《Netty进阶之路》第7章、第8章分别提出ChannelHandler并发安全问题,NioEventLoop线程阻塞导致消息接收和处理缓慢。ChannelHandler的并发安全问题很好分析,NioEventLoop线程阻塞则需要一些技巧。  1 ChannelHandler并发安全  默认每个Channel中有各自的ChannelHandler实例,因此如果所有业务在NioEvent...

2019-06-24 22:47:23 1151

原创 读书笔记:《Netty进阶之路》——消息发送机制、消息接收时的内存申请机制

《Netty进阶之路》第5章、第6章分别提出两个问题:消息发送时没有限流造成消息积压,内存飙升;消息接收时没有注意正确的内存申请,导致内存和CPU占用不稳定。1 消息发送机制  Netty的消息发送前判断当前线程是否Netty NIOEventLoopLoop线程,如果是则直接执行写,否则封装成WriteTask添加到NIOEventLoopLoop的任务队列中执行写,这样做的好处是把IO操作...

2019-06-23 23:53:50 307

原创 读书笔记:《Netty进阶之路》——netty缓冲区、缓冲区释放、内存池

  第3章提出问题:“缓冲区未正确释放导致Netty内存池泄露”,引出Netty内存管理方式介绍;第4张提出问题:“ByteBuf使用不当导致报错、程序无法正常运行”,引出ByteBuf的使用方式和原理。我颠倒一下顺序,先回顾ByteBuf的正确使用和实现原理,后回顾Netty内存池技术。1 Netty缓冲区——ByteBuf  Netty的ByteBuf是一个抽象类,是Netty管辖的内存,...

2019-06-13 00:00:34 4847

原创 读书笔记:《Netty进阶之路》——Netty服务端、Netty客户端、优雅关闭

1 Netty服务端  第一章提出“Netty作为服务端启动时偶尔会有服务端意外退出的现象”的问题。原因:Netty作为服务端启动,为了防止服务端意外退出,应该防止EventLoopGroup意外关闭,因为EventLoopGroup是非守护线程,只要它没有退出,则JVM不会关闭。  若启动线程是main线程,且优雅关闭作业也在main线程,则启动完成后需要阻塞线程,否则finally块会关闭...

2019-06-10 23:44:13 3017

原创 Redission命令重试——netty.HashedWheelTimer

1 前言HashedWheelTimer是netty的定时任务执行机构,Redisson用它做命令重试。HashedWheelTimer的操作对象是HashedWheelTimeout,HashedWheelTimer实现io.netty.util.Timer接口,HashedWheelTimeout实现io.netty.util.TimerTask和io.netty.util.Timeout接...

2019-05-31 00:16:59 1123

原创 Redis设计与实现总结

本文总结自《Redis设计与实现》一书,本文只打算总结Redis底层数据结构的实现。1 Redis概览  Redis是一个C语言编写的开源、非关系型内存数据库。它底层属于单线程、全内存操作,提供对象共享、引用计数和对象回收功能,通过SDS(简单动态字符串)、链表、字典、跳跃表、整数集合和压缩表集中简单数据结构实现五种对象:String、List、Set、ZSet、Hash,和对象同级别的数据结...

2019-05-10 00:48:17 278

原创 Redis操作指南

1 Redis简介Redis 是完全开源免费的、遵守BSD协议的高性能数据库。Redis支持String,list,set,zset,hash等数据结构的key-value存储。它支持数据的持久化,支持master-slave模式的数据备份,支持事务。Redis 优势:(1)性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。(2)丰富的数据类型 – Re...

2019-05-04 23:02:56 299

原创 缓存话题讨论:缓存一致性、缓存穿透、缓存雪崩、缓存并发和缓存失效策略

  缓存分为客户端缓存和服务端缓存,服务端缓存又分本机缓存和网络缓存,我们要讨论的是网络中的缓存,也就是缓存与真实数据的交换需要通过网线的情况,我们假设讨论的背景:数据库1主1从,读写分离,缓存、数据库、网站应用分别处在不同的机器上。顺序上,我们先了解概念,再讨论制作缓存的方式,最后一一讨论概念部分提出的问题的解决方案。通常来说,本机缓存的情况比网络缓存要相对简单,因此,本机缓存也可以参考本文的讨...

2019-04-22 22:25:54 130

转载 数据缓存失效算法FIFO、LRU、LFU深入理解

本文来自转载 题目:请简要介绍FIFO、LRU、LFU的含义和原理含义:FIFO:First In First Out,先进先出LRU:Least Recently Used,最近最少使用LFU:Least Frequently Used,最不经常使用以上三者都是缓存过期策略。原理和实现:一、FIFO按照“先进先出(First&...

2019-04-22 20:36:24 292

原创 面向服务的架构(SOA)初探

SOA  百科里面的定义:面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。其实前面一句话才是重点,后面一句是废话:因为当今的服务间调用大都通过http请求调用,接口已经独立于操作系统、硬件平台和编程语言,而rpc调用已经有类...

2019-04-21 21:22:02 259

原创 我理解的HTTPS——协议、证书和使用示例

我理解的HTTPS——协议、证书和使用示例1.https协议与证书的使用1.1https/SSL/TLS之间的关系SSL协议(Secure Sockets Layer)是NetScape公司1994年设计的1.0版安全套接层协议,该协议最多出到3.0版本。1999年,互联网标准化组织ISOC接替NetScape公司,发布了SSL的升级版TLS 1.0版,2018年推出的1.3版本是当前(20...

2019-04-21 19:18:14 1263

原创 Spring源码解析——IoC部分(三)

在本系列的前两篇文章里面我们详细分析了Spring 容器的Bean信息存入过程,这一篇我们来看看依赖注入过程的源码。Bean的依赖注入实际发生在创建Bean时,创建Bean发生在第一次向容器索取Bean时,创建Bean会有解决循环依赖的措施,还会涉及到CGLIB。本文分2个大的部分:Bean创建与依赖注入和CGLIB实例化Bean。1 Bean创建与依赖注入1.1 获取Be...

2019-03-23 00:13:24 113

原创 Spring源码解析——IoC部分(一)

1 概述 IoC的意义在于它优雅地解决了类之间的复杂依赖关系,依赖对象的获得方式被反转,对象不必主动去获取被依赖的对象,容器会在适当的时机主动把被依赖对象交到对象手中,通过一种叫做依赖注入的方式。 根据《Spring技术内幕》的介绍,IoC的两个核心接口是BeanFactory和ApplicationContext,它们的操作对象Bean被抽象成BeanDef...

2019-03-07 23:13:54 177

原创 Spring源码解析——IoC部分(二)

首先我们关注一下Spring IoC容器的主要启动过程:Spring的ContextLoaderListener收到Tomcat容器启动完成的消息,初始化SpringIoC容器,开始执行refresh()。refresh()第2步(其他步骤先省略,下文会细说)会调用XmlBeanDefinitionReader读取Xml方式配置的BeanDefinition并注册,第5步会调用Be...

2019-03-05 23:24:21 141

原创 nginx静态资源配置+反向代理+负载均衡

nginx静态资源配置本文参考:https://blog.csdn.net/hzsunshine/article/details/63687054一、准备工作1、nginx配置文件Nginx文件查找:sudo nginx -t找到配置文件nginx.conf所在目录,进入目录进入文件:vi nginx.conf修改文件:先按insert,修改完后按esc,输入“:wq”(保存退出),不保存退出(“...

2018-04-18 22:54:16 2916

ASM ByteCode Viewer IDEA插件

下载后先解压!里面有2个版本的安装包!下载后先解压!下载后先解压!可以尝试在https://plugins.jetbrains.com/search?products=idea&search=Bytecode Outline下面搜“Bytecode Outline“

2020-07-20

Redis-3.2.100-Windows集群配置版

本压缩包内置3主3从2哨兵,集群模式开箱即用,哨兵模式需要修改主从配置,详见压缩包内的说明文档。本压缩包内置3主3从2哨兵,集群模式开箱即用,哨兵模式需要修改主从配置,详见压缩包内的说明文档。

2019-05-10

PEP8 Python编码规范

PEP8 Python编码规范PDF版,本人结合牛人博客亲自整理,本想免积分分享给大家,奈何最低都要1个积分

2018-10-08

GitOSC插件GitOSC插件

码云代码托管-Intellij IDEA的插件,无需解压,在settings-plugin-install from disk里选择安装。

2017-05-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除