自建Headscale

(1). 概述最近项目,团队成员分散在各处,其中,开发环境是通过:ESXI虚拟出来几十台的机器,为了协同办公,解决组网问题,真的是遇到了不少问题(电信封端口/NAT需要中继服务器,相当的耗流量),最终,选择了:Tailscale这款产品(SD W...

Shenyu总结

### (1). Shenyu基础学习目录

Sealos安装K8S集群

(1). 概述这段时间在弄服务器相关的东西,以前是用Rancher安装K8S,前几天和一朋友聊天,得知一个新的工具,可以在国内快速装K8S的新秀,即:Sealos.

Eventuate源码剖析

(1). 背景最近在研究Eventuate,该开源框架出自名师之手:Chris Richardson(非常典型的一本:微服务架构设计模式),而,对于一个框架的引用,不能简简单的停留在使用阶段,而应该要知道其边界,知道其能力,所以,我一般除了会用框...

Eventuate事件发布

(1). 背景在某些业务场景下,我们会用到消息中间件,那么,在用消息中间件在发送消息时,如何保证100%的不丢消息呢,那就需要事务消息了. 最近在研究Eventuate,最初没打算用这套框架,但是,想了想吧!还是少自研一些,尽量向别人的开源框架靠...

Java容器之间隔离方案

(1). 概述

Spring Message源码剖析

(1). 概述

Centos 7安装Minikube

(1). 概述最近在弄CI/CD这一块,想省钱,不想买两台Linux服务器搭K8S集群,所以,想把Minikube运用起来,在这里记录下:Centos 7环境下安装的过程.

Logback扩展

(1). 概述

Pulsar总结

(1). Pulsar基础学习目录 “Pulsar基本概念(一)” “Pulsar集群搭建(二)” “Pulsar Java代码调用(三)” “Pulsar Key Shared案例(四)”

Pulsar源码目录结构介绍(一)

(1). Pulsar Broker源码结构

Pulsar源码之PulsarClient初始化(三)

(1). 概述在前面剖析了,我们通过ClientBuilder可以build出一个:PulsarClient,在这里,主要剖析:PulsarClient的构造函数初始化过程.

Pulsar源码之PulsarClient构建过程分析(二)

(1). 概述这一篇,我们主要剖析PulsarClient构建过程.

Pulsar源码之Producer分析中篇(四)

(1). 概述前面对Producer进行了剖析,发现,最后,它却委托给了:PulsarClientImpl处理,所以,这一小篇,主要剖析:PulsarClientImpl创建Producer的过程.

Pulsar源码之Producer分析上篇(四)

(1). 概述在前面,简单的了解了下PulsarClient,在这里,先剖析:Producer

SOFAJRaft总结

(1). 前因 对最新的Camunda 8(Zeebe)非常的好奇,为什么呢?因为传统的工作流跟不上微服务的脚步,我列举一个案例:

SOFAJRaft源码之RaftGroupService(二十二)

(1). 概述本来是要分析Node的,而且,自己对Node的理解是网络通信的Server端,结果,打脸,发现:它(Node)居然是网络通信的Client,所以,这一篇主要分析与网络通信Server层相关的内容,即:RaftGroupService.

SOFAJRaft源码之Node发起投票请求(二十六)

(1). 概述前面,剖析了,预投票过程,预投票的过程是为了防止无效投票的,只有预投票之后通过之后,才能进入投票阶段,所以,这一篇主要剖析,发起投票请求的剖析.

SOFAJRaft源码之Node投票请求处理(二十七)

(1). 概述前面,剖析了,发起投票请求,这一篇主要剖析,接受投票请求.

SOFAJRaft源码之Node发起预投票请求(二十四)

(1). 概述前面剖析了Node的启动方法,会判断是否有其它节点,如果有其它节点的情况下,会判断是否要进行选举,这一小篇,剖析下定时任务中的选举处理.

SOFAJRaft源码之Node预投票请求处理(二十五)

(1). 概述上一篇,分析的是Node发起预投票请求,这一篇主要分析,Node发起预投票请求之后,服务端处理流程.

SOFAJRaft源码之Node初始化(二十三)

(1). 概述一直以为Node的角色是网络通信的Server,但是,稍微的剖析了一下之后,发现好像,它在网络通信层属于Client端,这一篇主要是看下Node的初始化方法.

SOFAJRaft源码之Node提交任务(二十八)

(1). 概述在这一篇,继续剖析完一个比较重要的环节,那就是应用任务,这是JRaft提供给业务开发人员的一个重要接口.

SOFAJRaft源码之StateMachine(十五)

(1). 概述终于轮到剖析StateMachine了,其实,剖析完:FSMCaller之后,StateMachine要不要剖析,也没多大的意义了,只是,还是要让整个源码剖析过程比较完整一些,此处,以:CounterStateMachine为例.(...

SOFAJRaft源码之SnapshotWriter(七)

(1). 概述本来是想剖析SnapshotStorage,但是在用UML对SnapshotStorage进行分解时,底层实际上还是依赖一个比较重的:Snapshot,所以,这一篇改成,剖析:Snapshot(2). Snapshot UML图解(...

SOFAJRaft源码之SnapshotStorage(九)

(1). 概述终于到分析的重头戏了,这一小篇主要剖析:SnapshotStorage,它组合了:SnapshotWriter和SnapshotReader的功能,所以,它的职责应该是产生快照以及读取快照.

SOFAJRaft源码之SnapshotReader(八)

(1). 概述上一篇对SnapshotWriter的源码进行了剖析,在这篇,对SnapshotReader进行剖析(相比SnapshotWriter,SnapshotReader还是比较复杂一点)

SOFAJRaft源码之RpcServer初始化(十九)

(1). 概述在准备剖析Replicator时,发现它会与网络通信有一些纠缠不清,因为与网络相关,想要剖析整个链路,不想再进行Mock了,所以,这一小篇主要剖析与网络相关的类:RpcServer

SOFAJRaft源码之RocksDBLogStorage常用方法剖析(三)

(1). 概述在前面对RocksDBLogStorage的初始化进行了剖析,在这里,主要剖析追加日志和获取日志.