三百行代码做个rpc框架的demo
代码仓库:
仓库已经放入了zookeeper3.5.9的解压包,力求用最简单的代码,最方便的方式去看一个rpc框架的代码demo,希望能帮到你~
介绍
用zookeeper作为注册中心,三百行代码实现一个rpc框架,用最简单的代码做个rpc框架的demo出来。
zookeeper:一个高可用的公共元数据存储框架,为了协调服务、解决部分失败的存在(部分失败是指两个节点之间不知道对方是否挂了,是收到数据还是没收到)。
1,在大多数分布式系统中,想要在两个数据节点之间保持数据的一致性,那么总得有一个公共的地方来沟通,并且这个公共的地方需要是高可用的,不能天天挂了(高可用的方式——集群分布),例如在Mysql主从集群分布里,Mysql通过binlog文件来记录执行了哪些sql语句,集群现在的逻辑到哪了,保持了数据的一致性。
2,那么每个分布式系统都要自己维护一个binlog,并且为了避免单点问题还得保证binlog的高可用吗?zookeeper诞生了,在我看来,可以认为Zookeeper是一个公共的文件系统。
使用说明
- 代码里已经放入了Zookeeper3.5.9的bin包,在运行代码前需要先运行zookeeper 。
Windows运行命令:
cmd
bin/zkServer.cmd
Linux运行命令:
bin/zkServer.sh
- 各模块说明及其启动类:
模块名 | 说明 | 启动类 |
---|---|---|
rpc-client | 客户端,调用服务 | RpcClientApplication |
rpc-server | 服务端,注册服务 | HelloServiceImpl |
server-api | 服务统一的接口 | 无 |
flag-rpc-framework | rpc框架 | 无 |