微服务基础设施怎么建设,如何选择微服务框架

微服务基础设施架构全貌

微服务基础设施怎么建设,如何选择微服务框架_第1张图片

微服务 vs SOA

微服务基础设施怎么建设,如何选择微服务框架_第2张图片

微服务基础设施优先级

微服务基础设施怎么建设,如何选择微服务框架_第3张图片

微服务框架核心

微服务基础设施怎么建设,如何选择微服务框架_第4张图片

模式1-嵌入式SDK式

微服务基础设施怎么建设,如何选择微服务框架_第5张图片

【优点】

1. 架构简单,天然支持高性能、高可用;

2. 维护简单,无需维护独立的 Proxy 节点。

【缺点】

1. 应用侵入,需要集成 SDK,并联动升级;

2. 多语言重复开发 SDK

模式2-反向代理式

微服务基础设施怎么建设,如何选择微服务框架_第6张图片

【优点】

1. 应用无侵入;

2. 天然支持多语言。

【缺点】

1. Service Proxy 需要通过集群来做高性能、高可用;

2. 维护复杂,需要维护 Service Proxy 集群。

模式3 - 网络代理式(Service Mesh)

微服务基础设施怎么建设,如何选择微服务框架_第7张图片

【优点】

1. 应用无侵入;

2. 天然支持多语言;

3. 天然支持架构高性能、高可用。

【缺点】

1. 维护复杂,需要维护每台服务器上的 Service Proxy;

2. 单台服务器的 Service Proxy 是单点;

3. 全链路请求性能会下降。

微服务框架模式对比

嵌入SDK

反向代理 网络代理
多语言 每个语言都需要开发SDK 天然支持多语言 天然支持多语言
应用侵入 需要集成SDK
可维护性 无需额外维护工作 维护Proxy服务器集群 维护每台机器上的Proxy节点,数量非常多。
高性能 天然支持 需要通过Proxy集群来实现 整体架构是高性能的,但全链路请求性能会下降
高可用 天然支持 需要通过Proxy集群来实现 整体架构高可用,单台服务器上的proxy是单点
适应场景 团队技术栈统一为单个单语言 团队技术栈多语言,服务集群规模不大 团队技术栈多语言,服务集群规模超级大

常见的微服务框架

嵌入式 SDK 样例 - Dubbo

微服务基础设施怎么建设,如何选择微服务框架_第8张图片

    

Apache Dubbo 是一款高性能、轻量级的开源 Java 服务框架,提供了六大核心能力:

1. 面向接口代理的高性能 RPC 调用;

2. 智能容错和负载均衡;

3. 服务自动注册和发现;

4. 高度可扩展能力;

5. 运行期流量调度;

6. 可视化的服务治理与运维。

嵌入式 SDK 样例 - Spring Cloud

微服务基础设施怎么建设,如何选择微服务框架_第9张图片

反向代理式案例 - APISIX

微服务基础设施怎么建设,如何选择微服务框架_第10张图片

Service Mesh 案例 - Istio

微服务基础设施怎么建设,如何选择微服务框架_第11张图片

如何选择开源微服务框架

微服务基础设施怎么建设,如何选择微服务框架_第12张图片

你可能感兴趣的:(Java面试题,微服务,微服务,架构,云原生,java)