# 《RPC手撸专栏》第63-X章:阶段性作业

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

大家好,我是冰河~~

《RPC手撸专栏》到目前为止,源码已经有60+个子工程,完成了:自定义注解、自定义包扫描类、自定义协议、请求与响应协议的封装、服务提供者、服务消费者、注册中心、负载均衡与增强型负载均衡、序列化与反序列化、动态代理、反射机制和心跳机制。《RPC手撸专栏》部分源码展示如下所示。

图63-1

图63-2

图63-3

其中,使用了大量的自定义SPI技术来增强框架的扩展性。并使用Java原生程序启动服务提供者和服务消费者,实现了真正意义上的分布式RPC调用。同时,在心跳机制篇章,实现了服务消费者与服务提供者之间的双向心跳检测机制。

后续还会继续更新整合Spring、SpringBoot、Docker与K8S等功能。

# 作业内容

为了更好的学习《RPC手撸专栏》后续的内容,也为了让星球的小伙伴进一步提升项目的参与感,特布置如下作业:

  • 完善RPC框架心跳检测机制。
  • 服务消费者向服务提供者发送心跳检测时,如果连续三次未收到服务提供者的响应,则服务消费者重新连接服务提供者。
  • 服务提供者向服务消费者发送心跳检测时,如果连续三次未收到服务消费者的响应,则服务提供者断开与服务消费者的连接。
  • 服务消费者重新连接服务提供者时,注意之前连接资源的清理工作。

# 作业要求

为了保证作业的质量,现对《RPC手撸专栏》阶段性作业提出如下要求:

  • 代码规范,可读性高,扩展性强,有必要的注释。
  • 写代码前,画代码执行的流程图和核心代码类图和关系图。
  • 代码调试阶段可通过打印日志的方式来验证程序的正确性。
  • 注意连接资源的清理工作,不可出现连接资源占用过多或OOM等问题。
  • 完成作业的小伙伴提交到星球,我会对作业进行一一点评,对完成作业的小伙伴单独指导项目优化点。

# 写在最后

最后,我想说的是:学习《RPC手撸专栏》一定要塌下心来,一步一个脚印,动手实践,认真思考,遇到不懂的问题,可以直接到星球发布主题进行提问。一定要记住:纸上得来终觉浅,绝知此事要躬行的道理。否则,一味的CP,或者光看不练,到头来不仅失去了学习的意义,到头来更是一无所获。

小伙伴们记住:学习是为自己学习,大家加油吧!

# 关于星球

冰河技术 知识星球《SpringCloud Alibaba实战》从零搭建并开发微服务项目已完结,《RPC手撸专栏》已经更新60+篇文章,并将源码的获取方式放到了知识星球中,同时在微信上创建了专门的知识星球群,冰河会在知识星球上和星球群里解答球友的提问。

# 星球提供的服务

冰河整理了星球提供的一些服务,如下所示。

加入星球,你将获得:

1.学习从零开始手撸可用于实际场景的高性能、可扩展的RPC框架项目

2.学习SpringCloud Alibaba实战项目—从零开发微服务项目

3.学习高并发、大流量业务场景的解决方案,体验大厂真正的高并发、大流量的业务场景

4.学习进大厂必备技能:性能调优、并发编程、分布式、微服务、框架源码、中间件开发、项目实战

5.提供站点 https://binghe.gitcode.host 所有学习内容的指导、帮助

6.GitHub:https://github.com/binghe001/BingheGuide - 非常有价值的技术资料仓库,包括冰河所有的博客开放案例代码

7.提供技术问题、系统架构、学习成长、晋升答辩等各项内容的回答

8.定期的整理和分享出各类专属星球的技术小册、电子书、编程视频、PDF文件

9.定期组织技术直播分享,传道、授业、解惑,指导阶段瓶颈突破技巧

# 如何加入星球

特别提醒: 苹果用户进圈或续费,请加微信 hacker_binghe 扫二维码,或者去公众号 冰河技术 回复 星球 扫二维码加入星球。

好了,今天就到这儿吧,我是冰河,我们下期见~~

# 加群交流

本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “冰河” 微信(hacker_binghe),备注:学习加群

冰河微信

# 公众号

分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。

公众号:冰河技术

# 星球

加入星球 冰河技术 (opens new window),可以获得本站点所有学习内容的指导与帮助。如果你遇到不能独立解决的问题,也可以添加冰河的微信:hacker_binghe, 我们一起沟通交流。另外,在星球中不只能学到实用的硬核技术,还能学习实战项目

关注 冰河技术 (opens new window)公众号,回复 星球 可以获取入场优惠券。

知识星球:冰河技术