摘要:
MQ初窥门径 全称(message queue)消息队列,一个用于接收消息、存储消息并转发消息的中间件 应用场景 用于解决的场景,总之是能接收消息并转发消息 总之MQ是可以存放消息并转发消息的中间件,场景取决于拿这个能力去解决什么问题 MQ概念模型 MQ向别人承诺的场景是接收消息,存储,并可以转发消 阅读全文
摘要:
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 我们先拉取源码,修改maven setting file,构建本地工程同时,我们再来笔者这篇文章。 这 阅读全文
摘要:
前文已经讲了log4j2的AsyncAppender的实现【log4j2异步日志解读(一)AsyncAppender】,今天我们看看AsyncLogger的实现。 看了这个图,应该很清楚AsyncLogger调用Disruptor,然后直接返回。至于高性能队列 这里已经展开讲了是如何实现的。 Asy 阅读全文
摘要:
上一篇已经介绍了Disruptor是什么?简单总结了为什么这么快?下面我们直接源码搞起来,简单粗暴。高性能队列disruptor为什么这么快? 一、核心类接口 Disruptor 提供了对RingBuffer的封装。 RingBuffer 环形队列,基于数组实现,内存被循环使用,减少了内存分配、回收 阅读全文
摘要:
背景 Disruptor是LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowl 阅读全文
摘要:
对于配置中心我们先抛出问号三连,什么是配置中心?为什么要用配置中心?配置中心怎么用? 笔者说说自己理解的配置中心,个人观点的十六字 消息存储 消息推送 环境隔离 灰度发布 今天我们先来看Apollo配置中心怎么用,小伙伴可能会说,这不是很简单嘛,no,我们同时要来揭开配置保存的实现原理。 apoll 阅读全文
摘要:
抓住4月的尾巴,最近犹豫工作变动,没有做到持续更新,很抱歉。 我们接下来一起看看注册中心和配置中心,Apollo 走起来。 阅读全文
摘要:
Java反射机制在程序运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态的获取信息以及动态调用对象的方法 的功能称为java的反射机制。 首先你需要了解类加载的过程,这里我们简单提一下(加载-验证-准备-解析-初始化),反射是靠JV 阅读全文
摘要:
从3.4.0版本开始,zookeeper废弃了0、1、2这3种Leader选举算法,只保留了TCP版本的FastLeaderElection选举算法。 当ZooKeeper集群中的一台服务器出现以下两种情况之一时,就会开始进入Leader选举。 1、服务器初始化启动。 2、服务器运行期间无法和Lea 阅读全文
摘要:
ZooKeeper 允许客户端向服务端注册一个 Watcher 监听,当服务端的一些指定事件触发了这个 Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能。 ZooKeeper 的 Watcher 机制主要包括客户端线程、客户端 WatchManager 和 ZooKeepe 阅读全文
摘要:
log4j、logback、log4j2 历史和关系,我们就在这里不展开讲了。直接上干货,log4j2突出于其他日志的优势,异步日志实现。 看一个东西,首先看官网文档 ,因为前面文章已经讲解了disruptor源码,本文主要展开说说异步日志AsyncAppender和AsyncLogger(基于di 阅读全文