springcloud微服务实施整体架构方案梳理

整体方案架构图如下所示:

在这里插入图片描述

平台服务

2.1平台基础服务说明

生产环境平台基础服务都需要保证高可用

2.1.1 MySQL数据库

MySQL5.5以上版本 或者 5.5.5-10.3.10-MariaDB

数据库已经按业务领域进行了分库操作,不同的微服务对应独立的Database

2.1.2 MongoDB数据库

版本要求:4.0以上版本

存储一些文档型数据,部分业务有用到

2.1.3 业务Redis服务集群

版本要求:5.0

平台其他业务数据的缓存、分布式ID、 分布式锁相关业务

此服务不需要持久化数据

2.1.4 ElasticSearch集群服务

版本要求:6.4.2

需要额外安装中文分词插件

存储系统日志

存储用户行为日志

存储系统预警信息

存储接口调用信息

2.1.5 Logstash 日志收集服务

版本要求:6.4.2

需要部署至少两个日志收集服务,用以保障服务的可靠性

收集的日志直接存入ES

2.1.6 Kibana 运营可视化服务

版本要求:6.4.2

系统日志检索

用户行为日志分析

接口调用日志分析

运营数据分析

应用埋点信息可视化

商业BI

2.1.7 Git代码仓库服务

用于存储和管理微服务所有配置信息

更新配置信息,及时通知配置中心服务进行服务配置动态更新

2.1.8 RabbitMQ 消息队列服务集群

版本要求:3.X版本

整个微服务集群的健康检查通信

链路追踪数据收集

微服务间消息异步通信

消息总线服务

集群状态更新

2.1.9 Nginx服务器

最新版本

生产环境需要开启HTTPS

提供web前端项目部署配置

2.2 微服务平台基础服务说明

生产环境平台基础服务都需要保证高可用

2.2.1 服务注册中心eureka

简介:采用Spring cloud官方推荐Eureka组件实现,Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现。具有注册中心、负载均衡、故障转移的功能。

生产环境需要部署至少三个节点,保证注册中心自身的高可用

2.2.2 配置中心springcloud-config

简介:采用Spring cloud 的spring-cloud-config组件,我们的外部配置文件集中放置在一个git仓库里,用来管理所有的配置文件,维护的时候需要更改配置时,只需要在本地更改后,推送到远程仓库,所有的服务实例都可以通过config server来获取配置文件,这时每个服务实例就相当于配置服务的客户端config client

生产环境需要部署至少两个节点,保证配置中心的高可用

配置信息缓存

监听配置信息更改

动态通知业务微服务即时根据配置信息的修改进行调整

2.2.3 链路追踪服务 springcloud-sleuth-zipkin

简介:采用Zipkin组件,Zipkin是一个分布式追踪系统。它有助于收集解决微服务架构中延迟问题所需的时序数据。它管理这些数据的收集和查找。

生产环境需要部署至少两个节点,保证数据收集中心的高可用

接口链路追踪数据采用消息总线进行采集,底层依赖于RabbitMQ服务

非生产环境环境默认采用全量收集,线上建议调整采样率小于10%

用于记录请求调用链、调用时长记录

2.2.4 微服务网关 springcloud-zuul

生产环境需要部署至少两个节点,保证接口网关的高可用和负载均衡

配置文件实时更新和机型接入信息更新需要用到消息总线服务,底层依赖于RabbitMQ服务

客户端设备鉴权

用户身份鉴权

会话认证

接口调用请求响应数据统计与监控

限流、降级

灰度发布

2.2.5 分布式事务协调中心 txlcn-tm

简介: 采用txlcn开源框架,TX-LCN定位于一款事务协调性框架,框架其本身并不操作事务,而是基于对事务的协调从而达到事务一致性的效果。

生产环境需要部署至少三个节点,保证高可用

只要各个tm实例的redis、DB配置指向同一地址,则被视为同一个集群

协调跨微服务的应用进行同一事务操作

2.2.6 定时调度控制中心集群 xxl-job-admin

简介: XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

生产环境需要部署至少三个节点,保证高可用

基于成熟的定时任务作业框架Quartz cron表达式执行定时任务。

提供了可视化管理后台

提供了动态管理定时任务的接口

所有xxl-job-admin服务的mysql地址全指向同一个,即自动视为同一个集群,客户端连接集群时配置的服务端地址间以逗号分隔即可
注意:这个开源工具还是基于springboot1.X版本的,版本有些旧了,目前还没有更新,不过快速集成进平台进行业务开发还挺方便

2.2.7 监控中心服务spring admin

简介:监控所有服务状态,服务关闭可进行邮件报警

生产环境需要部署至少两个节点,保证高可用。

在不同的机器上直接启动服务,自动组成集群

可以监控服务健康状态,如环境变量、配置信息、日志级别控制、线程栈信息、垃圾回收状态、服务负载情况、接口调用情况等等

2.2.8 普罗米修斯监控/报警

简介:监控所有服务状态、机器健康状态,可以配置规则进行报警处理

生产环境需要部署至少两个节点,保证高可用。

一些常用的基础服务可以通过官方提供的exporter进行数据采集

springboot项目均可以直接通过集成promethus依赖,配置需要暴露的端点即可,所以我们的所有springcloud体系内的项目均可以直接接入

2.2.9 Hystrix监控面板及数据聚合(Turbine)

简介:监控服务当前负载情况、接口调用状态,具体内容可以参考下图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时小浅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值