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

相关推荐
无心水19 小时前
【Python实战进阶】5、Python字符串终极指南:从基础到高性能处理的完整秘籍
开发语言·网络·python·字符串·unicode·python实战进阶·python工业化实战进阶
Top`20 小时前
两个服务之间传递的数据本质上是字节码(Byte Stream)
网络
dyxal21 小时前
非对称加密:彻底解决密钥分发难题的数字安全革命
服务器·网络·安全
少云清1 天前
【功能测试】4_Web端抓包 _网络知识
网络·功能测试·抓包
观望过往1 天前
WebSocket 技术全解析:原理、应用与实现
网络·websocket·网络协议
mohesashou1 天前
HCIP作业(OSPF综合实验)
网络·智能路由器
K***43061 天前
三大框架-Spring
java·spring·rpc
后端小张1 天前
【JAVA 进阶】深入探秘Netty之Reactor模型:从理论到实战
java·开发语言·网络·spring boot·spring·reactor·netty
q***d1731 天前
Rust在网络中的协议栈
开发语言·网络·rust
我命由我123451 天前
Java NIO 编程 - NIO Echo Server、NIO Client(NIO 异步客户端、NIO Selector 异步客户端)
java·开发语言·网络·java-ee·intellij-idea·intellij idea·nio