2022年3月22日
zookeeper简介 Zookeeper Architecture 在zookeeper集群中,只有一个leader节点,其它的都是followers leader在启动的时候选举产生 当zk数据发生变更,leader节点负责将数据写入磁盘然后写入内存中 zk集群最小节点数为2x+1,x代表允许宕机的节点数 Read Function Of Zookeeper according to the consistency of zookeeper ,依据zookeeper集群数据一致性原则,客户端可以在zk任何节点上读取数据 Write Function Of Zookeeper 写操作可以在任何节点上完成 当zk节点收到写请求的时候,会将请求转发给leader节点,leader节点收到写请求后,会向所有follower节点发送一个request请求,询问follower节点是否可以做写操作。 follower节点跟进自身情况,返回ACK消息给leader确实是否可以完成写操作,当leader收到的ACK消息节点数大于50%。leader开始执行写操作,并将数据同步到follower节点 原文参考 ……
阅读全文
2022年3月21日
触发group rebalance的可能场景 新成员加入 组成员主动离开 组成员崩溃 组成员崩溃 kafka消费者配置的四个参数: session.timeout.ms 会话超时时间 heartbeat.interval.ms 心跳时间间隔 max.……
阅读全文
2022年3月21日
nginx架构图 nginx作为7层代理的时候,请求的转发和响应都经过nginx ……
阅读全文
2022年1月18日
dig查询域名解析 获取根域名的NS服务器地址 dig ns baidu.com ;; ANSWER SECTION: baidu.com. 3600 IN NS dns.……
阅读全文
2022年1月17日
zookeeper迁移 背景 当前zk集群为3节点单机房部署,为了增加集群的跨机房的容灾内里,需要将3个节点分别部署在3个可用区,迁移过程中不中断业务,因此需要先扩容后下线
zookeeper选举原则 首先比较 Zxid,哪个节点的 Zxid 最大就选择谁作为 leader 在所有节点的 Zxid 全都一致的情况下,则比较选举 id(myid文件中的值),选举 id 较大的节点会作为 leader 由于zookeeper只允许 myid 大的节点连接到 myid 小的节点,所以启动 zookeeper 的顺序应该按照 myid 从小到大启动,最后再启动leader节点。 迁移风险 zk业务使用方,使用的是ip地址还是域名,如何统计? zk除了用于配置中心,是否还有其他业务线用于键值存储? zk使用方的业务除了部署容器的,ECS上的业务怎么重启? zk迁移到新IP后,AC是否需要重启 如果应用不重启,使用ZK加载动态配置的业务方由于获取的是老ip导致配置下发异常,是否会引发线上故障 迁移总体方案 zk从5节点扩容到8节点,新增的3个节点分布到2个或者3个机房 修改zk域名解析到最新的5个节点上 ZK使用方重启应用以获取最新的IP地址 老节点没流量后,逐步下线老的3个节点 迁移步骤-扩容 参考链接……
阅读全文
2021年12月28日
what happens when a new consumer join the group in kafka ?……
阅读全文
2021年12月28日
what does the heartbeat thread do in kafka consumer? That’s all of the heartbeat thread mystery and magic.……
阅读全文
2021年12月28日
what happens when you call poll on kafka consumer? Below is the sequence of steps to fetch the first batch of records.……
阅读全文
2021年12月27日
通过指定分区号和offset编号查询kafka消息内容 查询从topic查询某个offset的kafka消息内容,可以使用kafka自带工具:kafka-console-consumer.sh ./kafka-console-consumer.sh \ --topic op-offset-reload \ --bootstrap-server localhost:9092 \ --property print.……
阅读全文
2021年12月17日
hugo发布到nginx流程 所有文章页面顶部全部配置为draft: false title: "新的文章" date: 2021-12-17T15:06:23+08:00 draft: false # 这里 hugo打包成静态文件放在public目录下 hugo --baseUrl="/" 将public目录下的文件全部上传到nginx配置的vhost路径下 附nginx配置文件 server { listen 80; server_name btiwork.……
阅读全文