摘要: 1. NameServer 启动:NamesrvStartup#main0()。内部注意初始化了两个线程池,一个每10秒扫描所有的broker,如果一个broker断开120秒,则关闭链接并移除broker。另一个线程池一个打印KV信息。 路由实现类:RouteInfoManager package 阅读全文
posted @ 2021-03-25 19:38 walker993 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 一、Broker主从同步模式:异步复制、同步双写 二、刷盘策略:同步刷盘、异步刷盘 三、消息存储 1. 生产者发送消息,Broker收到后,将消息持久化,返回ACK。 2. 虽然消费方式有push和pull,但在RocketMQ中实际上都是由消费者主动去获取的,因为当消费者非常多时,服务端的压力会非 阅读全文
posted @ 2021-03-25 15:44 walker993 阅读(1088) 评论(0) 推荐(0) 编辑
摘要: Broker集群: 接收生产者发送的消息和消费者消费的请求。Master可读可写,Slave只读。 每个Broker节点,启动时遍历NameServer列表,与每个NameServer建立长连接,注册自己的信息,定时上报 Producer集群: 通过NameServer集群获得Topic的路由信息, 阅读全文
posted @ 2021-03-25 14:01 walker993 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 一、MQ的应用场景 1.1 异步解偶 在订单系统中同步调用支付系统,库存系统,物流系统。当其中任意一个系统异常,则影响整个业务流程。引入MQ后,订单系统将消息发往MQ,由MQ将消息推送到下游系统。订单系统不需要关心后续的执行情况,整个下单流程已完成。倘下游系统异常,则由MQ负责重试。 1.2 削峰填 阅读全文
posted @ 2021-03-25 13:53 walker993 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 1. 串行加的是行级锁不是表锁 数据和隔离级别 mysql> select * from t2; + + | a | + + | 1 | | 2 | | 5 | | 6 | | 7 | | 9 | + + 6 rows in set (5.09 sec) mysql> show variables 阅读全文
posted @ 2021-03-25 13:46 walker993 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 一、分布式相关概念 1.1 分布式CAP定理 1. 一致性(Consistency):分布式系统不同节点的数据在同一时刻完全一致 2. 可用性(Availability):分布式系统随时对外提供正常服务,不是异常或超时(访问某个节点) 3. 分区容错性(Partition Tolerance):分布 阅读全文
posted @ 2021-03-25 13:44 walker993 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 一、切分方式 1. 垂直切分 1. 垂直分库:将不同业务数据存放到不同的库。如订单库,商品库 2. 垂直分表:将一个表的大字段且不常访问字段,划分出来放到其他的表。内存中的数据页可以存放更多的热点数据。增加查询效率,减少I/O 优点:业务解偶,不同业务数据独立维护;一定程度缓解库的压力 缺点:多表/ 阅读全文
posted @ 2021-03-25 13:42 walker993 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一、主从复制 1. 复制原理 binlog:二进制日志,记录数据的更改。可用于本机数据恢复和主从同步。刷入磁盘的方式:每秒刷入磁盘|事务提交刷入磁盘|每秒+每次事务提交刷入磁盘。刷盘线程dump thread relay(中继)log:1. 从节点定时请求主节点的binlog获取修改内容 2. 将b 阅读全文
posted @ 2021-03-25 13:41 walker993 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 一、优化思路 开启慢查询日志,找出问题SQL 查看SQL的执行计划 优化SQL 使用show profile[s] 查看问题SQL的性能使用情况 调整操作系统参数 升级服务器硬件 二、慢查询日志 mysql> show variables like 'slow%'; + + + | Variable 阅读全文
posted @ 2021-03-25 13:40 walker993 阅读(47) 评论(0) 推荐(0) 编辑