随笔分类 - SpringCloud组件
SpringCloud组件
摘要:本文将从leader处理器入手,详细分析node的增删改查流程及监听器原理。 回顾数据读写流程 leader ZookeeperServer.processPacket封装Request并提交给业务处理器 LeaderRequestProcessor做本地事务升级 PrepRequestProces
阅读全文
摘要:在zookeeper中,follower也可以接收客户端连接,处理客户端请求,本文将分析follower处理客户端请求的流程: 读请求处理 写请求转发与响应 follower接收转发客户端请求 网络层接收客户端数据包 leader、follower都会启动ServerCnxnFactory组件,用来
阅读全文
摘要:ServerCnxnFactory 用于接收客户端连接、管理客户端session、处理客户端请求。 ServerCnxn抽象类 代表一个客户端连接对象: 从网络读写数据 数据编解码 将请求转发给上层组件或者从上层组件接收响应 管理连接状态,比如:enableRecv、sessionTimeout、s
阅读全文
摘要:Leader 构造方法 public Leader(QuorumPeer self, LeaderZooKeeperServer zk) throws IOException { this.self = self; this.proposalStats = new BufferStats(); //
阅读全文
摘要:ZooKeeperServer 实现了单机版zookeeper服务端功能,子类实现了更加丰富的分布式集群功能: ZooKeeperServer |-- QuorumZooKeeperServer |-- LeaderZooKeeperServer |-- LearnerZooKeeperServer
阅读全文
摘要:本文详细分析一下zookeeper的数据存储。 ZKDatabase 维护zookeeper服务器内存数据库,包括session、dataTree和committedlog数据,从磁盘读取日志和快照后启动。 关键字段 // 数据节点树 protected DataTree dataTree; pro
阅读全文
摘要:在"zookeeper源码(03)集群启动流程"中介绍了leader选举的入口,本文将详细分析leader选举组件和流程。 leader选举流程(重要) quorumPeer的start阶段使用startLeaderElection()方法启动选举 LOOKING状态,投自己一票 createEle
阅读全文
摘要:本文将从启动类开始详细分析zookeeper的启动流程: 加载配置的过程 集群启动过程 单机版启动过程 启动类 org.apache.zookeeper.server.quorum.QuorumPeerMain类。 用于启动zookeeper服务,第一个参数用来指定配置文件,配置文件properti
阅读全文
摘要:本文介绍一下zookeeper-3.9.0源码下载、编译及本地启动。 下载源码 git clone https://gitee.com/apache/zookeeper.git cd zookeeper git checkout release-3.9.0 git checkout -b relea
阅读全文
摘要:SpringCloud工程可以使用Nacos作为注册中心和配置中心,配置和使用非常简单,本文将简单介绍使用方式,并分析其实现方式。 SpringCloud工程集成Nacos SpringCloud工程使用Nacos非常简单,只需要引入依赖、编写配置参数、在启动类上添加注解即可。 引入依赖 <depe
阅读全文
摘要:本文介绍一下zookeeper-3.5.7集群安装。 解压安装 tar zxf apache-zookeeper-3.5.7-bin.tar.gz 创建数据、日志目录: mv apache-zookeeper-3.5.7-bin /app/zookeeper-3.5.7 cd /app/zookee
阅读全文
摘要:Nacos 2.x版本增加了GRPC服务接口和客户端,极大的提升了Nacos的性能,本文将简单介绍grpc-java的使用方式以及Nacos中集成GRPC的方式。 grpc-java GRPC是google开源的、以protobuf作为序列化方式、以http2作为通信协议的高性能rpc框架。 grp
阅读全文
摘要:Nacos 2.x在服务端与客户端直接增加了GRPC通信方式,本文通过2.0.2版本源码,简单分析GRPC通信方式: - 服务器启动 - 客户端连接 - 客户端心跳 - 服务器监控检查 # 服务器 ## proto文件 api/src/main/proto/nacos_grpc_service.pr
阅读全文
摘要:本文阅读nacos-2.0.2的config源码,编写示例,分析推送配置、监听配置的原理。 # 客户端 ## 创建NacosConfigService对象 ```java Properties properties = new Properties(); properties.setProperty
阅读全文
摘要:本文将从一个服务注册示例入手,通过阅读客户端、服务端源码,分析服务注册、服务发现原理。 使用的2.0.2的版本。 # 客户端 ## 创建NacosNamingService对象 ```java NacosNamingService nacosNamingService = new NacosNami
阅读全文
摘要:# 整体架构   public class DemoApplication {} 在Controller层使用@
阅读全文
摘要:最近发现开发spring cloud时,编写feign接口是一件痛苦的事,不仅要编写feign接口,还有fallback、请求参数和返回值等,大量重复工作,很浪费时间。 于是便想到可以编写工具自动生成feign接口。 实现起来并不复杂,就是把提供方工程的类加载进来,扫描controller和mode
阅读全文
摘要:一、业务需求 在Spring Cloud的项目中,A服务使用Feign调用B服务的某个接口,如果需要传递全局认证token或参数,在方法参数里面加相应字段的方式显然是不可取的。 首先想到的是AOP方式,使用切面拦截Feign方法,在AOP切面里面向方法参数里面添加数据,Feign方法执行完成之后,从
阅读全文

浙公网安备 33010602011771号