微服务架构及ServiceComb实践
法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:商品维护和下订单是2个微服务,下订单系统对性能有较高要求,所以可以考虑把商品的价格从商品维护微服务同步到订单系统,该同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事 apache.org [Github ] https://github.com/apache?q=servicecomb 微服务的其他组件 • 配置中心 a) 集中配置 b) 动态配置 c) 配置历史保留 d) 配置回滚 社区召集! e) 灰度发布配置 社区召集! • 认证鉴权 a) 认证 b) 鉴权 • Toolkit a) 契约 b) 脚手架 • 分布式日志 https://github 从一个简单的电商Demo开始。 背景:开发商开盘时,让客户“抢购”其当前推售的所有房源,先抢到先得。 客户管理 Customer- manage 楼盘管理 realestate 抢购/下订单 House-order 用户中心 User-center 认证鉴权 login 管理客户的基本信息, 录 入客户的选房资格。 管理楼盘的基本信息,楼盘 1-n 楼栋 1-n 房源。 管理开售活动,进行开售时0 码力 | 14 页 | 2.04 MB | 1 年前3使用微服务架构快速开发万级TPS高可用电商系统
Demo简介 从一个简单的电商Demo开始。 背景:开发商开盘时,让客户“抢购”其当前推售的所有房源,先抢到先得。 客户管理 customer- manage 楼盘管理 realestate 抢购/下订单 house-order 用户中心 user-center 认证鉴权 login 管理客户的基本信息, 录 入客户的选房资格。 管理楼盘的基本信息,楼盘 1-n 楼栋 1-n 房源。 管理开售活动,进行开售时 无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:客户维护和订单是2个微服务,订单系统对性能有较高要求,所以可以考虑把购房资格信息从客户维护微服务同步到订单系统,改同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事 apache.org [Github ] https://github.com/apache?q=servicecomb 微服务的其他组件 • 配置中心 a) 集中配置 b) 动态配置 c) 配置历史保留 d) 配置回滚 社区召集! e) 灰度发布配置 社区召集! • 认证鉴权 a) 认证 b) 鉴权 • Toolkit a) 契约 b) 脚手架 https://github.com/apache0 码力 | 15 页 | 1.46 MB | 1 年前3杨钦民-唯品会微服务架构演进之路v0.2
� ������ ������� ����� ������� ����� ����� ����� ��API��� ������ ������ ������ ������ ������ 订单服务化 ������� ��������� ������� ������� ��������� ������� ��������� ������� ������� ���� ���� ���� �� ����� ������� ������� �*�������� �*�������� �*������ �*�������� 订单服务化P取消订单相关服务ba 查询订单 查询商品u息 取消校验 取消订单 释放库存 返还l惠 退款 � � � �� � � � �� �� ����� � � � �� ����� �����0 码力 | 43 页 | 3.89 MB | 1 年前3可发布版-美团点评微服务OCTO-曹继光
) 6 白银 Ø 标准化水平良好 黄金 钻石 Ø 服务保障能力强 Ø 胜p%千万订单量级b务 星耀 Ø 跨地区容灾和扩展能力 Ø 数千万订单量级b务强需 求 青铜 Ø 基础能力达标 铂金 Ø 性能一流 Ø 足n支撑数百万订单量级b务 Ø 易用性q秀 服务治理演进各c阶段 服务治理实践(%):基础能力达标 - 青铜段t0 码力 | 35 页 | 14.10 MB | 1 年前3微服务架构与领域驱动设计 - 王磊
• 根据对业务的理理解,将领域事件写在橙⾊色贴上,每个即时贴代表⼀一个事件 • 事件按照从左到右按时间顺序排列列,不不同参与者的事件需保证相对顺序 • 事件采⽤用⽤用“xx已xx”的格式,如“订单已创建” 什什么是(领域)事件? • 任何的业务都会以数据的形式留留下⾜足迹。我们对于数据的追溯可以通过对 事件的追溯来完成。当把这些事件按照时间顺序排列列起来,⼏几乎可以清晰 的推测出在过往的⼀一段时间内到底发⽣生了了深数据变化。0 码力 | 28 页 | 1.84 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
(Saga不不保证) • 持久性 (Saga log) 缺乏隔离性带来的问题 • 两个Saga事务同时操作⼀一个资源会出现数据语义不不⼀一致的的情况。 • 两个Saga事务同时操作⼀一个订单 ,彼此操作会覆盖对⽅方(更更新丢失) • 两个Saga事务同时访问扣款账号,⽆无法看到退款 (脏读取问题) • 在⼀一个Saga事务内,数据被其他事务修改前后的读取值不不⼀一致(模糊 读取问题)0 码力 | 33 页 | 2.38 MB | 1 年前3华为企业级PaaS 微服务应用
内容呈现云服务 用户呈现云服务 音乐媒资接口 媒资内容管理 内容转码 运营渠道管理 运营管理门户 内容呈现接入 内容搜索 内容推荐 产品呈现 活动呈现 用户呈现接入 音乐播放控制 订单 用户行为 用户社交 华为音乐传统单体架构拆解成15+个微服务,基于CSE开发和治理 • 传统单体架构升级、维护、扩容成本高 • 架构不统一,有使用SpringCloud、Dubbo、Servlet等各0 码力 | 17 页 | 3.42 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
(Saga不不保证) • 持久性 (Saga log) 缺乏隔离性带来的问题 • 两个Saga事务同时操作⼀一个资源会出现数据语义不不⼀一致的的情况。 • 两个Saga事务同时操作⼀一个订单 ,彼此操作会覆盖对⽅方(更更新丢失) • 两个Saga事务同时访问扣款账号,⽆无法看到退款 (脏读取问题) • 在⼀一个Saga事务内,数据被其他事务修改前后的读取值不不⼀一致(模糊 读取问题)0 码力 | 39 页 | 2.78 MB | 1 年前3Linux Con Workshop Quick Start Demo 殷湘 姜宁
Doorman认证用户为合法企业用户则继续, 否则返回结果说明用户无权限 5. Manager查询Project archive是否该内容 请求有处理记录 6. 如有处理记录,Manager将历史处理结果 直接返回给用户 7. 无处理记录,Manager从Bulletin board 获取有能力匹配人员的联系方式 8. Manager将请求发送给符合条件的 Worker/Beekeeper0 码力 | 12 页 | 2.10 MB | 1 年前3ServiceComb介绍
ServiceComb发展路路线图 http://www.aleanjourney.com/2016/05/5-steps-for-creating-lean-roadmap.html ServiceComb历史版本 Service Center Java Chassis 0.1.0 正式开源版本 Service Center Java Chassis 0.2.0 加⼊入Zuul⽀支持, Spring0 码力 | 16 页 | 877.58 KB | 1 年前3
共 13 条
- 1
- 2