发布时间:2022-08-18 18:57
微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。
相关概念:
rpc | 1、远端过程调用,其调用协议通常包含传输协议和编码协议。 2、RPC 可以把 HTTP 作为一种传输协议(比如 gRPC 使用 HTTP 2.0 协议传输),本身还会封装一层 RPC 框架的应用层协议,不同语言之间调用需要依赖 RPC 协议 |
grpc | HTTP 2.0 协议传输 |
dubbo | 自定义报文的 TCP 协议。编码协议包含: 如基于文本编码的 XML Json,也有二进制编码的 ProtoBuf Binpack 等 |
rest | REST 风格直接把 HTTP 作为应用协议(直接和服务打交道),不同语言之间调用比较方便 |
为什么 Dubbo 比 Spring Cloud 性能要高一些?
Dubbo 采用单一长连接和 NIO 异步通讯(保持连接/轮询处理),使用自定义报文的 TCP 协议,并且序列化使用定制 Hessian2 框架,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况,但不适用于传输大数据的服务调用
Spring Cloud 直接使用 HTTP 协议(但也不是强绑定,也可以使用 RPC 库,或者采用 HTTP 2.0 + 长链接方式(Fegin 可以灵活设置))。
分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。简单的说,Dubbo 就是个服务框架,说白了就是个远程服务调用的分布式框架.
dubbo | Provider: 暴露服务的服务提供方。 |
Consumer: 调用远程服务的服务消费方。 | |
Registry: 服务注册与发现的注册中心。 | |
Monitor: 统计服务的调用次调和调用时间的监控中心。 | |
Container: 服务运行容器。 |
基于 Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。Spring Boot 是 Spring 的一套快速配置脚手架,使用默认大于配置的理念,用于快速开发单个微服务。
核心功能: