微服务架构常见问题和解决思路以及常见解决方案

由于微服务进行原子化拆分,拆分的太多了就会出现以下问题

问题1: 这么多小服务,应该如何管理?

服务治理,注册中心

微服务架构常见问题和解决思路以及常见解决方案_第1张图片
相关技术栈有Nacos,Eureka,Consul,Zookeeper
涉及到CAP三特性
服务注册,服务发现,服务剔除
使用nacos进行服务治理:详细章节

问题2: 这么多小服务,它们之间应该如何调用?

微服务架构常见问题和解决思路以及常见解决方案_第2张图片
REST:HTTP调用的格式
RPC:进程间通信方式
具体技术有feign,restTemplate

问题3: 这么多小服务,客户端如何访问?

网关
微服务架构常见问题和解决思路以及常见解决方案_第3张图片
微服务架构常见问题和解决思路以及常见解决方案_第4张图片
把网关相当于一个微服务,用网关的接口把其他接口覆盖,想要使用某一个接口的时候,只需要通过网关的接口访问即可。
利用Spring Cloud Gateway实现网关:详细章节

问题4:这么多小服务,如果一个出现问题了,那么作为服务自身来讲,应该如何自处理?

服务容错
微服务架构常见问题和解决思路以及常见解决方案_第5张图片
预防雪崩。服务降级,限流,熔断。具体技术:sentinel
限制某一接口(资源)的被访问频率,涉及到fallBack,fallBackFactory的使用。
利用sentinel服务容错:详细章节

问题5:这么多小服务,如果中间哪个环节出问题,作为程序员来讲,应该如何排查、

链路追踪

在这里插入图片描述
对一次请求进行追踪,追踪其涉及的模块,数据中心,服务器。进行性能分析,异常处理等等等。

总之一图概况

微服务架构常见问题和解决思路以及常见解决方案_第6张图片

常见解决方案

1 servicecomb
微服务架构常见问题和解决思路以及常见解决方案_第7张图片

2 springcloud
微服务架构常见问题和解决思路以及常见解决方案_第8张图片

3 springcloudAlibaba

微服务架构常见问题和解决思路以及常见解决方案_第9张图片

SpringCloudAlibaba介绍

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
主要功能
服务限流降级:默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。
消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。
分布式事务:使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。
阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
核心组件
Sentinel
阿里巴巴开源产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Nacos
阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
RocketMQ
Apache RocketMQ™ 基于 Java 的高性能、高吞吐量的分布式消息和流计算平台。
Dubbo
Apache Dubbo™ 是一款高性能 Java RPC 框架。
Seata
阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
Alibaba Cloud OSS
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
Alibaba Cloud SchedulerX
阿里中间件团队开发的一款分布式任务调度产品,支持周期性的任务与固定时间点触发任务。
Alibaba Cloud SMS
覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

你可能感兴趣的:(java)