微服务架构设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、微服务松耦合,这意味着服务之间可以独立的开发和部署
4、微服务可以由不同的开发语言开发微服务允许持续集成工具容易且灵活的自动集成部署 5、新的团队成员可以很快融入到开发中
6、微服务易于理解, 开发人员容易修改和维护, 这是因为这种架构下服务之间的代码都是独
立的,团队很小,目标明确 7、微服务允许你充分采用最新的技术(框架,编程语言,编程实践等)
JBOSS中间件 (gbss-dealer/…)
JBOSS中间件 gbss-mobile
Oracle
Redis/Memcached
19
xxx面临的挑战
远程调用,没 有管理
移动APP
一套代码, 存在于多个 系统
PC
微信
自助终端
订单逻辑
订单逻辑
订单逻辑
订单逻辑
源码依赖,各自部署
单点
Oracle
Redis/Memcached
HTML5离线 模块
轻应用 (远程网页)
原生模块
Weex/React Native
Cordova
APP底座(启动、登录、更新、导航、网络、JSBridge)
28
SOA架构
业务员门户 移动门户 接触层 社交门户 CC
变蜘蛛网为总线架 构,解决系统之间 的连通、路由、转 换。
2 外部系 统 第三方 生态
6
单块架构应用的优势
7
单块架构应用的挑战
1
2
6 3 5
8
微服务架构综述
9
微服务架构产生的背景
10
微服务与SOA
SOA?
11
微服务与SOA的主要区别
SOA实现
企业级,自顶向下开展实施 服务由多个子系统组成,粒度大 企业服务总线,集中式的服务架构 集成方式复杂(ESB/WS/SOAP) 单块架构系统,相互依赖,部署复杂
微服务架构实现
团队级,自底向上开展实施 一个系统被拆分成多个服务,粒度细 无集中式总线,松散的服务架构 集成方式简单(HTTP/REST/JSON) 服务都能独立部署
12
相比传统SOA的服务实现方式,微服务更具有灵活性、可实施 性以及可扩展性,其强调的是一种独立测试、独立部署、独立 运行的软件架构模式。
小轻量级的通 信机制 独立的进程中 小, 且专注于做 一件事情
具体的一个服务而言,应根据业务上下文,选择合适的语
言、工具对其进行构建。
松耦合、独立 部署
14
微服务架构的好处
1、每个微服务都是一个小的,专注实现一个特定功能或商务需求的服务 2、微服务可以由一个小的开发组独立的发布(一般2到5个开发者)
8、微服务仅包含商业逻辑代码,不会混合HTML, CSS等其它UI组件
9、规模扩大时微服务很容易扩展 10、微服务可以部署在中低档的服务器上
11、易于继承第三方的服务
12、每个微服务都有自己的存储能力(也可以共享)
15
微服务架构面临的挑战
•微服务可能带来过多的操作
服务粒度与 接口粒度
分布式事务
•要求要有 DevOps 技能
20
Dubbo
21
MyCat分布式数据库
22
未来面貌-工具与流程
源码(CODE) 打包(CI) 部署(CD)
定时进行代码静态检 查、单元测试,并编 译打包 引入分支模型,解决 手工合并代码问题
规范化各种环境定义: dev/test/staging/production 不同环境自动或者手工部署 Ci编译好的包
MQ/REST HTTP 开放API平台
MES
QMS
QMS
OA
ERP 操作平台
3
企业服务总线(ESB)
1
适配器
HTTP
交易系统
CRM
SAP
核心业务
WMS
……
HTTP HTTP HTTP HTTP
PC业务统一平台
HTTP HTTP
API Gateway
监控
前端 应用
前端 应用
前端 应用
前端 应用
前端 应用
前端 应用
微服务 中 台 服 务
交易类服务 客户类服务 内容服务 移动服务 大数据服务
ESB
后台服务
27
微服务在前端APP上的使用
HTML5离线 模块
微服务架构设计
1
架构变迁历史
2
WEB开发早期,逻辑代码没有区分,如ASP、JSP、PHP
3
Java、.NET发展,数据访问层出现(二层架构)
4
随着面向对象、架构等理念不断发展,三层架构出现
5
虽然软件的三层架构帮助我们将应用在逻辑上分成了三层,但 它并不是物理上的分层,最终还是一个整体部署,我们称之为 单块架构应用
•可能会有重复的工作
•分布式系统管理起来相对复杂
自动化运维 服务治理
•由于分布式部署的问题分析问题比较困难 •当服务很多的时候管理整个系统就很麻烦
16
归根结底为了敏捷
17
使用微服务改造公司核心系统
18
xxx现有架构
APP PC 浏览器
F5
JBOSS中间件 (gbss-trade/…)
JBOSS中间件 (gbss-portal/…)
CAT
24
CAT-调用链路
25
xxx重构
A系统
B系统
支付系统
移动网站
ห้องสมุดไป่ตู้
…… 统一 认证
SO中心
PO中心
会员中心
支付中心
促销中心
学习中心
微服务
26
微服务架构
APP 微信 HTTP HTTP 手机 浏览器 HTTP PC 浏览器
REST
协议适配 安全 日志 路由 业务适配层
HTTP
WAP业务统一平台
13
微服务架构的定义
微服务架构是一种架构模式,它提倡将单一应用程序划分 成一组小的服务,服务之间互相协调、互相配合,为用户 提供最终价值。每个服务运行在其独立的进程中,服务与 服务间采用轻量级的通信机制互相沟通(通常是基于HTTP 协议的RESTful API)。每个服务都围绕着具体业务进行构 建,并且能够被独立的部署到生产环境、类生产环境等。 另外,应当尽量避免统一的、集中式的服务管理机制,对