RPC 中服务消费端(Consumer) 需要请求服务提供方(Provider)的接口,必须要知道 Provider 的地址才能请求到。 那么,Consumer 要从哪里获取 Provider 的地址呢? 能不能 Consumer 自己配置 Provider 的地址? 这种方式理论上是可行 ...
URL 的定义 URL 对于大部分程序猿来说都是很熟悉的,其全称是 Uniform Resource Locator 统一资源定位器 。它是互联网的统一资源定位标志,也就是指网络地址。 一个标准的 URL 格式可以包含如下的几个部分: protocol:协议,例如 http 协议 username password:用户名 密码 host port:主机 端口 path:请求路径 paramete ...
2021-08-22 10:09 0 250 推荐指数:
RPC 中服务消费端(Consumer) 需要请求服务提供方(Provider)的接口,必须要知道 Provider 的地址才能请求到。 那么,Consumer 要从哪里获取 Provider 的地址呢? 能不能 Consumer 自己配置 Provider 的地址? 这种方式理论上是可行 ...
前言 RPC 框架是后端攻城狮永远都绕不开的知识点,目前业界比较知名有 Dubbo、Spring Cloud 等。很多人都停留在了只会用的阶段,作为程序猿,拥有好奇心深入学习,才能有效提高自己的竞争力。再进一层的同学,会去翻源码,看功能是如何实现的,这是很好的开始。看源码过一段时间容易忘记 ...
网络通信的开发,就涉及到一些开发框架:Java NIO、Netty、Mina 等等。 理论上来说,类似于序列化器,可以为其定义一套统一的接口,让不同类型的框架实现,事实上,Dubbo 就是这么干的。 但是,作为一个简单的 RPC 框架,ccx-rpc 就先不统一了,因为基本上网络框架是不会换 ...
最近被人问到RPC相关的东西~突然发现还是有很多原理没有清楚,所以要好好系统的学习一下RPC以及它的原理 先大致了解一下RPC的大概,原文:https://blog.csdn.net/top_code/article/details/54615853 --------------------------------------------------------------------- ...
RPC 框架有很多可扩展的地方,如:序列化类型、压缩类型、负载均衡类型、注册中心类型等等。 假设框架提供的注册中心只有zookeeper,但是使用者想用Eureka,修改框架以支持使用者的需求显然不是好的做法。 最好的做法就是留下扩展点,让使用者可以不需要修改框架,就能自己去实现扩展。 JDK ...
Netty 在服务端与客户端的网络通信中,使用的是异步双向通信(双工)的方式,即客户端和服务端可以相互主动发请求给对方,发消息后不会同步等响应。这样就会有一下问题: 如何识别消息是请求还是响应 ...
一、心跳 什么是心跳 在 TPC 中,客户端和服务端建立连接之后,需要定期发送数据包,来通知对方自己还在线,以确保 TPC 连接的有效性。如果一个连接长时间没有心跳,需要及时断开,否则服务端会维护 ...
我们在接下来会开始讲网络通信相关的内容了。既然是网络通信,那必然会涉及到序列化的相关技术。 下面是 ccx-rpc 序列化器的接口定义。 接口只包含序列化、反序列化两个最基础的方法。不同的序列化器只需要实现这个接口即可,再配合 SPI 就可以使用了。 下面是 ccx-rpc 的一小 ...