09 2018 档案
摘要:1. 引言 读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序
阅读全文
摘要:1. 环境 操作系统:CentOS-7 MySQL:mysql-5.6 一台虚拟机又克隆了两台 192.168.102.31 master 192.168.102.56 slave 192.168.102.36 slave 启动/停止 2. 主数据库配置 第1步:编辑/etc/my.cnf文件,在[
阅读全文
摘要:1. 引言 一般而言,一个服务都是部署了多台机器的,那么在这种情况下,当其中一个服务挂了以后Hystrix是怎么处理的呢? 为了验证这个问题,我们准备两个服务:user-api 和 app-gateway,再加一个Eureka Server 2. 服务搭建 2.1. 注册中心 关于这一部分,参见《S
阅读全文
摘要:Zookeeper是一个分布式协调服务 Zookeeper服务器的角色 Leader: 所有的写操作必须要经过Leader完成,在广播给其它服务器。心跳检测。集群中只有一个Leader。 Follower: 接收客户端连接,处理客户端的读请求,并将写请求转发给Leader处理。参与投票。 Obser
阅读全文
摘要:1. 前言 我们知道,生产者发送消息到主题,消费者订阅主题(以消费者组的名义订阅),而主题下是分区,消息是存储在分区中的,所以事实上生产者发送消息到分区,消费者则从分区读取消息,那么,这里问题来了,生产者将消息投递到哪个分区?消费者组中的消费者实例之间是怎么分配分区的呢?接下来,就围绕着这两个问题一
阅读全文
摘要:1. 前言 Java中好多地方用到AbstractQueuedSynchronizer(PS:简称AQS),比如ReentrantLock、线程池,这部分在面试的时候也经常被问到,今天以ReentrantLock为例,通过源码来加深对AQS的理解 2. lock 通常,我们的用法是这样的: 那么lo
阅读全文