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

相关推荐
vortex523 分钟前
Burp与其他安全工具联动及代理设置教程
网络·安全
xserver21 小时前
ensp 基于端口安全的财务部网络组建
网络·安全
从后端到QT3 小时前
boost asio 异步服务器
服务器·网络·tcp/ip
Blankspace学3 小时前
Wireshark软件下载安装及基础
网络·学习·测试工具·网络安全·wireshark
墨水\\3 小时前
Ansible部署及基础模块
服务器·网络·ansible
手心里的白日梦3 小时前
网络计算器的实现:TCP、守护进程、Json、序列化与反序列化
网络·tcp/ip·json
不吃鱼的羊3 小时前
Excel生成DBC脚本源文件
服务器·网络·excel
言成言成啊3 小时前
TCP与UDP的端口连通性
网络协议·tcp/ip·udp
敲代码娶不了六花3 小时前
对计算机网络中“层”的理解
网络·网络协议·tcp/ip·计算机网络
x66ccff3 小时前
HTTPS如何通过CA证书实现安全通信,以及HTTPS的局限性
网络协议·安全·https