 支持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 支持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
 使用微服务架构快速开发万级TPS高可用电商系统• 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github ] https://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 使用微服务架构快速开发万级TPS高可用电商系统• 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github ] https://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
 ServiceComb java SDK详解https://gitter.im/ServiceCombUsers/Lobby AGENDA • 设计演进及架构 • 服务发现 • 微服务调用 • Edge Service • Metrics • 性能调优 设计演进-初始 Transport RPC Servlet Rest Consumer 透明RPC RestTemplate Producer 透明RPC JAX-RS SpringMVC 透明RPC RestTemplate Producer 透明RPC JAX-RS SpringMVC 以契约为核心,贯穿始终 • 开发模式(业务代码)、治理、传输三方解耦,互不感知 • 以高性能的Reactive为基础,同时兼容传统的同步开发模式,且支持传统的Servlet传输 LoadBalance …… QPS Trace …… QPS 架构 Common Swagger 以transport、调用结果两个维度进行分组,以operation为 单位输出tps、平均时延、最大时延、平均排队时间、最大排队 时间、业务逻辑平均执行时间、最大执行时间 TODO: cpu/mem/gc...... 性能调优 • 网络相关配置参数 – 系统参数比较保守,需要根据实际情况设置合适的参数 • Producer线程池 默认2个线程池,每个池中线程数等于cpu数 – 参考metrics统计结果 • cpu0 码力 | 21 页 | 1.15 MB | 1 年前3 ServiceComb java SDK详解https://gitter.im/ServiceCombUsers/Lobby AGENDA • 设计演进及架构 • 服务发现 • 微服务调用 • Edge Service • Metrics • 性能调优 设计演进-初始 Transport RPC Servlet Rest Consumer 透明RPC RestTemplate Producer 透明RPC JAX-RS SpringMVC 透明RPC RestTemplate Producer 透明RPC JAX-RS SpringMVC 以契约为核心,贯穿始终 • 开发模式(业务代码)、治理、传输三方解耦,互不感知 • 以高性能的Reactive为基础,同时兼容传统的同步开发模式,且支持传统的Servlet传输 LoadBalance …… QPS Trace …… QPS 架构 Common Swagger 以transport、调用结果两个维度进行分组,以operation为 单位输出tps、平均时延、最大时延、平均排队时间、最大排队 时间、业务逻辑平均执行时间、最大执行时间 TODO: cpu/mem/gc...... 性能调优 • 网络相关配置参数 – 系统参数比较保守,需要根据实际情况设置合适的参数 • Producer线程池 默认2个线程池,每个池中线程数等于cpu数 – 参考metrics统计结果 • cpu0 码力 | 21 页 | 1.15 MB | 1 年前3
 微服务架构及ServiceComb实践• 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github ] https://github ,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:商品维护和下订单是2个微服务,下订单系统对性能有较高要求,所以可以考虑把商品的价格从商品维护微服务同步到订单系统,该同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 背景:因为竞争的加剧,电商系统越来越复杂,无论电商系统的规模大小,微服务几乎是事实标准。 12306网站 15年 峰值 1032 单/s 11.7w PV 电商“抢购”“场景中企业中遇到的困难 1. 性能要求不断优化,和不能引入Bug之间的矛盾。 2. “变态”级别的高可用性要求。 3. 声誉和法律风险。 4. 抢购体验  商家的技术能力  产品质量。 [社区网站] http://servicecomb0 码力 | 14 页 | 2.04 MB | 1 年前3 微服务架构及ServiceComb实践• 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github ] https://github ,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:商品维护和下订单是2个微服务,下订单系统对性能有较高要求,所以可以考虑把商品的价格从商品维护微服务同步到订单系统,该同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 背景:因为竞争的加剧,电商系统越来越复杂,无论电商系统的规模大小,微服务几乎是事实标准。 12306网站 15年 峰值 1032 单/s 11.7w PV 电商“抢购”“场景中企业中遇到的困难 1. 性能要求不断优化,和不能引入Bug之间的矛盾。 2. “变态”级别的高可用性要求。 3. 声誉和法律风险。 4. 抢购体验  商家的技术能力  产品质量。 [社区网站] http://servicecomb0 码力 | 14 页 | 2.04 MB | 1 年前3
 反应式微服务框架ServiceComb设计思想&mdashpServiceComb 的 I/O 通信模型演进 pServiceComb API⺴关Edge Service p实践案例 为什么微服务框架需要Reactive? • 微服务架构调用次数更多 • 更高的性能,规模效应 • 更好的用户体验 业界趋势 n Java 9中把反应式流规范以 java.util.concurrent.Flow 类的方式添加到了标准库中 n Spring 5对反应式编程模型提供了内置支持,并增加了新的 测试代码:https://github.com/GuoYL123/ReactiveBenchmark 调优后的压测数据 n 寻找拐点 n 调整consumer/producer参数(网络线程/业务线程等),提升处理能力 n 重新调整测试驱动压力(加大或减小),重复前面步骤 n 输出最终性能拐点时的各项参数,包括TPS/时延/CPU/带宽等等 Spring Cloud Gateway VS Zuul EdgeService 3 Callback hell 实践案例—华为消费者云 异步场景1:降低长流程/复杂业务流程时延 异步场景2:CPU资源使用率低、性能要求高 异步场景3:需要配置较长超时时间的接口 异步场景4:多个微服务级联调用 性能对比测试: 采用Reactive异步模式之后,TPS提升 43% 左右 时延降低 28% 左右,CPU占用降低 56% 左右 总结 n 根据业务场景选择,可同时使用;0 码力 | 33 页 | 5.68 MB | 1 年前3 反应式微服务框架ServiceComb设计思想&mdashpServiceComb 的 I/O 通信模型演进 pServiceComb API⺴关Edge Service p实践案例 为什么微服务框架需要Reactive? • 微服务架构调用次数更多 • 更高的性能,规模效应 • 更好的用户体验 业界趋势 n Java 9中把反应式流规范以 java.util.concurrent.Flow 类的方式添加到了标准库中 n Spring 5对反应式编程模型提供了内置支持,并增加了新的 测试代码:https://github.com/GuoYL123/ReactiveBenchmark 调优后的压测数据 n 寻找拐点 n 调整consumer/producer参数(网络线程/业务线程等),提升处理能力 n 重新调整测试驱动压力(加大或减小),重复前面步骤 n 输出最终性能拐点时的各项参数,包括TPS/时延/CPU/带宽等等 Spring Cloud Gateway VS Zuul EdgeService 3 Callback hell 实践案例—华为消费者云 异步场景1:降低长流程/复杂业务流程时延 异步场景2:CPU资源使用率低、性能要求高 异步场景3:需要配置较长超时时间的接口 异步场景4:多个微服务级联调用 性能对比测试: 采用Reactive异步模式之后,TPS提升 43% 左右 时延降低 28% 左右,CPU占用降低 56% 左右 总结 n 根据业务场景选择,可同时使用;0 码力 | 33 页 | 5.68 MB | 1 年前3
 开源开发者的一天 - Apache ServiceCombcom/apache?q=servicecomb 项目名 项目简介 编程语言 servicecomb-java-chassis 开箱即用、高性能、融合流行生态的Java微服务开发套件,用户开发微服务的基础组件 Java servicecomb-service-center 高性能、高可用、无状态的分布式服务注册与发现中心,帮助用户管理微服务 Golang servicecomb-pack 分布式事务解决方 理成本高、拼接复杂和无法扩展问题 Golang servicecomb-toolkit 遵循OpenAPI的微服务开发工具,一键式生成微服务代码 Java servicecomb-fence 高性能、安全的微服务认证鉴权框架 Java servicecomb-samples 微服务应用案例集 Java servicecomb-docs Apache ServiceComb用户手册 CSS ServiceComb开发者训练营”,我们将与您一对一交流协作 欢迎关注公众号 微服务蜂巢 获取更多微服务技术干货、资讯文章 欢迎添加 ServiceComb小助手 加入微服务技术交流群,架构、设计、开 发、解BUG、调优,共同成长0 码力 | 31 页 | 2.02 MB | 1 年前3 开源开发者的一天 - Apache ServiceCombcom/apache?q=servicecomb 项目名 项目简介 编程语言 servicecomb-java-chassis 开箱即用、高性能、融合流行生态的Java微服务开发套件,用户开发微服务的基础组件 Java servicecomb-service-center 高性能、高可用、无状态的分布式服务注册与发现中心,帮助用户管理微服务 Golang servicecomb-pack 分布式事务解决方 理成本高、拼接复杂和无法扩展问题 Golang servicecomb-toolkit 遵循OpenAPI的微服务开发工具,一键式生成微服务代码 Java servicecomb-fence 高性能、安全的微服务认证鉴权框架 Java servicecomb-samples 微服务应用案例集 Java servicecomb-docs Apache ServiceComb用户手册 CSS ServiceComb开发者训练营”,我们将与您一对一交流协作 欢迎关注公众号 微服务蜂巢 获取更多微服务技术干货、资讯文章 欢迎添加 ServiceComb小助手 加入微服务技术交流群,架构、设计、开 发、解BUG、调优,共同成长0 码力 | 31 页 | 2.02 MB | 1 年前3
 Service Mesh在华为公
有云的实践• ⽆无需多种语⾔言的微服务框架开发 • 对业务代码0侵⼊入 • 不适合改造的单体应⽤用 • 开发出开的应⽤用既是云原⽣生的⼜又具有独⽴立性 没有银弹 • 新的故障点 • ⼀一定程度的性能降低 • 侵⼊入式框架有更强的定制和扩展能⼒力 • 部署复杂性 • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • Zipkin Huawei APM Prometheus Grafana Physical Kubernetes Design Goal • 尽可能提供定制化 • 减少对业务影响 • ⾼高性能 • 使服务可视化 • 使服务更具弹性 Data Plane 即Mesher组件本⾝身,对所有请求进⾏行处 理 • 注册发现服务 • 执⾏行路由策略 • 负载均衡 • 透明TLS传输 Center Scheduler 调⽤用场景1 • 透明TLS传输能⼒力,⽤用户可托管⾃自⼰己的证书 • 提供者可获得服务端限流能⼒力和处理链功能 ServiceA Mesher Mesher ServiceB https://10.100.2.3:30101 http://127.0.0.1:8080 http://127.0.0.1:30101 调⽤用场景2 • 消费者与Mesher⼀一起部署0 码力 | 52 页 | 4.37 MB | 1 年前3 Service Mesh在华为公
有云的实践• ⽆无需多种语⾔言的微服务框架开发 • 对业务代码0侵⼊入 • 不适合改造的单体应⽤用 • 开发出开的应⽤用既是云原⽣生的⼜又具有独⽴立性 没有银弹 • 新的故障点 • ⼀一定程度的性能降低 • 侵⼊入式框架有更强的定制和扩展能⼒力 • 部署复杂性 • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • Zipkin Huawei APM Prometheus Grafana Physical Kubernetes Design Goal • 尽可能提供定制化 • 减少对业务影响 • ⾼高性能 • 使服务可视化 • 使服务更具弹性 Data Plane 即Mesher组件本⾝身,对所有请求进⾏行处 理 • 注册发现服务 • 执⾏行路由策略 • 负载均衡 • 透明TLS传输 Center Scheduler 调⽤用场景1 • 透明TLS传输能⼒力,⽤用户可托管⾃自⼰己的证书 • 提供者可获得服务端限流能⼒力和处理链功能 ServiceA Mesher Mesher ServiceB https://10.100.2.3:30101 http://127.0.0.1:8080 http://127.0.0.1:30101 调⽤用场景2 • 消费者与Mesher⼀一起部署0 码力 | 52 页 | 4.37 MB | 1 年前3
 走进开源 - Apache ServiceComb备注“贡献代码”,我们将与您一对一交流协作 欢迎关注 微服务蜂巢公众号 获取更多微服务技术干货、资讯文章 欢迎添加 ServiceComb小助手 加入微服务技术交流群,架构、设计、开 发、解BUG、调优,总有您感兴趣的话题0 码力 | 28 页 | 1.92 MB | 1 年前3 走进开源 - Apache ServiceComb备注“贡献代码”,我们将与您一对一交流协作 欢迎关注 微服务蜂巢公众号 获取更多微服务技术干货、资讯文章 欢迎添加 ServiceComb小助手 加入微服务技术交流群,架构、设计、开 发、解BUG、调优,总有您感兴趣的话题0 码力 | 28 页 | 1.92 MB | 1 年前3
 ServiceComb介绍ServiceComb项⽬目介绍 • Java Chassis • ⾼高性能的微服务框架,提供服务注册发现以及动态配置管理理,以及限流降级,容错熔 断等服务治理理功能 • Service Center • 基于Etcd⾼高性能,⾼高可⽤用服务注册中⼼心 • Saga • 微服务事务最终⼀一致性问题解决⽅方案 • 提供⼀一个集中式的事务协调器器,协调微服务之间的事务调⽤用,保证事务最终⼀一致性 https://github 基于Vertx提供的异步内核 • 保持⾼高性能的同时⽀支持同步调⽤用⽅方式 • 将通信线程与业务处理理线程分离 • 操作级别线程池控制,⽀支持隔离仓 • ⽀支持多种异步编程接⼝口 • CompletableFuture • RxJava • Reactive Stream • ……. Process Event-Loop Process R R W W 线 程 池 分布式服务调⽤用追踪 • ⽀支持标准的分布式调⽤用追踪Zipkin ⽀支持标准的分布式调⽤用追踪Zipkin V1,V2 • ⽀支持通过@span扩展⾃自定义调⽤用追踪 ServiceComb发展路路线图 http://www.aleanjourney.com/2016/05/5-steps-for-creating-lean-roadmap.html ServiceComb历史版本 Service Center Java Chassis 0.1.0 正式开源版本0 码力 | 16 页 | 877.58 KB | 1 年前3 ServiceComb介绍ServiceComb项⽬目介绍 • Java Chassis • ⾼高性能的微服务框架,提供服务注册发现以及动态配置管理理,以及限流降级,容错熔 断等服务治理理功能 • Service Center • 基于Etcd⾼高性能,⾼高可⽤用服务注册中⼼心 • Saga • 微服务事务最终⼀一致性问题解决⽅方案 • 提供⼀一个集中式的事务协调器器,协调微服务之间的事务调⽤用,保证事务最终⼀一致性 https://github 基于Vertx提供的异步内核 • 保持⾼高性能的同时⽀支持同步调⽤用⽅方式 • 将通信线程与业务处理理线程分离 • 操作级别线程池控制,⽀支持隔离仓 • ⽀支持多种异步编程接⼝口 • CompletableFuture • RxJava • Reactive Stream • ……. Process Event-Loop Process R R W W 线 程 池 分布式服务调⽤用追踪 • ⽀支持标准的分布式调⽤用追踪Zipkin ⽀支持标准的分布式调⽤用追踪Zipkin V1,V2 • ⽀支持通过@span扩展⾃自定义调⽤用追踪 ServiceComb发展路路线图 http://www.aleanjourney.com/2016/05/5-steps-for-creating-lean-roadmap.html ServiceComb历史版本 Service Center Java Chassis 0.1.0 正式开源版本0 码力 | 16 页 | 877.58 KB | 1 年前3
 ServiceComb 的前世今生旧版本持续运行 Speed & Safety 面临的问题 • 企业应用和互联网应用的不同? • 如何做到不同ISV的应用互联互通统一管理? • 怎么才能加快微服务的开发? • 微服务化后如何保证性能? • 如何进行统一的路由控制? 企业应用和集成 Java 注册中心、治理中心 Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 JAXRS 性能保证 Process Event-Loop Process R R W W 线 程 池 •异步 • 标准、开放、协议健壮性 • 开发框架的性能在于细节,而不仅仅 是协议。 更细致的服务路由管控 ETCD 集群 服务中 心实例 服务中 心实例 服务中 心实例 • 统一的路由策略管控 • 缓存以提升性能 •支持pull/push两种模式监控实例变化 微服务治理 微服务部署平台(PaaS) 微服务开发 微服务基础治理 微服务高级治理 服 务 发 现 服 务 配 置 服 务 路 由 多 通 信 访 问 调 用 链 跟 踪 多 事 务 管 理 多 运 行 时 管 理 ServiceMesh 容 错 & 熔 断 限 流 降 级 服 务 隔 离 容0 码力 | 16 页 | 1.45 MB | 1 年前3 ServiceComb 的前世今生旧版本持续运行 Speed & Safety 面临的问题 • 企业应用和互联网应用的不同? • 如何做到不同ISV的应用互联互通统一管理? • 怎么才能加快微服务的开发? • 微服务化后如何保证性能? • 如何进行统一的路由控制? 企业应用和集成 Java 注册中心、治理中心 Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 JAXRS 性能保证 Process Event-Loop Process R R W W 线 程 池 •异步 • 标准、开放、协议健壮性 • 开发框架的性能在于细节,而不仅仅 是协议。 更细致的服务路由管控 ETCD 集群 服务中 心实例 服务中 心实例 服务中 心实例 • 统一的路由策略管控 • 缓存以提升性能 •支持pull/push两种模式监控实例变化 微服务治理 微服务部署平台(PaaS) 微服务开发 微服务基础治理 微服务高级治理 服 务 发 现 服 务 配 置 服 务 路 由 多 通 信 访 问 调 用 链 跟 踪 多 事 务 管 理 多 运 行 时 管 理 ServiceMesh 容 错 & 熔 断 限 流 降 级 服 务 隔 离 容0 码力 | 16 页 | 1.45 MB | 1 年前3
共 36 条
- 1
- 2
- 3
- 4













