微服务架构与领域驱动设计 - 王磊微服务架构与领域驱动设计 王磊磊 华为 - 2012技术专家 ThoughtWorks - Lead Consultant Sybase - Tech Leader �2 关于我 • 丰富的持续交付/微服务架构/DevOPS经验 • 《微服务架构与实践》作者 • 《DevOps实践指南》译者 • 中国⾸首批EXIN DevOps Master教练 • ⻄西安DevOps ⻄西安DevOps Meetup 联合发起⼈人 • 《消费者驱动契约测试-Pact》译者 • 《使⽤用SpringBoot/Cloud构建微服务》视频作者(StuQ) 微服务架构与DDD 领域驱动设计的核⼼心 基于事件⻛风暴暴的DDD实践 01 02 03 �4 什什么是微服务架构 微服务架构 �5 Martin Fowler, Mar 2014 Microservices - the 什什么是领域驱动设计 领域驱动设计 �8 领域驱动设计解决的两个核⼼心问题: 1.业务架构如何合理理的设计划分? 2.技术架构与业务架构保持⼀一致? 领域驱动设计是⼀一种设计⽅方法,围绕业务概念构建领域模型, 并通过分离技术实现的复杂性,从⽽而控制软件演化的复杂度。 Tacking Complexity in the heart of software �9 微服务架构与领域驱动设计?0 码力 | 28 页 | 1.84 MB | 1 年前3
反应式微服务框架ServiceComb设计思想&mdash与传统流程不同的是,所有功能都在 eventloop中执行,并不会进行线程切 换 p 橙色箭头走完后,对本线程的占用即完 成了,不会阻塞等待应答,该线程可以 处理其他任务 p 当收到远端应答后,由网络数据驱动开 始走红色箭头的应答流程 p 只要有任务,线程就不会停止,会一直 执行任务,可以充分利用cpu资源,也 不会产生多余的线程切换,去无谓地消 耗cpu。 压测数据 系统: Ubuntu 18 com/GuoYL123/ReactiveBenchmark 调优后的压测数据 n 寻找拐点 n 调整consumer/producer参数(网络线程/业务线程等),提升处理能力 n 重新调整测试驱动压力(加大或减小),重复前面步骤 n 输出最终性能拐点时的各项参数,包括TPS/时延/CPU/带宽等等 Spring Cloud Gateway VS Zuul VS EdgeService 30 码力 | 33 页 | 5.68 MB | 1 年前3
微服务场景下的数据一致性解决方案 - 殷湘一致性方案的选择建议 ? ??? ???? ? ?? ? ? ? ?? 一致性方案的选择建议 • 微服务内:聚合通过数据库事务保证强一致 内刚 • 微服务间:最终一致 外柔 微服务架构与领域驱动设计 • if our service boundaries align to the bounded contexts in our domain, and our microservices start in ensuring that our microservices are loosely coupled and strongly cohesive. 微服务:限界上下文 领域驱动设计是微服务系统架构的最佳指南 聚合与数据一致性 • A properly designed Aggregate is one that can be modified in any way0 码力 | 31 页 | 4.28 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统线程, 同时发请求。JMeter 需要调高 Xmx / Xms。 2. 需要迅速伸缩,用了docker-compose。 注意NAT的性能问题。 启发:不一定要K8s,Istio, 一定是需求驱动。 3. 设置一定的冗余,防止性能波动。 4. 配置重试,提高可用性。 5. 在压测状态,使用kill -9 模拟宕机,观察客户端异常情况。 组件 Login Customer-mangage 线程, 同时发请求。JMeter 需要调高 Xmx / Xms。 2. 需要迅速伸缩,用了docker-compose。 注意NAT的性能问题。 启发:不一定要K8s,Istio, 一定是需求驱动。 3. 设置一定的冗余,防止性能波动。 4. 配置重试,提高可用性。 5. 在压测状态,使用kill -9 模拟宕机,观察客户端异常情况。 组件 Login Customer-mangage0 码力 | 15 页 | 1.46 MB | 1 年前3
ServiceComb RoadMap2017年年12⽉月 ServiceComb 0.2版本 1. Go语⾔言开发框架 2. 服务契约⽀支持⼯工具 3. Reactive响应式 4. … ServiceComb 0.3版本 1. 由⽤用户来驱动 … ServiceComb Roadmap Community over code 社区胜于代码 社区共献 01/ 提交BUG 02/ 完善⽂文档 03/ 参与邮件列列表 04/ 提交Patch0 码力 | 10 页 | 460.46 KB | 1 年前3
可发布版-美团点评微服务OCTO-曹继光采样,采样点不随机; • 影响 65? q化和 QBfE-NMInR 分布,精确度略差; • 影响服务运行,诊断结束后需重启,线上不可用。 • SDBJNEJ 使用 信号量 + 6VM?5 io驱动 • 基于定时中断的采样,采样点随机(准确性高); • 不修改m码,不影响 65? q化; • 性能影响<3%,诊断结束后,无需重启服务。 服务治理实践()) + 服务保障v系 - 钻石段t0 码力 | 35 页 | 14.10 MB | 1 年前3
NTTDATA 汽车行业数字营销平台微服务化实践业务 分析 主数据管理 …… 用户行为分析 销售转化分析 活动分析 客服分析 …… 业务智能核心,C2B2C闭环持续优化 第三方 媒体 邮件 车联网 微博 渠 道 数据沉淀-分析-驱动 车 7 github.com/apache?q=servicecomb servicecomb.apache.org 业务微服务化及分层设计 应用微服务引擎 第一层.CRM静态站点 第二层0 码力 | 11 页 | 2.25 MB | 1 年前3
ServiceComb java SDK详解默认2个线程池,每个池中线程数等于cpu数 – 参考metrics统计结果 • cpu 带宽允许的情况下,cpu应该基本占满 • 网络带宽 关注是否已经占满带宽 • RSS 如果环境(硬件、os、驱动)支持RSS特性,确认队列数是否正确配置、中断是否均匀绑定了cpu、是否关闭了自动软中断负载均衡(不关闭会导致中断绑定, 在一段时间后失效) rest server verticle rest client0 码力 | 21 页 | 1.15 MB | 1 年前3
微服务的设计原则与⽣态系统 - 王磊⽇日志聚合 熔断 集中配置 基础设施 接⼊入层 业务层 - 聚合服务 - 基础服务 • ⾯面向对象设计(名词/动词) • 可重⽤用的逻辑 • 资源密集型部分 • 领域驱动设计 • 数据访问⽅方式 服务设计与拆分 44 Node.js Java 基础服务实现 聚合服务实现 Proxy Chained Shared Cache Asynchronous0 码力 | 62 页 | 6.65 MB | 1 年前3
微服务创新新品发布•对应用程序透明。同步工具启停,不应该对应用程序的原有流程产生影响。 •为多服务中心提供对等网络。他们之间是松耦合的,成员可以自由加入与退出。 •对异构服务中心提供支持。插件化的形式支持多种服务中心驱动,用户可便捷的接入自定义插件。 gossip 协议 Syncer Syncer Syncer Syncer Syncer Syncer Consule Service Center0 码力 | 12 页 | 2.96 MB | 1 年前3
共 13 条
- 1
- 2













