鸡蛋达芬奇

专注IT互联网架构设计,开发

Dubbo框架学习-负载均衡

负载概述 dubbo中的负载均衡机制主要有4种方式,分别是随机,轮训,最少连接数,一致性hash。其中默认情况下,dubbo采用随机方式进行负载。 dubbo中的负载均衡就是从多个Invoker列表中选择一个可执行的Invoker。集群中的每一个provider都是一个Invoker。 consu...

2017-12-07 10:49:49

阅读数 281

评论数 0

Redis学习--JedisCluster源码解读

JedisCluster JedisCluster是针对RedisCluster的JAVA客户端,它封装了java访问redis集群的各种操作,包括初始化连接,请求重定向等操作。具体内部实现原理主要有如下两个方面: 1.1. JedisCluster初始化时,所有的集群连接信息都是封装在Jed...

2017-11-30 14:32:21

阅读数 300

评论数 0

HashMap底层存储原理

HashMap在日常工作中使用场景非常多,程序员都知道是HashMap是线程非安全的,但是底层是以什么方式存储的?本人仔细研读了一下源码,也只是掌握了核心的存储功能,并没有把全部代码看明白,但是对于理解hashMap的存储结构完全够了。存储结构 hashmap底层是以数组方式进行存储。将key-v...

2017-11-29 15:01:26

阅读数 9764

评论数 0

Dubbo框架学习-重要概念理解

ProxyFactory ProxyFactory是代理工厂,在dubbo中主要有两个作用,我们可以通过源码来分析接口作用 @SPI("javassist") public interface ProxyFactory { /** * create proxy....

2017-11-23 00:22:25

阅读数 303

评论数 0

Spring学习-InitializingBean,ApplicationContextWare

Spring这个框架断断续续用了几年,但是很多其中的机制并没有完全理解透彻,现在抽出时间系统整理一下相关知识点,也是为自己的技术进行总结!InitailizingBean 这个接口 InitailizingBean中只有一个方法,就是afterPropertiesSet。该方法是指Spring容器...

2017-11-22 17:49:15

阅读数 809

评论数 0

Nginx学习-初步理解

请求方式 Nginx是一款高性能的web服务器,能够同时处理大量的并发请求,主要是得益于Nginx的master-worker进程模式和异步机制。 master-worker模式 nignx服务器对于接收到的每一个请求,都会有主进程master生成一个工作进程(worker process)处...

2017-11-21 16:40:06

阅读数 413

评论数 0

JVM原理之JVM调优

调优性能关注点 * 吞吐量*:吞吐量是考察垃圾收集器重要的性能指标之一,指不考虑垃圾回收引起的停顿时间,应用程序能够支撑最大请求的指标。 延迟: 缩短垃圾收集引起的应用程序停顿时间,避免应用程序发生抖动。 内存占用:垃圾收集器流畅运行所需要的内存数量。 这三个指标一般很难保证同等重要,任何一个性能...

2017-11-21 14:31:40

阅读数 131

评论数 0

多线程并发-synchronized

同步方式 synchronized同步方式主要有3种,简单介绍如下: 1.1. synchronized同步普通方法,锁是当前对象实例。 1.2. synchronized同步静态方法,锁是当前类的Class对象。 1.3 synchronized同步代码块,锁是代码块中的括号里的对象。 同...

2017-11-14 09:54:41

阅读数 642

评论数 0

Dubbo源码分析-config

Spring的关系 dubbo中扩展了spring的schema,其中dubbo的schema文件名称位dubbo.xsd,在META-INF目录下面。 dubbo.xsd中定义了dubbo中配置文件各种标签。每一种标签最终都是被解析成一个对应的Bean。 Spring在遇到dubbo.xsd命名...

2017-11-11 23:27:12

阅读数 147

评论数 0

Rocketmq分布式事物消息

Rocketmq源码中关于分布式事物消息的实现并没有完全开源,本人是基于3.4.6分析。其中的类是TransactionMQProducer。源码分析 TransactionMQProducer是发送分布式事物消息的核心基础类,其中sendMessageInTransaction是主要发送方法。该...

2017-11-09 19:07:56

阅读数 484

评论数 0

JVM原理之内存分配参数

调优目标 应用程序的请求量很大时,容易造成频繁的full gc。full gc频繁会导致java应用出现停顿。 JVM调优主要从年轻代,老年代,永久代等方面去调整参数,同时需要掌握JVM内存管理机制,设置符合自己应用的参数值。 JVM参数-最大堆内存 JVM最大堆内存是指年轻代与老年代的大小之和,...

2017-10-31 19:42:24

阅读数 186

评论数 0

JVM原理之运行时数据区

JVM虚拟机1. JVM在运行时主要包含java堆,方法区,程序计数器,JVM栈,本地方法栈。其中JAVA堆和方法区归所有线程共有,而JVM栈和程序计数器归线程私有。 程序计数器 程序计数器主要是执行线程中的指令,在多核环境中,线程需要进行切换。线程获得CPU的执行后要恢复到原来的执行位置,这就是...

2017-10-31 11:33:34

阅读数 225

评论数 0

Oracle索引原理

索引原理 oracle中的索引与mysql中的索引不一样,oracle中索引是存储了索引列的值以及rowid值。而mysql索引分为聚集索引,非聚集索引。其中聚集索引只能有一个。 oracle中索引的主要分为根,茎,叶子三部分。索引列值都是存放在叶子节点上,茎只是存放了叶子节点的相关信息。 ora...

2017-10-23 17:17:18

阅读数 290

评论数 0

Rocketmq-push消息消费

Push方式消费消息在Rocketmq中,consumer消费方式有2种,一种是Pull方式消费,一种是push方式消费。Pull方式是consumer主动去broker方式去拉取消息;而push方式是broker主动推送消息,但是push方式的底层实质是异步去broker上拉取消息,然后主动推送...

2017-10-22 18:41:11

阅读数 802

评论数 0

JVM原理之垃圾收集

垃圾收集作用 JVM堆中存在大量的垃圾对象,如果长时间不收集,容易造成内存溢出或者内存泄露。垃圾收集可以减少堆的可用空间。 频繁的GC行为会造成应用程序的停顿,造成用户体验较差,吞吐量减少。 确定回收对象 引用计数器:为每个对象设置一个引用计数器,当该对象被引用时,计数器加1,没有任何引用时,计数...

2017-10-22 17:21:23

阅读数 113

评论数 0

设计模式之观察者模式

第一次学习观察者模式已经是六七年以前,那个时候只是机械的去理解。也知道JAVA中AWT和SWING中使用了观察者模式。但是没有真正去理解透(当然,现在也可能没有真正理解透,但是比那个时候要好很多)。后面陆续也看过几次,都没有真正去思考观察模式的设计理念。现在有时间了,再重新学习了一遍,发现又领悟到...

2017-09-06 18:45:26

阅读数 85

评论数 0

Zookeeper客户端ZkClient

ZkClient简介 ZkClient是github上开源的一个zookeeper客户端。它对原生的zookeeper客户端API进行了封装,内部实现了session重连,Watcher反复注册,极大降低了开发人员使用zookeeper的难度。 创建会话 zkClient提供了7个构造方法来创建z...

2017-09-06 12:30:39

阅读数 629

评论数 0

zookeeper中的ZAB协议理解

ZAB协议 ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据ZAB协议是实现分布式系统数据一致性。 zookeeper根据ZAB协议建立了主备模型完成zookeeper集群中数据的同步。这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台l...

2017-08-25 17:33:37

阅读数 13007

评论数 3

CAP和BASE理论理解

分布式系统都是基于CAP/BASE理论进行设计的。CAP/BASE在分布式系统设计过程中提供了最基本的也是最重要的原则。 正确的理解CAP/BASE能够更好的指导分布式系统的设计,当然了只有经历了大量的分布式系统实战,才能更加深刻的理解CAP/BASE理论。CAP CAP是一致性(Consist...

2017-08-24 16:50:43

阅读数 1783

评论数 0

LockSupport使用

LockSupport功能 LockSupport在JDK中主要提供了线程的阻塞和唤醒功能。提供了更高级别的同步功能。 阻塞方法主要是以park开头的各种方法,唤醒线程的方法只有unpark一个方法。 LockSupport中的 park和unpark方法提供的线程阻塞和唤醒功能,避免了Objec...

2017-08-08 14:56:42

阅读数 145

评论数 0

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