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 开发,用于跨语言的服务开发。

相关推荐
爱写代码的小朋友13 分钟前
IP 地址规划中的子网划分:/18 网络容纳 64 个 C 段(/24)的原理与应用解析
网络·网络协议·tcp/ip
十五年专注C++开发40 分钟前
WebSocket原理详解(二)
网络·websocket·网络协议
JhonKI1 小时前
从零实现Json-Rpc框架】- 项目实现 - 服务端registry&discovery实现
网络协议·rpc·json
蜗牛沐雨2 小时前
MCP协议的Streamable HTTP:革新数据传输的未来
网络·网络协议·http
金丝猴也是猿2 小时前
如何在Flutter上实现高性能的动态模板渲染
websocket·网络协议·tcp/ip·http·网络安全·https·udp
swift开发pk OC开发2 小时前
Flutter性能优化细节
websocket·网络协议·tcp/ip·http·网络安全·https·udp
网络抓包与爬虫2 小时前
Flutter 环境搭建、常用指令、开发细节
websocket·网络协议·tcp/ip·http·网络安全·https·udp
louisgeek2 小时前
MQTT 消息队列遥测传输
网络协议
春生黎至10053 小时前
GZ073网络系统管理赛项赛题第1套模块A:网络构建解题笔记
运维·网络
IT程序媛-桃子3 小时前
【网安面经合集】42 道高频 Web 安全面试题全解析(附原理+防御+思路)
运维·网络·安全·面试