首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
rpc
订阅
dwyane12
更多收藏集
微信扫码分享
微信
新浪微博
QQ
23篇文章 · 0订阅
深入理解 RPC
大家都写过不少程序,比如写个 hello world 服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题: 1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用? 2)其它团队要使用我们的服务,我们的服务该怎么发布以便他人调用?下面将对这两个问题展开探讨。
从零开始实现一个RPC框架(四)
到目前为止我们已经支持了基本的RPC调用,也支持基于zk的服务注册和发现,还支持鉴权和熔断等等。虽然实现得都非常简单,但是这些功能都是基于可替换的接口实现的,所以我们后续可以很方便的替换成更加完善成熟的实现。 这次我们继续服务治理方面的功能,包括注册中心优化、限流的支持、链路追…
从零开始实现一个RPC框架(二)
上一篇文章里我们实现了基本的RPC客户端和服务端,这次我们开始着手实现更上层的功能。篇幅所限,具体的代码实现参见:代码地址 首先让我们来重新定义Client和Server:SGClient和SGServer。SGClient封装了上一节定义的RPCClient的操作,提供服务治…
Netty源码分析——AUTOREAD
这个是设置在Channel上的一个属性,主要控制管道的自动读。可能对于很多初学者来说,都对这个Channel的自动读表示困惑,这篇文章主要来看下这个自动读如何工作以及什么时候关闭自动读(自动读默认开启)。 这个要追溯到我们的读操作了,我们以服务端为例,服务端先是有个叫Boss的…
从零开始实现一个RPC框架(五)
这是系列最后一篇文章了,最后我们来为我们的rpc框架实现一个http gateway。这个功能实际上受到了rpcx的启发,基于这种方式实现一个简单的类似service mesh中的sidecar。代码地址:github http gateway可以接收来自客户端的http请求并…
从零开始实现一个RPC框架(三)
到目前为止我们的框架已经有了一部分服务治理的功能,这次我们在之前的基础上实现一些其他功能。篇幅所限这里只列举部分实现,完整代码参考:github 实现我们之前的注册中心的接口即可,这里使用了docker的libkv而不是直接用zk客户端(从rpcx那学的),libkv封装了对于…
RPC 使用中的一些注意点
最近线上碰到一点小问题,分析其原因发现是出在对 RPC 使用上的一些细节掌握不够清晰导致。很多时候我们做业务开发会把 RPC 当作黑盒机制来使用,但若不对黑盒的工作原理有个基本掌握,也容易犯一些误用的微妙错误。 虽然曾经已经写过一篇《RPC 的概念模型与实现解析》 从概念模型和…
徒手撸一个简单的RPC框架
之前在牛逼哄哄的 RPC 框架,底层到底什么原理得知了RPC(远程过程调用)简单来说就是调用远程的服务就像调用本地方法一样,其中用到的知识有序列化和反序列化、动态代理、网络传输、动态加载、反射这些知识点。发现这些知识都了解一些。所以就想着试试自己实现一个简单的RPC框架,即巩固…
Java 200+ 面试题补充② Netty 模块
本文是前文《Java 最常见的 200+ 面试题》的第二个补充模块,第一模块为:《Java 200+ 面试题补充 ThreadLocal 模块》。 Netty 是一款基于 NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,对比于 BIO(Blocking …