RPC一分钟

概述

  • 微服务治理:Springcloud、Dubbo
  • 服务通信:Grpc、Trift

Dubbo

参考

Dubbo核心功能,主要提供了:远程方法调用、智能容错和负载均衡、提供服务自动注册、自动发现等高效服务治理功能。

Dubbo协议Dubbo支持dubbo、rmi、http、hessian等协议:

  • dubbo: 单一长连接和NIO异步通讯,适合大并发小数据量的服务调用,以及消费者远大于提供者。
  • rmi: 采用JDK标准的rmi协议实现,传输参数和返回参数对象需要实现Serializable接口,使用java标准序列化机制,传输协议TCP。
  • http: 基于Http表单提交的远程调用协议,使用Spring的HttpInvoke实现,多个短连接,传输协议HTTP。
  • hessian: 集成Hessian服务,基于HTTP通讯,采用Servlet暴露服务,Dubbo内嵌Jetty作为服务器时默认实现,提供与Hession服务互操作。Dubbo官网是推荐我们使用Dubbo协议,如果没有特别的需求,也建议使用Dubbo默认协议。

Grpc

参考

架构主要分为四个部分:客户端(Client)、服务器(Server)、协议缓冲定义(.proto 文件)和服务端存根与客户端存根(Stubs)。

  • 多语言支持:gRPC几乎支持所有主流编程语言,包括C++、Java、Python、Go、Ruby、C#、Node.js等,便于构建多语言微服务架构。

  • 全双工流式处理:除了基本的请求-响应模式外,支持双向流式通信,使得客户端和服务端可以同时发送多个请求/响应,适用于实时数据传输场景。

  • HTTP/2作为传输层:gRPC基于HTTP/2协议,利用其多路复用、头部压缩等特性,可以更高效地管理多个并发的请求和响应,减少网络延迟并提高连接的利用率。

  • 安全性:内置TLS/SSL加密,确保通信安全;支持身份验证机制,增强服务安全性。

  • 服务定义清晰:基于ProtoBuf(Protocol Buffers)使用.proto文件定义服务接口和消息类型,易于维护和版本控制,gRPC使用Google的Protocol Buffers作为接口描述语言和消息交换格式。ProtoBuf是一种高效的序列化协议,相比XML或JSON等文本格式,它能更紧凑、更快地序列化和反序列化数据,从而减少网络传输的负担和提高性能。

Thrift

参考

Thrift(https://thrift.apache.org/) 是一个开源的软件框架,最初由 Facebook 开发,用于跨语言的服务开发。

相关推荐
飞Link3 分钟前
【常见协议与服务】HTTP1.1、HTTP2、HTTP3:性能到底差在哪
网络·http
Johnstons13 分钟前
网络性能分析怎么做:从时延、抖动、丢包到定位根因的实战判断框架
网络·ar·安全威胁分析·网络性能分析实战框架
feng145629 分钟前
稳定性-资金安全和资损防控
运维·网络·安全
奇妙之二进制39 分钟前
zmq源码分析之IO线程绑定时机
开发语言·网络
多年小白1 小时前
AI 日报 - 2026年4月25日(周六)
网络·人工智能·科技·深度学习·ai
Johnstons1 小时前
网络诊断工具怎么选:从监控告警到抓包定位的完整方法论
服务器·网络·php·es·抓包分析·网络诊断工具选型与排障方法
惊鸿若梦一书生1 小时前
《Python 高阶教程》016|偏函数与柯里化:把复杂调用拆成更简单的组合
linux·网络·python
lularible1 小时前
PTP协议精讲(3.7):传输层实现——PTP报文的“高速公路“
网络·网络协议·开源·嵌入式·ptp
S1998_1997111609•X1 小时前
RSS/RSA\-SSh,G\-bps^&&·iOS\Cd/,~…:cade?_code in/@$&¥_buy=ID card|want_M_GEN.M*L
网络协议·百度·ssh·gpu算力·oneapi
郝学胜-神的一滴1 小时前
深入epoll反应堆模型:从libevent源码看高性能IO设计精髓
linux·服务器·开发语言·c++·网络协议·unix·信息与通信