1 zookeeper选主机制 1.1 LeaderElection选举算法 选举线程由当前Server发起选举的线程担任,他主要的功能对投票结果进行统计,并选出推荐的Server.选举线程首先向所有Server发起一次询问(包括自己),被询问方,根据自己当前的状态作相应的回复,选举线程收到回复后,验证是否是自己发起的询问(验证xid 是否一致),然后获取对方的id(myid),并存储到当前询问对象列表中,最后获取对方提议 的 leader 相关信息(id,zxid),并将这些 信息存储到当次选…
前言 在分布式系统中,分布式锁是为了解决多实例之间的同步问题.例如master选举,能够获取分布式锁的就是master,获取失败的就是slave.又或者能够获取锁的实例能够完成特定的操作. 目前比较常用的分布式锁实现有两种,基于zookeeper实现和基于redis实现.zookeeper和redis也是生产环境中经常用到的第三方组件.下面我会分析它们的实现原理. 实现要求 实现一个分布式锁至少要满足下面三点要求: 互斥,在任何时候同一个锁只能由一个客户端持有. 不会死锁,就算持有的客户端异常崩…
前言 一直都想自己动手搭建一个Redis集群和MySQL的主从同步,当然不是依靠Docker的一键部署(虽然现在企业开发用的最多的是这种方式),所以本文就算是一个教程类文章吧,但在动手搭建之前,会先聊聊理论的东西,以便于大家有一个集群和主从同步的概念,如果有同学不了解Redis和MySQL,可以看一下我之前的两篇文章. Redis由浅入深深深深深剖析 从入门到入土:令人脱发的数据库底层设计 什么是Redis集群 简介 Redis是一个快速高效的NoSQL型数据库,由于其基于内存存储.单线程.多路…
8.1 主从同步原理 像MySQL一样,Redis是支持主从同步的,而且也支持一主多从以及多级从结构. 主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来承担. Redis的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低Redis的处理性能. 主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能. 在主从架构中,从服务器通常被设置为只读模式,这样可以避免从服务器的数据被误修改.但是…
  一. MariaDB主从复制 mysql基本操作 1 连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.60 2 授予远程连接的权限 grant all privileges on *.* to root@"%" identified by "centos" 3 修改root用户的密码 先进入mysql的交互式模式 set password = PASSWORD('centos'…
一.多实例配置 1.准备俩配置文件,开两个就准备两个 redis-6380.conf redis-6381.conf 2.分别写入配置信息(这里简化了配置) # 运行在6380端口 bind 172.18.107.180 port 6380 daemonize yes pidfile /var/run/redis_6380.pid # 运行在6381端口 bind 172.18.107.180 port 6381 daemonize yes pidfile /var/run/redis_6381…
核心类: 消息消费到达主服务器后需要将消息同步到从服务器,如果主服务器Broker宕机后,消息消费者可以从从服务器拉取消息. HAService:RocketMQ主从同步核心实现类 HAService$AcceptSocketService:HAMaster端监听客户端连接实现类 HAService$GroupTransferService:主从同步通知实现类 HAService$HAClient:HA Client端实现类 HAConnection:HA Master服务端HA链接对象的封装,…
目录 Redis MongoDB Zookeeper Kafka Redis 概念 Redis是NoSQL中比较常典型的一个非关系型数据库,在日常工作中也是最为常见的.Redis是一个由C语言编写的开源的.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API 这里我们引入一下 cookie 和 session ,session 一般是存在于服务器的,每次我们进行操作,都要跟这个 session 值进行校验,如果校验不上,就会重定向登录页.那么如…
主从同步 1.CPA原理 1. CPA原理是分布式存储理论的基石: C(一致性):   A(可用性):  P(分区容忍性); 2. 当主从网络无法连通时,修改操作无法同步到节点,所以“一致性”无法满足 3. 除非我们牺牲“可用性”,也就是暂停分布式节点服务,不再提供修改数据功能,知道网络恢复 一句话概括CAP: 当网络分区发生时,一致性 和 可用性 两难全 2.redis主从同步介绍 1. 和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况. 2…
前言 在Java Spring 项目中,数据与远程数据库的频繁交互对服务器的内存消耗比较大,而 Redis 的特性可以有效解决这样的问题. Redis 的几个特性: Redis 以内存作为数据存储介质,读写数据的效率极高: Redis 支持 key-value 等多种数据结构,提供字符串,哈希,列表,队列,集合结构直接存取于内存,可持久化(RDB 和 AOF): 支持主从模式,可以配置集群. 下面,我将和大家一起学习分享 Redis 的相关知识. 一.Redis 概述 1.1Redis 是什么?…