某大型业务系统技术栈介绍
某大型业务系统技术栈介绍
本文将介绍某大型业务系统的微服务技术栈,包括微服务架构的概念、主要技术组件及其功能、常见的微服务架构模式等。
微服务架构【图】
微服务架构【概念】
微服务架构,是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。在微服务架构中,服务与服务之间通信时,通常是通过轻量级的通信机制,实现彼此间的互通互联、互相协作。所谓轻量级通信机制,通常是指与语言无关、与平台无关的这类协议。通过轻量级通信机制,使服务与服务之间的协作变得简单、标准化。
主要技术
1、服务注册发现:Nacos
2、服务配置中心:Nacos
3、服务调用:OpenFeign、Dubbo
4、服务网关:Spring Cloud Gateway,Apisix
5、熔断限流:Sentinel
6、服务监控:Spring Boot Actuator
、n9e、Istio(一个开源的服务网格解决方案,包含了Prometheus - Monitoring system & time series database)
7、分布式数据库:DRDS(分库分表,表冗余-按不同字段分库)
8、分布式缓存:Redis
9、分布式文件:MinIO(适用于大规模对象存储场景,支持多租户和细粒度的访问控制)
10、消息队列:Rocket MQ
11、分布式事务:Seata,用了其AT模式、TCC模式两种,没用Saga模式(无锁)
12、定时任务:Elasticjob(分片)
13、链路跟踪:SkyWalking
14、分布式日志:ELK(Elasticsearch,Logstash,Kibana)
15、容器云:Kubernetes、Rancher(开源的容器管理平台,使得用户可以在不同的云环境中灵活部署和管理容器化应用)
16、CI/CD持续集成/部署:GitLab+GitLab Runner
17、代码仓库:GitLab
18、代码质量:阿里PMD、Junit、Swagger(可视化在线接口测试)
19、镜像仓库:Harbor(镜像仓库)
重要提示【亮点】
1、点击上面的架构组件名称(含链接)进官方网站/下载地址/官方文档等
常见的微服务架构
常见的微服务架构主要包括以下几种:
洋葱架构:由Jeffrey Palermo提出,洋葱架构强调依赖倒置原则,所有代码依赖于更中心的层,但代码不能依赖于远离核心的层。这种架构偏向于面向对象的编程,将对象置于所有其他对象之上,适用于长期存在的业务应用程序以及具有复杂行为的应用程序。
整洁架构:由Robert C. Martin提出,整洁架构是基于洋葱架构的概念,但各层的细节有所不同。它的核心称为“实体”,代表企业范围的业务规则。整洁架构强调关注点分离,使得应用更容易维护。
微服务聚合模式:这种模式通过构建一个聚合服务来聚合多个微服务的响应数据,形成一个统一的结果返回给客户端。它简化了客户端的操作,减少了与多个微服务交互的复杂性,但可能成为性能瓶颈。
微服务共享模式:在这种模式下,每个微服务拥有自己的独立数据库,以确保服务之间的高内聚性和低耦合性。然而,在某些情况下,多个微服务可能需要共享数据,这通常被视为过渡性设计,因为共享数据库会导致微服务之间的紧密耦合。
微服务代理模式:代理服务充当其他微服务的代理,处理服务之间的通信。通过代理服务,客户端的请求被转发给后端服务进行处理。这种模式解耦了客户端和微服务之间的交互,易于管理、监控和控制,但需要额外的资源来处理请求