手写 RPC 框架 笔记
rpc框架项目难点总结by小雨
难点一,etcd的使用和安装。
在注册中心那章开始卡住了,需要安装etcd。小雨在Linux服务器安装,安装完后,在项目中看不了效果。因为用的Java8,etcd的依赖不支持。后续用zookeeper,在Linux服务器中安装Java和zookeeper,终于在项目中实现了注册中心的效果。
还需要重点理解注册中心服务的代码逻辑,如何初始化,如何注册服务,如何发现服务等。
难点二,请求/响应的逻辑。
要清楚知道自己定义的配置类(注册中心配置类、rpc配置类)和模型类(请求、响应、注册元信息、服务注册)的属性值。一开始用http请求/响应,需要用到序列化和反序列化;之后用tcp请求/响应,需要用到编码和解码。
先启动提供端,初始化rpc的配置,然后注册服务(重点是服务名和请求地址),然后监听端口的请求;
之后启动消费端,初始化rpc和注册中心的配置,根据方法名获取服务的地址,然后请求对应服务的地址。
难点三,理解项目中的反射逻辑。
服务名对应的实现类,spi的加载也有,请求处理时也有使用。
难点四,设计自定义协议。
难点五,处理tcp请求中的半包粘包问题。
难点六,spi加载器的逻辑。
难点七,配置加载工具的逻辑。
难点八,注解的使用和springboot的注解加载逻辑。
还有...
PS 记录下要点,不断消化下,下次在看项目,重点查看相关代码的实现逻辑💪
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
又又又又又完结,本来是点赞系统之前就在写rpc,点赞系统出来后就搁置了,现在终于完结
4
求助一下,未初始化的List为什么值是[]而不是null,做RPC项目时遇到一个很奇怪的问题,在做注册中心本地缓存时,服务缓存private List serviceCache;没有做任何初始化,但第一次执行readCache方法时,serviceCache的值不是null,而是[],自己排查过程:1,类没有使用@Data注解2,成员变量私有,唯一对外提供修改的方法为writeCache3,在方法
3
myrpc 学习笔记-008 重试机制
4
myrpc 学习笔记-009 容错机制
4
myrpc 学习笔记-0010 启动机制和注解驱动(完结)
5
作者分享
小雨:2024年,有哪些有趣的智能体?附文章总结/收藏/提醒助手教程
7
用vercel部署pro项目,提示api接口请求失败,有球友知道如何处理吗?
1
从搜索到推荐,从聊天问答到主动提醒,AI生活管家,个性化提醒用户,技术的实现难吗?
比如说,收藏的文章,根据相关时间提醒用户再看;
购买的基金,能够提醒用户记录并推荐相关新闻;
习惯的(有规律的)养成,懂你的生活管家。
时间就是金钱,通过这个应用,利用好自己的时间,完成想完成任务。
主要功能是,想做个类似抹茶(微信/GPT)的聊天项目。发送消息给他,他能够根据情况主动发消息。
想交流下相关的实现逻辑。目前有大概的产品操作和功能需求,还没做个类似的项目,还在学习中,特别想实现下这个生活管家项目,AI版的滴答清单~
1
想做个微信机器人项目,实现接受保存用户发来消息的功能,有哪些可用的框架?
搜索到wxpy,wechaty,还在探索中,不知有了解的大佬吗?
2
手写 RPC 框架 笔记
10

