微服务的设计原则与⽣态系统 - 王磊2017.4 https://www.continuousdelivery.com/ • 缩短交付周期 • 降低发布⻛风险 • 质量量内嵌 组织协同 环境管理理 数据管理理 松耦合架构 反馈验证 持续集成/部署 内建质量量 微服务架构是松耦合架构机制的⼀一种实现 为什什么基于DevOps? ● Communication ● Automation ● Measuring ● • 持续交付流⽔水线 • 基础设施(私有云/公有云) • 持续集成/持续部署流⽔水线 • 团队的敏敏捷/⼯工程化实践 • 端到端的⼯工具链 • API⽹网关 • 服务开发框架 • 测试验证框架 • 部署运维⼯工具 系统化的⼯工程 框架层出不不穷 多维度互相依赖 为什什么需要⽣生态系统? 微服务⽣生态系统 API⽹网关/Edge Service ⽀支撑层 基础设施 交付流⽔水线与⼯工程实践 注册发现 监控 调⽤用链 路路由 授权认证 ⽇日志聚合 熔断 集中配置 基础设施 接⼊入层 业务层 - 聚合服务 - 基础服务 • ⾯面向对象设计(名词/动词) • 可重⽤用的逻辑 • 资源密集型部分 • 领域驱动设计 • 数据访问⽅方式 服务设计与拆分 44 Node.js Java 基础服务实现 聚合服务实现 Proxy Chained Shared0 码力 | 62 页 | 6.65 MB | 1 年前3
消费者云CSE微服务实践的诉求丌同, 可以按需选择协议和传输方式,服务不传输协议、序列化方式解耦 微服务框架技术选型-成熟 微服务框架采用的技术应该是经过验证、业界主流的技术,例如网 络传输采用Netty 微服务框架本身要成熟,经过丌同业务、较长时间的验证,商用发 布的特性要稳定 无论是社区开源版本,还是购买的商用软件,戒者自己构建,技术 支持和保障一定要到位 微服务框架技术选型-结果0 码力 | 22 页 | 1.39 MB | 1 年前3
开源开发者的一天 - Apache ServiceCombhttp://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb • 自底向上构建,通过原型快速迭代验证 • 全方位开放,分布式开发,跨公司沟通协作 • 开源项目是新技术的试验场 • 开源依托于社区不断发展壮大 • 一群热爱开源的人们,全身心投入自己的时间来进行开发 开源项目形成 [社区网站] https://github.com/apache?q=servicecomb 开源开发的一天 • 回复邮件 • 在JIRA (公司,社区)上⾯找任务 • 编写测试复现错误,修复bug • 代码提交,集成测试验证 • 欧洲同事上线,邮件 IRC 交流 • 完成新功能设计,发送邮件进⾏讨论 • 编码,修复集成测试发现的问题 • 北美同事上线, IRC交流 • 回复邮件 [社区网站] http://servicecomb0 码力 | 31 页 | 2.02 MB | 1 年前3
Java Chassis通信处理详解 - 通信优化实践丌同于消费者,生产者主要的工作就是等待消费者 的请求,在处理之后,返回应答 在这一端我们更加关注:“如何高效地接收和处理 数据”这件事情 同步模式下,业务逻辑不IO逻辑分离,且根据 “隔离仓”原则,为了保证整个系统更加稳定和高 效地运行,业务逻辑本身也需要在丌同的隔离的区 域内迚行。而这些区域,就是线程池。 所以构建生产者,就需要对线程池迚行精细的管理。 下面是针对线程池的各种管理方式。0 码力 | 17 页 | 2.22 MB | 1 年前3
ServiceComb 介绍介绍 姜宁 关于我 • ServiceComb是什么? • ServiceComb包含了哪些组件? • ServiceComb社区介绍? 议题 • 企业业务逻辑复杂,如何进行跨团队协同开发? • 大量老旧系统代码,如何支持其服务化改造? • 云化应用面临的监控已经分布调用追踪问题? 企业应用微服务开发面临的问题 ServiceComb 为什么需要服务契约 提供用户支持也不太方便 Java Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向接口契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同步 • 通过工具简化整个过程 API First & Code First0 码力 | 16 页 | 1.26 MB | 1 年前3
微服务架构与领域驱动设计 - 王磊Anti-Corruption Layer Entity - 实体对象 • ⼀一个对象通过ID被唯⼀一标识 Value Object - 值对象 • 通过值确定对象的等价性 Domain Services - 业务逻辑 Aggregate - 聚合(根) • ⼀一组实体对象和值对象的集合 • 外部对聚合的访问通过聚合根 Factories - 对象⼯工⼚厂 Repository - 存储机制 Tactical-战术建模 领域驱动设计的架构 �16 Domain Model • 核⼼心的领域模型,包括Entity/ValueObject/Aggregate Domain Services • 领域模型的业务逻辑 Application Services • 同应⽤用相关的接⼝口适配 User Interface • ⽤用户接⼝口相关的部分 Infrastructure • 数据相关部分:WebService/DB/File0 码力 | 28 页 | 1.84 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁ral/2018/03/22/microxchg-sagas.html 如何应对隔离性问题 • 隔离的本质是控制并发,防⽌止并发事务操作相同资源⽽而引起结果错乱 • 在应⽤用层⾯面加⼊入逻辑锁的逻辑。 • Session层⾯面隔离来保证串串⾏行行化操作。 • 业务层⾯面采⽤用预先冻结资⾦金金的⽅方式隔离此部分资⾦金金。 • 业务操作过程中通过及时读取当前状态的⽅方式获取更更新。0 码力 | 33 页 | 2.38 MB | 1 年前3
ServiceComb java SDK详解Consumer 透明RPC RestTemplate Producer 透明RPC JAX-RS SpringMVC • 传输绑架开发模式 • 传输可能对业务代码产生严重的侵入 • 治理逻辑与业务代码或传输耦合,需要针对各种场景独立开发 治理 治理 治理 治理 设计演进 服务契约 (OpenAPI) Transport Highway Servlet Rest Vertx 单位输出tps、平均时延、最大时延 • producer 以transport、调用结果两个维度进行分组,以operation为 单位输出tps、平均时延、最大时延、平均排队时间、最大排队 时间、业务逻辑平均执行时间、最大执行时间 TODO: cpu/mem/gc...... 性能调优 • 网络相关配置参数 – 系统参数比较保守,需要根据实际情况设置合适的参数 • Producer线程池0 码力 | 21 页 | 1.15 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁ral/2018/03/22/microxchg-sagas.html 如何应对隔离性问题 • 隔离的本质是控制并发,防⽌止并发事务操作相同资源⽽而引起结果错乱 • 在应⽤用层⾯面加⼊入逻辑锁的逻辑。 • Session层⾯面隔离来保证串串⾏行行化操作。 • 业务层⾯面采⽤用预先冻结资⾦金金的⽅方式隔离此部分资⾦金金。 • 业务操作过程中通过及时读取当前状态的⽅方式获取更更新。0 码力 | 39 页 | 2.78 MB | 1 年前3
微服务环境下的系统治理与容错微服务环境下的系统治理与容错 王新栋 • 《架构修炼之道》作者,《决战618:探秘京东技术取胜之道》联合作者; • 对分布式、微服务系统有多年实战经验,所设计和研发的系统经历了多次百亿流量的验证; • 热爱分享,维护技术公众号 [程序架道],对高并发、高可用系统有持续不懈的追求; 个人微信号 技术公众号 • 微服务架构 • 容错 • 总结 • 治理 微服务架构 架构 架构0 码力 | 45 页 | 16.09 MB | 1 年前3
共 20 条
- 1
- 2













