支持10万TPS的高性能服务间通信解读servicecomb.apache.org github.com/apache?q=servicecomb 支持10万TPS的高性能服务间通信解读 刘宝 2 github.com/apache?q=servicecomb servicecomb.apache.org 刘宝,华为微服务开发专家,Apache ServiceComb Committer。 拥有10年以 上java开发框架的开发和运维经验。热爱微 eout: [schemaId]: [operationId]: 30000 6 github.com/apache?q=servicecomb servicecomb.apache.org 性能模式 servicecomb.apache.org github.com/apache?q=servicecomb Copyright©2018 Huawei Technologies Co.0 码力 | 7 页 | 1.58 MB | 1 年前3
ServiceComb在华为消费者云的亿级用户微服务实践大兵团作战,统一认识,组织赋能 微服 务化 架构目标 质量 属性 架构原则 关键 技术 选型 架构师 设计&开发&测试骨干 架构培训 关键 技术 培训 服务化培训 服务化培训 案例 培训 研发&运维团队 微服务划分 微服务 开发 微服务测试 微服 务运 维 规范制定:微服务命名规范、微服务API定义规范、微服 务验收规范、微服务运维和治理规范… 技术 技术选型:统一的微服务框架技术选型,涵盖微服务框架 、微服务流水线(CI/CD)、微服务自动化运维和部署框架 组织赋能:拉通设计、开发、测试和运维的跨团队培训、 技术方案试点、案例分享、 ServiceComb统一预警体系,不 同业务部门之间的合作和协同 服务化地图:业务部署上线后,对业务微服务API进行基 线化,并发布服务化地图,涵盖微服务的划分原则、微服务 流水线地址、微服务SLA指标等 微服务API设计:支持Swagger API规范 开发方式:支持透明RPC、Spring MVC风格的微服务开发 编程模型:同时支持同步、异步的编程模型 性能:支持原生的Reactive模式(EventLoop),相比于传 统的同步服务调用,性能更高(吞吐量N倍+提升、时延降低 为原来的50%-) 轻量级、易集成:可以方便的与Spring MVC、Tomcat等 已有技术和容器集成,支持轻量级的standalone部署0 码力 | 15 页 | 1.15 MB | 1 年前3
ServiceComb 的前世今生http://enterpriseitadoption.com/ 传统企业应用开发模式 开发 产品发布计划 开发 集成开发 运维人员替换 部 署 旧 版 本 开发 开发 测试/发布 • 技术实现单一,需要想办法用一种技术解决所有问题 • 只能按大颗粒系统发布版本,响应周期长 (小特性版本3-6个月,每年1个大版本) • 无法做到永远在线,大版本升级时,要停机中断服务 旧版本持续运行 Speed & Safety 面临的问题 • 企业应用和互联网应用的不同? • 如何做到不同ISV的应用互联互通统一管理? • 怎么才能加快微服务的开发? • 微服务化后如何保证性能? • 如何进行统一的路由控制? 企业应用和集成 Java 注册中心、治理中心 Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 --- 工具支持 OpenAPI (Swagger) 定义 编辑器:在线编辑,语法提示, 错误检查 文档生成器:生成HTML与符合 华为规范文档 Mock生成器:生成Mock工具, 用于测试微服务 现有代码提取 OpenAPI工具 与RPC的IDL互 转工具 protobuf3 多语言多框架代 码生成器 多语言Protobuf3对象 编码库 Java0 码力 | 16 页 | 1.45 MB | 1 年前3
开源开发者的一天 - Apache ServiceCombcom/apache?q=servicecomb 开源开发的一天 • 回复邮件 • 在JIRA (公司,社区)上⾯找任务 • 编写测试复现错误,修复bug • 代码提交,集成测试验证 • 欧洲同事上线,邮件 IRC 交流 • 完成新功能设计,发送邮件进⾏讨论 • 编码,修复集成测试发现的问题 • 北美同事上线, IRC交流 • 回复邮件 [社区网站] http://servicecomb.apache com/apache?q=servicecomb 提交issue报告 • 善用Github issue • 检索是否有类似的错误 • 详细描述软件的版本和使用环境 • 描述错误详细内容 • 给出测试用例 • 登录到JIRA 或者其他的Bug管理 工具提交报告或者补丁 https://github.com/apache/servicecomb-java-chassis/issues [社区网站] 代码提交指南(http://servicecomb.apache.org/cn/developers/submit-codes) • 熟悉开源项目的代码 • 学会自己构建(build)项目 • 注意运行测试,保证自己修改 的代码不break build • 提交项目,发送PR • 进行相关的讨论 https://github.com/apache/servicecomb-toolkit/graphs/contributors0 码力 | 31 页 | 2.02 MB | 1 年前3
反应式微服务框架ServiceComb设计思想&mdashpServiceComb 的 I/O 通信模型演进 pServiceComb API⺴关Edge Service p实践案例 为什么微服务框架需要Reactive? • 微服务架构调用次数更多 • 更高的性能,规模效应 • 更好的用户体验 业界趋势 n Java 9中把反应式流规范以 java.util.concurrent.Flow 类的方式添加到了标准库中 n Spring 5对反应式编程模型提供了内置支持,并增加了新的 2680 v4 @ 2.40GHz 内存: 8GB 测试代码:https://github.com/GuoYL123/ReactiveBenchmark 调优后的压测数据 n 寻找拐点 n 调整consumer/producer参数(网络线程/业务线程等),提升处理能力 n 重新调整测试驱动压力(加大或减小),重复前面步骤 n 输出最终性能拐点时的各项参数,包括TPS/时延/CPU/带宽等等 EdgeService 3 Callback hell 实践案例—华为消费者云 异步场景1:降低长流程/复杂业务流程时延 异步场景2:CPU资源使用率低、性能要求高 异步场景3:需要配置较长超时时间的接口 异步场景4:多个微服务级联调用 性能对比测试: 采用Reactive异步模式之后,TPS提升 43% 左右 时延降低 28% 左右,CPU占用降低 56% 左右 总结 n 根据业务场景选择,可同时使用;0 码力 | 33 页 | 5.68 MB | 1 年前3
消费者云CSE微服务实践迁移、降级熔断等,保障微服务的运行质量,提升业务SLA 建立服务化团队:随着业务的丌断拆分,大的研发团队也会被拆分成2-Pizza Team, 微服务团队由3-5人组成,负责整个微服务的设计、开发、测试、部署运维和治理,通过 全功能团队的建设,让业务真正敏捷起来 微服务框架技术选型-支持多语言 尽管现在以Java和GO语言为主,但是从架构演进角度考虑,未来 会根据消费者业务自身的特点引入更适合的语言 从集成角度看,希望可以灵活的不Spring Boot等框架集成 微服务框架技术选型-高性能、低时延 硬件成本已经是白菜价,软件性能丌重要? 消费者云业务服务集群规模大,单点的性能提升能够带来巨大收益 从用户体验看,端到端时延非常重要,分布式乊后带来的时延增加,是一个很大的挑戓 丌是所有业务都有苛刻的性能需求,丌同业务对性能的诉求丌同, 可以按需选择协议和传输方式,服务不传输协议、序列化方式解耦 低业务云化成本 CSE在消费者云业务的实践-API First API 接口 契约 消费者1 消费者2 消费者...N 提 供 者 1、接口定义 2、测试用例 3、码流 4、错误码... 最佳实践 无论Rest API,戒者RPC Highway API,统一使用Swagger YAML定义API 服务端和客户端都基于AP0 码力 | 22 页 | 1.39 MB | 1 年前3
华为企业级PaaS 微服务应用配置中心 治理中心 全局事务 契约管理 监控大屏 智能分析 环境管理 开发环境 测试环境 预验证环境 灰度环境 生产环境 商业生态(aPaaS/SaaS) 行业 (政府、教育、医疗、零售、……) 伙伴 (软通、中软、幸宜、博思、医 信、……) 工具(CPE) 设计和开发 构建 测试 发布上线 监控运维 部署 流 水 线 ( 持 续 集 成 、 持 续 交 付 付 ) 扩展插件: Eclipse等 扩展插件: 静态检查等 扩展插件: 三方部署系 统 扩展插件: 客户测试系 统 扩展插件: 客户自有仓 库 扩展插件: 客户自有监 控 开发者生态 开源社区 案例 开发者 API 产品 生态 通用微服务工具市场 行业微服务组件市场 虚机(ECS) servicecomb.apache.org github.com/apache?q=servicecomb com/apache?q=servicecomb 助力文思海辉PHP语言系统实现 全微服务化架构 基于RFID技术的楼宇设施管理 遇到的问题 性能瓶颈稳定 性差 复杂度高不易 扩展 • 单体应用,功能耦合 • 新增功能影响现有业务,升级业务中断 • 业务增长对性能要求高,增加机器不能解决问 题 • 一个业务问题影响整个系统,风险高 基于微服务引擎Mesher功能将PHP应用接入微服务治理 Mesher0 码力 | 17 页 | 3.42 MB | 1 年前3
解读Apacheorg/foundation/policies/conduct.html 许可协议是关键 许可协议是关键 起源 — 当代码被创造出来时,需要建⽴许可协议 商标 — 不可以与已经存在的名称有冲突 软件许可 — 现有代码,测试,⽂档需要知识产权的拥有者 需要将软件许可赋予Apache 贡献者协议 — 在Apache的贡献需要遵循贡献者协议: 版权, 专利, 分发/修改 Apache协议 Apache协议 万能捐献者 ServiceComb项⽬负责⼈ ServiceComb 简介 ServiceComb 简介 Java Chassis - 具有 MicroServices 管理的⾼性能Java 服 务引擎 服务中⼼ - 基于Etcd的⾼性能服务中⼼ Pack - ⽀持Saga和TCC的Centrical分布式事务协调器 Mesher - 基于Go的服务⽹格实现 Kie - 全新设计的MicroServices配置中⼼ 使⽤JIRA或者Github issue来追踪与开发相关的 问题。 源代码管理 — 浏览系统中向公众开放的所有部分。只有代 码提交者可以通过PMC指定的流程做出改变。 编译/测试 — 现在⼤多数项⽬都包含持续集成构建和测试流 程。 建⽴⽹站 — 每个项⽬都有⾃⼰独⽴的⽹址 https://project.apache.org 社区⻆⾊ 社区⻆⾊ ⽤户 — ⽤户是项⽬存在的意义,没有⽤户意味着项⽬不应0 码力 | 43 页 | 4.89 MB | 1 年前3
可发布版-美团点评微服务OCTO-曹继光美团点评微服务框架及治理系统:1?: 演进g路 曹继光 美团点评 资深技术a家 ��� �������������� W &0%(年加入美团,先后负责 服务框架及治理v系、性能 q化、S3?化等方向 W 经历h美团服务治理v系l0 到%,再到发展完善的各c阶 段 W 服务治理系统:1?:演进及架构设计 W 美团点评服务治理实践 W :1?:在SEPTIDE MEQh 青铜 Ø 基础能力达标 铂金 Ø 性能一流 Ø 足n支撑数百万订单量级b务 Ø 易用性q秀 服务治理演进各c阶段 服务治理实践(%):基础能力达标 - 青铜段t 监控报警 数据分析 • 性能指标 • 来源去向 • f机分析 • 数据报表 • 调用链路 • 节点监控 • 性能监控 • b务监控 • 异常监控 服务治理实践(3) +易用性 V 细粒度埋点监控 Client� Server� :1?:服务框架最大性能 • (核(4,%K数据包3DhM测试 • 原则:框架自身不造成应用瓶颈 服务治理实践(() +性能提升 - 铂金段t 系统化性能q化实践 V 一站式性能q化平台SDBJNEJ 流程化、自动化 零门槛、u成本 点击&次鼠标 6分钟出诊断报告 诊断对服务负面影响小,支持0 码力 | 35 页 | 14.10 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统• 更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github ,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:客户维护和订单是2个微服务,订单系统对性能有较高要求,所以可以考虑把购房资格信息从客户维护微服务同步到订单系统,改同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 背景:因为竞争的加剧,电商系统越来越复杂,无论电商系统的规模大小,微服务几乎是事实标准。 12306网站 15年 峰值 1032 单/s 11.7w PV 电商“抢购”“场景中企业中遇到的困难 1. 性能要求不断优化,和不能引入Bug之间的矛盾。 2. “变态”级别的高可用性要求。 3. 声誉和法律风险。 4. 抢购体验 à 商家的技术能力 à 产品质量。 [社区网站] http://servicecomb0 码力 | 15 页 | 1.46 MB | 1 年前3
共 36 条
- 1
- 2
- 3
- 4













