1 2 3 4 5 ··· 13 下一页
摘要: 首先,Raft 集群必须存在一个主节点(leader),我们作为客户端向集群发起的所有操作都必须经由主节点处理。所以 Raft 核心算法中的第一部分就是选主(Leader election)——没有主节点集群就无法工作,先票选出一个主节点,再考虑其它事情。 其次,主节点需要承载什么工作呢?它会负责接收客户端发过来的操作请求,将操作包装为日志同步给其它节点,在保证大部分节点都同步了本次操作后,就可以安全地给客户端回应响应了。这一部分工作在 Raft 核心算法中叫日志复制(Log replication)。 阅读全文
posted @ 2024-07-06 21:45 听到微笑 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 一. 概述 Sentinel客户端默认情况下接收到 Dashboard 推送的规则配置后,可以实时生效。但是有一个致命缺陷,Dashboard和业务服务并没有持久化这些配置,当业务服务重启后,这些规则配置将全部丢失。 Sentinel 提供两种方式修改规则: 通过 API 直接修改 (loadRul 阅读全文
posted @ 2024-06-16 13:51 听到微笑 阅读(61) 评论(0) 推荐(0) 编辑
摘要: SpringBoot集成Apollo源码分析 本文基于 apollo-client 2.1.0 版本源码进行分析 Apollo 是携程开源的配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。 Apollo支持4个维度管理Key- 阅读全文
posted @ 2024-05-26 16:46 听到微笑 阅读(194) 评论(0) 推荐(1) 编辑
摘要: 本文转载至:虚拟线程 - VirtualThread源码透视 - throwable - 博客园 (cnblogs.com) 一. 前提 JDK19于2022-09-20发布GA版本,该版本提供了虚拟线程的预览功能。下载JDK19之后翻看了一下有关虚拟线程的一些源码,跟早些时候的Loom项目构建版本 阅读全文
posted @ 2023-12-17 19:38 听到微笑 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 虚拟线程是轻量级线程(类似于 Go 中的 “协程(Goroutine)”),可以减少编写、维护和调度高吞吐量并发应用程序的工作量。 线程是可供调度的最小处理单元,它与其他类似的处理单元并发运行,并且在很大程度上是独立运行的。线程(java.lang.Thread)有两种,平台线程和虚拟线程。 一. 阅读全文
posted @ 2023-12-17 16:22 听到微笑 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 本文将讲解如何在IDEA中导入 RocketMQ 源码,并运行 Broker 和 NameServer,编写一个消息发送与消息消费的示例。 一. 源码导入及调试 1.1 导入源码 RocketMQ 原先是阿里巴巴集团内部的消息中间件,于2016年提交至Apache基金会孵化,并最终成为Apache顶 阅读全文
posted @ 2023-12-02 10:39 听到微笑 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 一. 主从同步概述 主从同步这个概念相信大家在平时的工作中,多少都会听到。其目的主要是用于做一备份类操作,以及一些读写分离场景。比如我们常用的关系型数据库mysql,就有主从同步功能在。 主从同步,就是将主服务器上的数据同步到从服务器上,也就是相当于新增了一个副本。 而具体的主从同步的实现也各有千秋 阅读全文
posted @ 2023-12-02 10:18 听到微笑 阅读(19) 评论(0) 推荐(0) 编辑
摘要: RocketMQ提供了事务消息的功能,采用2PC(两阶段协议)+补偿机制(事务回查)的分布式事务功能,通过这种方式能达到分布式事务的最终一致。 一. 概述 半事务消息:指的是发送至broker但是还没被commit的消息,在半事务消息被确认之前都是无法被消费者消费的。消息回查:由于网络闪断、生产者应 阅读全文
posted @ 2023-12-02 10:07 听到微笑 阅读(47) 评论(0) 推荐(0) 编辑
摘要: #RocketMQ提供了2种消息过滤的方式: TAG 过滤 SQL92 过滤 SQL过滤默认是没有打开的,如果想要支持,必须在broker的配置文件中设置:enablePropertyFilter = true 一. 示例代码 1.1 producer 代码 public class Produce 阅读全文
posted @ 2023-12-02 09:55 听到微笑 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 本文基于RocketMQ 4.6.0进行源码分析 一. 存储概要设计 RocketMQ存储的文件主要包括CommitLog文件、ConsumeQueue文件、Index文件。RocketMQ将所有topic的消息存储在同一个文件中,确保消息发送时按顺序写文件,尽最大的能力确保消息发送的高性能与高吞吐 阅读全文
posted @ 2023-10-15 20:16 听到微笑 阅读(158) 评论(0) 推荐(0) 编辑
1 2 3 4 5 ··· 13 下一页