Loading

随笔分类 -  造轮子系列之 RPC

手把手教大家如何打造自己的 RPC 框架。
摘要:心跳是用于服务端和客户端保持有效连接的一种手段,客户端每隔一小段时间发一个心跳包,以告知服务端其在线。 重连机制是连接断开之后,要使用的时候自动重连的机制。 心跳和重连机制,结合起来让服务端和客户端的连接使用更加合理,该断开的断开节省服务端资源,该重连的重连提高可用性。 阅读全文
posted @ 2021-09-07 08:57 小新是也 阅读(1453) 评论(4) 推荐(2) 编辑
摘要:Netty 在服务端与客户端的网络通信中,使用的是异步双向通信(双工)的方式,即客户端和服务端可以相互主动发请求给对方,发消息后不会同步等响应。这样就会有一下问题: 1. 如何识别消息是请求还是响应? 2. 请求如何正确对应到响应? 阅读全文
posted @ 2021-09-06 08:00 小新是也 阅读(1034) 评论(0) 推荐(0) 编辑
摘要:TCP 是一个“流”协议,所谓流,就是没有界限的一长串二进制数据。TCP 作为传输层协议,并不了解上层业务数据的具体含义,它会根据 TCP 缓冲区的实际情况进行数据包的划分,所以在业务上认为是一个完整包的,可能会被 TCP 拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的 TCP 拆包和粘包问题。那么如何解决粘包拆包问题呢? 阅读全文
posted @ 2021-09-05 09:36 小新是也 阅读(1676) 评论(0) 推荐(1) 编辑
摘要:ccx-rpc 选择的网络框架是 Netty,Netty 是一款大名鼎鼎的异步事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。 阅读全文
posted @ 2021-09-03 08:47 小新是也 阅读(942) 评论(0) 推荐(0) 编辑
摘要:从现在开始,我们要开始讲网络通信相关的内容了。既然是网络通信,那必然会涉及到序列化的相关技术。 序列化器的定义,很简单,只有序列化,反序列化两个方法。 常见的序列化算法有:Java 序列化、FastJson、Jackson、Kryo、Hessian、Protobuf 等。这些算法各有优缺点,大家在使用时,可以结合自己的业务情况进行选择。 阅读全文
posted @ 2021-08-27 09:19 小新是也 阅读(1010) 评论(4) 推荐(2) 编辑
摘要:RPC 中 Consumer 需要请求 Provider 的接口,必须要知道 Provider 的地址才能请求到。那么,Consumer 要从哪里获取 Provider 的地址呢?答案是:注册中心 阅读全文
posted @ 2021-08-24 21:58 小新是也 阅读(1967) 评论(0) 推荐(1) 编辑
摘要:URL 可以理解为配置总线,所有扩展点参数都包含 URL 参数,URL 作为上下文信息贯穿整个扩展点设计体系。 阅读全文
posted @ 2021-08-22 10:09 小新是也 阅读(1259) 评论(0) 推荐(0) 编辑
摘要:RPC 框架有很多可扩展的地方,最好的做法就是留下扩展点,让使用者可以不需要修改框架,就能自己去实现扩展。 JDK 原生已经为我们提供了 SPI 机制,ccx-rpc 在此基础上,进行了性能优化和功能增强。 阅读全文
posted @ 2021-08-15 16:29 小新是也 阅读(1346) 评论(0) 推荐(1) 编辑
摘要:RPC 框架是后端攻城狮永远都绕不开的知识点,本系列 "造轮子系列之RPC",手把手教大家如何打造自己的RPC框架。 阅读全文
posted @ 2021-08-08 21:31 小新是也 阅读(4668) 评论(0) 推荐(2) 编辑