没有合适的资源?快使用搜索试试~ 我知道了~
微服务系统和数据库设计方案.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 38 浏览量
2023-11-06
17:34:56
上传
评论
收藏 2.4MB DOCX 举报
温馨提示
试读
21页
微服务系统和数据库设计方案.docx
资源推荐
资源详情
资源评论
微 服 务 系 统 和 数 据 库
设 计 方 案
Revised on November 25, 2020
微服务系统和数据库设计方案
1. 微服务本质
微服务架构从本质上说其实就是分布式架构,与其说是一种新架构,不
如说是一种微服务架构风格。
简单来说,微服务架构风格是要开发一种由多个小服务组成的应用。每
个服务运行于独立的进程,并且采用轻量级交互。多数情况下是一个 HTTP 的
资源 API。这些服务具备独立业务能力并可以通过自动化部署方式独立部署。
这种风格使最小化集中管理,从而可以使用多种不同的编程语言和数据存储技
术。
对于微服务架构系统,由于其服务粒度小,模块化清晰,因此首先要做
的是对系统整体进行功能、服务规划,优先考虑如何在交付过程中,从工程实
践出发,组织好代码结构、配置、测试、部署、运维、监控的整个过程,从而
有效体现微服务的独立性与可部署性。
本文将从微服务系统的设计阶段、开发阶段、测试阶段、部署阶段进行
综合阐述。
理解微服务架构和理念是核心。
2. 系统环境
名称
版本
说明
JDK
Spring Boot
Spring Framework
Ribbon
kafka
RabbitMQ
3. 微服务架构的挑战
➢ 可靠性:
由于采用远程调用的方式,任何一个节点、网络出现问题,都将使得服务调用失
败,随着微服务数量的增多,潜在故障点也将增多。
也就是没有充分的保障机制,则单点故障会大量增加。
➢ 运维要求高:
系统监控、高可用性、自动化技术
➢ 分布式复杂性:
网络延迟、系统容错、分布式事务
➢ 部署依赖性强:
服务依赖、多版本问题
➢ 性能(服务间通讯成本高):
无状态性、进程间调用、跨网络调用
➢ 数据一致性:
分布式事务管理需要跨越多个节点来保证数据的瞬时一致性,因
此比起传统的单体架构的事务,成本要高得多。另外,在分布式系统中,通常
会考虑通过数据的最终一致性来解决数据瞬时一致带来的系统不可用。
➢ 重 复 开 发 :
微服务理念崇尚每个微服务作为一个产品看待,有自己的团队开
发,甚至可以有自己完全不同的技术、框架,那么与其他微服务团队的技术共
享就产生了矛盾,重复开发的工作即产生了。
4. 架构设计
4.1. 思维设计
微服务架构设计的根本目的是实现价值交付,微服务架构只有遵循
DevOps 理念方可进行的更顺畅,思维方式的转变是最重要的。
实现微服务技术架构,现有产品需要进行技术上的改进以及相关配套服务的实
现,采用分阶段实施、以及试点产品优先实施的策略,主要包括如下:
一、技术上的改进:
1、前后端分离,web 前端通过 Http/Https 协议调用微服务的 API 网关,
由 API 网关再经过路由服务调用相应的微服务
2、不同微服务之间通过 REST 方式互相调用
3、微服务之间通过消息中间件实现消息交互机制
二、配套服务与功能实现 :
1、需要进行相应的自动化服务实现,包括自动化构建、自动化安装部署
、自动化测试、自动化平台发布(Docker 实现)
2、管理服务,对于微服务架构,必须配套相应的监控与管理服务、日志
管理服务等
3、协作服务,运用 DevOps 思想提升开发、测试、运维的高效沟通与协
作,实现开发与运维的一体化
4.2. 微服务架构设计
架构图 1
架构图 2
1、我们把整个系统根据业务拆分成若干个子系统或微服务。
2、每个子系统可以部署多个应用,多个应用之间使用负载均衡。
3、需要一个服务注册中心 Eureka,所有的服务都在注册中心注册,负载均衡也是通过
在注册中心注册的服务来使用一定策略来实现。Eureka 可部署多个,进行高可用保证。
4、所有的客户端都通过同一个网关地址访问后台的服务,通过路由配置 ZUUL 网关来
判断一个 URL 请求由哪个服务处理。请求转发到服务上的时候使用负载均衡 Ribbon。
5、服务之间采用 feign 进行调用。
6、使用断路器 hystrix,及时处理服务调用时的超时和错误,防止由于其中一个服务的
问题而导致整体系统的瘫痪。
7、还需要一个监控功能,监控每个服务调用花费的时间等。
8、使用 SpringCloud Config 进行统一的配置管理,需要考虑与公司的配置管理平台如
何配合使用。
9、Hystrix,监控和断路器。我们只需要在服务接口上添加 Hystrix 标签,就可以实
现对这个接口的监控和断路器功能。
10、Hystrix Dashboard,监控面板,他提供了一个界面,可以监控各个服务上的服务调
用所消耗的时间等。
11、Turbine,监控聚合,使用 Hystrix 监控,我们需要打开每一个服务实例的监控信息
来查看。而 Turbine 可以帮助我们把所有的服务实例的监控信息聚合到一个地方统一查
看。这样就不需要挨个打开一个个的页面一个个查看。
架构的可靠性保证:
在关键节点做主备、集群部署,防止单点故障。待后续确认问题:
1、Access Control:Zuul 网关提供了相关控制功能,与我司 CAS 如何结
合使用
2、Config Server:Spring Cloud 提供了远程配置中心,与我司的配置管
理平台如何结合使用
剩余20页未读,继续阅读
资源评论
公众号:智慧方案文库
- 粉丝: 2071
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功