细读经典
文章平均质量分 80
TXL永远爱WXY
这个作者很懒,什么都没留下…
展开
-
细读经典——ZK的补充:ZK的Java操作及分布式锁的实现
之前有写过Zookeeper细读经典,今天写写用Curator操作ZK。实际上,使用JAVA操作ZK的方式还有JAVA API和ZKClient两种方式,但总体而言,Curator方式最简单,这部分时细读经典里原创 2021-12-12 23:58:10 · 1924 阅读 · 0 评论 -
Mysql与RAID
昨天再看民用NAS,里面提了RAID,突然想起之前一直有个Mysql利用RAID进行优化的坑,今天填坑参考资料主要来自于《高性能Mysql》和《Innodb存储引擎》raid 基础的0,1,2,3,4,5,6,7,10等模式我不在多说,只记录能够进行性能优化的部分。《Innodb存储引擎》1、开启RAID write back功能,RAID两种写入模式,write back和write through,write back可以将数据先写入RAID缓存中,不用等待物理磁盘实际写入完成,提升了整原创 2021-11-24 10:58:23 · 433 阅读 · 0 评论 -
docker搭建kafka集群+ZK
在写kafka之前,docker搭建一套kafka集群环境,用的腾讯云,这里真的不得不吐槽一下腾讯云的体验比阿里云强,阿里云要不你反思反思?1、创建子网,管理方便一点docker network create --subnet 172.19.0.0/16 --gateway 172.19.0.1 zookeeper_kafka2、创建docker-compose.yml文件,cat vi都可以version: '3.3'services: zookeeper: image原创 2021-11-22 15:27:31 · 1427 阅读 · 0 评论 -
细读经典——RocketMQ技术NM(3)
三、RocketMQ消息存储对于高可用消息中间件而言,持久化是必须的技术。(可用和高可用我觉得有必要区分,明显的他们关注点不一样)RocketMQ持久化包含三个文件:CommitLog,ConsumerQueue和IndexFile。3.1设计概要RocketMQ统一将所有主题的消息存在一个文件中,从而保证broker从producer处拿到消息之后是顺序写入磁盘的,由此提高系统的吞吐量。RocketMQ引入了ConsumerQueue消息队列文件,每个消息队列有一个ConsumerQueu原创 2021-11-04 19:29:22 · 371 阅读 · 0 评论 -
细读经典——RocketMQ技术NM(2)
二、消息发送MQ发送普通消息有三种方式:可靠同步、可靠异步、单向,可靠的意思是会收到发送的结果基于以上认识,我们可以看看一条消息发送的整个过程是怎样的。2.1 抽象部分:这里很自然能想到需要定义消息实体Message::public class Message implements Serializable { // 主题 private String topic; // 保留 private int flag; // 扩展属性原创 2021-11-01 19:18:37 · 350 阅读 · 0 评论 -
细读经典——RocketMQ技术NM(1)
消息中间件目前是RocketMQ和Kafka两家独大,RocketMQ作为java开源代码,很适合中间件开发人员作为一手的学习材料,设计中的很多思想都是值得学习的。废话不多,进入正题。1、整体架构书中是从Nameserver切入整个RocketMQ的,但我这里从整体入手,希望你能先牢记这张图包含几个重要部分:Producer集群,NameServer集群,Broker集群以及Consumer集群。如果你熟悉微服务架构,那么整个集群和Eureka是非常像的:由Nameserver集群提供注原创 2021-10-28 17:29:37 · 251 阅读 · 0 评论 -
细读经典第一期——从Paxos到Zookeeper 分布式一致性原理与实践(5)
漫长的第七章还没结束,其实ZK本身在使用层面上来讲是相对而言比较容易的,因为本身他就是一个开源版的Chubby,但其实内部结构还是比较复杂的。7.7服务器角色介绍(重点)7.7.1 Leader主要工作:保持proposal处理请求的顺序性,作为ZK集群的调度者一提到请求处理顺序,第一反应就是责任链模式,对ZK Leader而言,其请求链:责任链模式PreRequestProcessor:识别请求是否事务请求,如果是,则创建请求头、事务体,会话检查,ACL检查等Pr.原创 2021-10-22 11:11:10 · 362 阅读 · 0 评论 -
细读经典第一期——从Paxos到Zookeeper 分布式一致性原理与实践(4)
目录七、Zookeeper技术内幕7.1系统模型7.1.1数据模型7.1.2 节点类型7.1.3 Znode的版本信息——保证分布式数据操作的原子性7.1.4 Watcher——数据变更通知7.1.5 ACL访问控制7.2序列化协议7.3 客户端7.4 会话7.4.1 会话状态转换7.4.2 会话创建七、Zookeeper技术内幕7.1系统模型7.1.1数据模型Znode数据节点是最小单元,由Znode构成了树。对于每一个事务请求,Zo原创 2021-10-19 11:29:22 · 114 阅读 · 0 评论 -
细读经典第三期——所有后端程序员必读神作!!!!《高性能MySQL》
如果说细读经典第二期是mysql InnoDB存储引擎的入门,那么高性能mysql则是mysql的进阶,是mysql的精髓,是数据库的精髓,是必读中的必读。当然,这本书也比前一本更加离谱,难度更大,涉猎更多,更难吃透。走起!但是先说一下,我们这里的顺序,和书中顺序稍有不同,我们仍旧跟着《InnoDB存储引擎》那一本的思路,从我们熟悉的mysql使用入手,再到硬件优化,再引出基准测试,最后谈一谈mysql的扩展,不限于书中的云,可能会设计容器存储之类的内容。这里章节名称我保留原书,方便看官们做比较原创 2021-09-25 16:19:37 · 235 阅读 · 0 评论 -
细读经典第二期——所有后端程序员必读神作!!!!《MySQL技术内幕 InnoDB存储引擎第2版》
这本书是一本相见恨晚的书,那时候我使用mysql已经有几年了,但是从来没有系统的认识过mysql,仍然停留在碎片化的感性认知阶段,后来这本书直接打通了关系型数据库的大门,基本上这本梳理没有废话,甚至可以说看完这本书,关系型数据库在理论知识上,你已经全部打通,可以说这本书里大部分内容,你甚至应该背下来。废话不多说,开始1、体系架构和存储引擎1.1 区分了数据库和数据库实例的区别,数据库实例是操作数据库的一个客户端进程,多个数据库实例可以共享一个物理存储(数据库),这点可以类比Oracle的RAC架原创 2021-09-12 16:52:04 · 168 阅读 · 0 评论 -
细读经典第一期——从Paxos到Zookeeper 分布式一致性原理与实践(3)
上一篇文章过了一下paxos算法的核心,按照书中的章节,会介绍一下chubby分布式锁中的一致性部分,这块我们先行掠过,等全书结束之后,当作附加章节回顾本章那么直接进入后面的章节, 也是本书的核心内容。目录目录第四章4.1 初识ZK4.2 ZAB4.2.1消息广播4.2.2崩溃恢复第四章4.1 初识ZKZK是Chubby的开源实现ZK的几个特性,最好是理解+熟记,也可以是熟记+理解,我反而觉得熟记+理解更容易融会贯通ZK的功能:4.2.原创 2021-09-11 13:36:10 · 148 阅读 · 0 评论 -
细读经典第一期——从Paxos到Zookeeper 分布式一致性原理与实践(2)
目录第二章:2.2 PAXOS2.2.1基本定理的引出和推导2.2.2算法的内容第二章:2.2 PAXOS算法可以讲简单,也可以讲复杂,更可以讲专业,我希望你能用专业的话讲简单的事情,所名词是需要记住的,因为抽象类才是你应该做的事情,PAXOS就是一个新手很容易糊弄的不专业的算法。这里我加入了一些个人的东西,毕竟直接看书是一头雾水的2.2.1基本定理的引出和推导我略过了书中算法诞生过程的部分,直接进入正题,算法包含几个角色:Proposer :提议者 Ac...原创 2021-09-05 13:18:47 · 72 阅读 · 0 评论 -
细读经典第一期——从Paxos到Zookeeper 分布式一致性原理与实践(1)
第一章:1.1从ACID到CAP/BASEACID两张图比较重要,主要是理解ACID概念,特性,以下两张图比较重要(当然mysql还牵扯到锁定读的内容,详见《innodb存储引擎》,有时间会再专门出一期总结一下)之后就是CAP和BASE,CAP大多数人都知道代表什么,但是如果我问你什么是分区容错性可能你不一定能说的清楚,这里我仍然上原书其中的网络分区可以是不同的机房,不同地区的机房,甚至可以将微服务新加入的节点看作是一个网络分期,更多的是逻辑上区分。对于Eurek...原创 2021-09-04 16:49:07 · 99 阅读 · 0 评论