[汇总]RPC经验总结
东方证券正式开源其微服务框架gRPC-Nebula 如何设计一个短小精悍、可拓展的RPC框架?(含实现代码) 最流行6种微服务RPC技术,看完就知道用哪一种了 100 行代码透彻解析 RPC 原理
Just One Pure ITer
东方证券正式开源其微服务框架gRPC-Nebula 如何设计一个短小精悍、可拓展的RPC框架?(含实现代码) 最流行6种微服务RPC技术,看完就知道用哪一种了 100 行代码透彻解析 RPC 原理
微服务离不开RPC框架,RPC框架的原理、实践及细节,是本篇要分享的内容。
1. 异步 RPC 调用的应用场景 1-1. 缩短长流程的调用时延 随着业务分布式架构的发展,系统间的系统调用日趋复杂,以电商的商品购买为例,前台界面的购买操作涉及到底层上百次服务调用,形成复杂的调用链,示例如下:
1. 前 言 RPC 是远程过程调用(Remote Procedure Call)的缩写,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。举例来说,部署在 A 节点上的应用调用部署在 B 节点上的应用提供的接口,A 节点需要将调用的数据信息通过网络传递到 B 节点,B 节点根据接收到的数据信息找到具体的接口执行,并将执行的结果通过网络返回给节点 A。 RPC 框架封装网络传输、序列化、负载均衡、故障剔除等通用能力,使得 A 节点可以像调用本地方法一样简单地调用远程接口。 SCF 是 58 自主研发的 RPC 框架,致力于在分布式环境下提供高性能、高可靠和透明化的 RPC 远程调用方案。 服务管理平台是基于 SCF 框架的服务治理平台,具有服务节点自动注册与发现、负载均衡、服务鉴权、全方位监控、完善的告警等特点。 2. 整体架构 SCF...
在微服务架构中,一般都是通过 API 网关统一向外部系统提供 API 服务。熟悉 Spring Cloud 的同学知道,Zuul 在 Spring Cloud 中就起到了 API 网关的作用。同理,在菜鸟微服务架构中,菜鸟 API 网关作为对外暴露服务的网关。 菜鸟在面向全球 CP(Cainiao Partner)提供服务的时候,遇到了传统 API 网关在跨国网络上传输数据的瓶颈,如下图,Partner C(国外的 CP)调用 API Gateway 走了跨国的公网,该段网络的质量非常不稳定,严重影响了 Partner C 的服务体验。我们把这种由于网络延迟高、抖动严重而引起的网络质量问题称为 网络桎梏。
几乎所有的 RPC 框架都宣称自己是“高性能”的,那么实际结果到底如何呢, 让我们来做一个性能测试吧。 项目地址: https://github.com/hank-whu/rpc-benchmark 测试说明 仅限于 Java; 客户端使用 JMH 进行压测, 32 线程, 10 次预热, 3 次运行; 每次运行前都会执行 killall java, 但没有在每轮测试时重启操作系统; 所有类库版本在发布时都是最新的, 除非存在 bug; 所有框架都尽量参考该项目自带的 Benchmark 实现; 将会一直持续, 不定期发布测试结果; 测试用例 boolean existUser(String email),...
Follow:
Cookie | Duration | Description |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |