自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 kafka命令

以下是kafka常用命令行总结:      1.查看topic的详细信息   ./kafka-topics.sh -zookeeper 127.0.0.1:2181 -describe -topic testKJ1      2、为topic增加副本   ./kafka-reassign-partitions.sh -zookeeper 127.0.0.1:2181 -reassi...

2018-10-12 15:03:32 175

原创 HBase 原理

http://lxw1234.com/archives/2016/09/719.html 这一篇讲的不错 Rowkey设计 rowkey是HBase实现分布式的基础,HBase通过rowkey范围划分不同的region,分布式系统的基本要求就是在任何时候,系统的 访问都不要出现明显的热点现象,所以rowkey的设计至关重要,一般我们建议rowkey的开始部分以hash或者MD5进行散列,尽...

2018-05-02 21:42:24 184

原创 linux 设置 ulimit

java.lang.OutOfMemoryError: unable to create new native thread   启动服务报错,无法创建native thread,排查结论是被系统限制资源,设置 ulimit   root 修改 /etc/security/limits.conf   *                -       core            5...

2018-04-20 17:11:02 153

原创 Probobuf 原理介绍

主要参考博文《https://www.jianshu.com/p/ec39f79c0412》 主要优点: 1. 序列化速度快,压缩体积小     1.1 数据紧凑,使用 tag+value 方式,tag为字段编号     1.2 剔除无效字段,未设置字段不会传输(proto3 之后全部字段都是optional)     1.3 传输字段采用特殊规则编码,体积更小(varints &am...

2018-03-19 18:59:55 244

原创 Redis 缓存问题及解决方案

1. 缓存穿透     指查询一个不存在的对象,缓存层和存储层都不会命中,可以采用缓存空对象或者bloom filter解决,两者的解决典型场景不同,bloom filter适用于数据相对固定实时性低的场景。 2. 无底洞优化     无底洞问题指水平扩展,性能没有提升甚至会下降,这是因为客户端一次批量操作会涉及很多网络操作,随着节点增多,耗时会变大,网络节点多对节点性能也有影响。优化方...

2018-02-07 15:49:34 220

原创 Redis Cluster集群故障转移

1. 故障发现     1.1 主观下线,Redis集群通过Gossip的ping,pong消息来互相通信,比如A节点向B节点发送ping,如果在 cluster-node-timeout时间内一直失败,则节点A会认为B是主观下线,同时将此状态信息在集群内广播     1.2 客观下线,当半数以上的持有槽的主节点都标记B是主观下线时,触发客观下线流程。           1.2.1 通...

2018-02-06 21:47:59 707

原创 Redis Cluster集群水平扩展

Redis分布式方案一般有两种 (1)客户端分区,优点是分区逻辑可控,缺点是需要客户端处理数据路由、高可用、故障转移等。 (2)代理方案,优点是简化客户端逻辑和升级,缺点是加重架构复杂性和性能损耗。 Redis Cluster是官方提供的分布式解决方案,从3.0版本正式推出,和以上两种方案都不太一样,采用了虚拟槽分区,分区方式采用了hash分区,它并没有使用一致性hash(增减节点会导致...

2018-02-05 21:06:27 408

原创 Redis Sentinel

Redis Sentinel 是 redis的高可用实现方案:故障发现、故障自动转移、配置中心、客户端通知,Jedis原生支持,客户端在连接时,实际连接的Sentinel集合,当Sentinel观测到变化和故障转移后,会Pub到client端,实际使用了redis的pub/sub功能。   1. 主节点故障,主从复制失败 2. Sentinel通过定期监控,发现主节点故障 3. 多个S...

2018-02-01 21:24:04 127

原创 Redis 主从复制

Redis主从复制过程,由从节点发起复制请求,默认情况从节点是只读的 1. 从节点发起复制请求,保存主节点信息 2. 主从建立socket连接 3. 从节点发送ping命令 4. 主节点权限验证(默认关闭) 5. 同步数据 6. 持续复制   其中同步数据又分为全量复制和部分复制   全量复制,从节点第一次复制必须为全量复制,全量复制过程为从节点发起,主节点保持RDB文件,...

2018-02-01 16:39:07 112

原创 Redis 持久化

Redis持久化有两种方式,RDB和AOF,持久化通常都会fork一个子进程做备份。   RDB使用一次性生成内存快照方式,压缩且文件更紧凑,读取RDB恢复速度快;但是每次RDB是全量备份,速度慢,无法做到实时持久化,通常用于数据冷备和复制传输。   AOF通过追加命令到文件实现实时(秒级)持久化,极端情况丢失2s的数据;因为不断追加命令,文件会越来越大,要定期执行重写AOF文件降低文...

2018-02-01 16:21:40 115

原创 Mysql在线修改Scheme工具原理

MySQL在线更改schema的工具很多,如Percona的pt-online-schema-change、 Facebook的 OSC和 LHM 等,这些都是基于触发器(Trigger)的; gh-ost 声称是github自己开源的不需要触发器(Triggerless)支持的在线更改表结构的工具;腾讯GSC   目前最常用的工具是pt-online-schema-change,大概原理...

2018-01-30 17:02:03 456

原创 Mysq bin redo undo log

1. undo log undo日志用于存放数据修改被修改前的值,是逻辑日志,比如delete sql 对应的undo log是一条insert sql。undo log作用有两个,一个是用于事务回滚操作,保证事务原子性,部分解决持久性;另一个是对MVCC实现,即MVCC实现是依赖于undo log的。   实现原子性和持久化的事务的简化过程   假设有A、B两个数据,值分别为1,2...

2018-01-30 15:56:08 137

原创 Mysql锁

1. 共享锁  排他锁  select * from xxx where a=10 lock in share mode //共享锁 其他事务中的普通select和共享select可以;  排他读以及增删改会阻塞   select * from xxx where a=10 for update //排他锁 其他事务中普通select读可以;共享读、排他读和增删改,都会阻塞   ...

2018-01-26 16:43:58 103

原创 Mysql隔离级别

1.《Mysql隔离级别》https://www.jianshu.com/p/4ba118333a19 Mysql innodb默认隔离级别 Repeatable Read,只是部分消除了 幻读问题,普通select语句是快照读(MVCC实现),不会读到其他事务新删改的记录,(但是share mode select 或者拍他锁的 select update insert delete 是当前...

2018-01-23 20:17:03 257

原创 Mysql命令

《Mysql inner join left join》 http://justcode.ikeepstudying.com/2016/08/mysql-%E5%9B%BE%E8%A7%A3-inner-join%E3%80%81left-join%E3%80%81right-join%E3%80%81full-outer-join%E3%80%81union%E3%80%81union-al...

2018-01-23 20:07:53 91

原创 敏捷开发

https://www.qcloud.com/community/article/766331?fromSource=gwzcw.93748.93748.93748 《敏捷开发》

2017-12-21 12:34:10 213

原创 Redis 高并发原理

1 单线程模型 Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返回结果三个过程。其中执行命令阶段,由于Redis是单线程来处理命令的,所有每一条到达服务端的命令不会立刻执行,所有的命令都会进入一个队列中,然后逐个被执行。并且多个客户端发送的命令的执行顺序是不确定的。但是可以确定的是不会有两条命令被同时执行,不会产生并发问题,这就是Redis的单线程基本模型。 2 单线程模...

2017-12-14 12:18:58 3177

原创 服务治理

服务如何治理,服务治理的目标是什么 1. 服务注册与发现 2. 服务订阅 3. 服务变更通知 http://www.cnblogs.com/Zachary-Fan/p/service_manage_discovery.html

2017-12-14 12:09:35 151

原创 Hbase介绍

1. 基于行和列族的管理 每个列族是个map http://blog.csdn.net/heyutao007/article/details/5766945 2. hbase一些特性,使用 row key获取的原子操作 http://www.uml.org.cn/zjjs/201211132.asp ...

2017-12-08 10:46:33 100

原创 RPC通信协议

1.《Thrift通信协议》 可支持二进制序列化方式,省空间效率高 https://qinzhaokun.github.io/2017/09/12/Thrift%E9%80%9A%E4%BF%A1%E6%A8%A1%E5%9E%8B/

2017-12-07 21:10:44 258

原创 Mysql索引原理

《Mysql 索引原理》 http://blog.codinglabs.org/articles/theory-of-mysql-index.html   3. 《Mysql inner join left join》 http://justcode.ikeepstudying.com/2016/08/mysql-%E5%9B%BE%E8%A7%A3-inner-join%E3%80%8...

2017-12-06 11:30:51 90

原创 计划列表

1. 操作系统   select poll epoll  NIO AIO, 用户态,内核态https://segmentfault.com/a/1190000003063859  介绍IO多路复用的(完成) http://blog.csdn.net/anxpp/article/details/51512200 介绍java nio bio2. Mysql 相关,B+树,乐观锁,悲观锁(完成)...

2017-10-05 17:30:58 287

原创 Spring MVC(2) - DispatcherServlet运行

Spring MVC(2) - DispatcherServlet运行流程   再次看一下类的继承结构   http请求在Servlet的业务处理流程   // Called by the servlet container to allow the servlet to respond to a request. // javax.servlet.Servlet中定义的接口se...

2017-10-02 15:08:49 101

原创 Spring MVC(1) - DispatcherServlet初始化

本节主要讲Spring MVC的DispatcherServlet初始化, Servlet是不能自己启动,是由web容器(比如tomcat)启动和调用Servlet初始化的。DispatcherServlet实现和扩展了javax.Servlet,它是Spring MVC的核心。首先贴一下基础配置文件,web.xml <?xml version="1.0" encoding="UTF-...

2017-10-01 23:29:13 106

原创 Spring bean初始化(3) - ApplicationContext

本节讲 Spring bean初始化(3) - ApplicationContext ApplicationContext和BeanFactory都是用于加载Bean的,但是项目中基本都是使用ApplicationContext,原因是它包括了BeanFactory的所有功能,并且进行了扩展,ApplicationContext初始化过程中会完成所有的单例( no-lazy-init) 的初...

2017-10-01 10:56:10 119

原创 Spring bean初始化(2) - bean实例化

Spring bean初始化(2) - bean实例化   XmlBeanFactory bf = new XmlBeanFactory(new ClassPathResource("/spring-code-test.xml")); // bean实例化是由getBean调用触发的 TestBean bean = (TestBean) bf.getBean("...

2017-09-30 21:38:34 158

原创 Spring bean初始化(1) - XML解析

Spring bean的初始化源码分析-XML解析 XML解析部分,XML解析最终会将XML中配置的bean或者标签需要扫描的bean,都准备好,生成beanDefinition,用于后续的bean实例化   XmlBeanFactory bf = new XmlBeanFactory(new ClassPathResource("/spring-code-test.xml"));  ...

2017-09-26 10:32:33 120

原创 Mysql innodb和myisam

转自 http://www.jianshu.com/p/a957b18ba40d   MyISAM与InnoDB的区别是什么? 事务和行级锁,是两者最大的区别!   1、 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.M...

2017-09-22 16:03:47 144

原创 tcp三次握手四次挥手及网络状态

tcp 三次握手和四次挥手示意图, 详细见 http://www.jianshu.com/p/9968b16b607e    对一些状态的说明, 1. Client端在结束的时候,发送FIN后,进入FIN-WAIT-1状态 2. Server端收到FIN,发送ACK后,进入 CLOSE-WAIT状态 3. Client端收到ACK后,进入FIN-WAIT-2状态,停止发送数据 4....

2017-09-22 15:25:29 95

原创 Spring AOP实现源码分析(三)

Spring AOP的实现可以分为三大部分1. 注册AOP功能具体实现类 2. 普通Bean实例化时AOP的切入 3. AOP切入具体流程   下面分析BeanPostProcessor执行过程中,aop如何切入,上一节讲到,普通bean初始化会调用如下方法   // 调用AOP的真正实现方法入口 result = beanProcessor.postProcessA...

2017-08-03 22:19:21 132

原创 Spring AOP实现源码分析(二)

Spring AOP的实现可以分为三大部分1. 注册AOP功能具体实现类 2. 普通Bean实例化时AOP的切入 3. AOP切入具体流程   2. 普通Bean实例化时AOP的切入 ApplicationContext主流程会保证先完成BeanPostProcessor的注册实例化,这样可以保证普通bean实例化时,所有的 BeanPostProcessor 已经实例化了  ...

2017-08-03 22:17:50 115

原创 https交互过程

1. 客户端发起https请求,请求数据中包括当前浏览器的加密算法列表,随机数(random1) 2. 服务端回复客户端,数据包括 证书,确认的加密算法,随机数(random2) 3. 客户端验证证书的合法性 4. 客户端生成加密随机数(premaster_secret),使用第2步约定的生成秘钥算法(非对称加密算法),通过证书的公钥,对premaster_secret进行加密,传输给服...

2017-08-02 18:36:12 405

原创 Spring AOP实现源码分析(一)

Spring AOP的实现可以分为三大部分1. 注册AOP功能具体实现类 2. 普通Bean实例化时AOP的切入 3. AOP切入具体流程   本文主要讲第一部分 1. 注册AOP功能具体实现类1.1 初始化aop自定义标签解析器 AspectJAutoProxyBeanDefinitionParser       当 xml 中读到  aop:aspectj-autoproxy ...

2017-08-02 13:52:08 100

空空如也

空空如也

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

TA关注的人

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