Java Chassis通信处理详解 - 通信优化实践Java Chassis通信处理详解 通信优化实践 议题 问题不挑战 整体线程模型 Consumer Producer 问题不挑战 消费者 编程 模型 透明 RPC Spring MVC Transport Highway Vertx REST Servlet REST 生产者 编程 模型 透明 丌同开发人员熟悉丌同的编程模型 3. RPC、REST的治理如何迚行 4. REST性能低 5. Reactive还是同步 ServiceComb的同步 仅仅是指编程模型上的同步,跟网络通信无关 因为所有场景下网络操作都是异步的 •Producer •Consumer 整体线程模型 Producer Consumer Eventloop 连接0 码力 | 17 页 | 2.22 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开发框架的开发和运维经验。热爱微0 码力 | 7 页 | 1.58 MB | 1 年前3
张波-虎牙直播在微服务改造中的实践Nacos默认提供权重设置功能,调整承载流量压 力 不支持 厂商 阿里巴巴 Netflix 服务注册发现对比 配置中心对比 对比项目/配置中心 apollo nacos 开源时间 2016.5 2018.6 配置实时推送 支持(HTTP长轮询1s内) 支持(HTTP长轮询1s内) 版本管理 自动管理 自动管理 配置回滚 支持 支持 权限管理 支持 待支持 多集群多环境 支持 支持 监听查询 支持 支持 Python,Java,Nodejs,OpenAPI 分布式高可用最小集群数量 Config2+Admin3+Portal*2+Mysql =8 Nacos*3+MySql=4 配置格式校验 支持 支持 通信协议 HTTP HTTP 数据一致性 数据库模拟消息队列,Apollo定时 读消息 HTTP异步通知 单机读(tps) 9000 15000 单机写(tps) 1100 1800 技术选型0 码力 | 27 页 | 1.03 MB | 1 年前3
微服务架构及ServiceComb实践:端口)---| c) 表的维护(心跳存活性检测) • SDK a) https://github.com/apache/servicecomb-java-chassis b) 和服务注册中心通信,共同维护表 • 网关 a) 对外提供固定地址,提供路由转发功能 b) 网关固定IP:端口/服务名/URL -> 服务动态IP:端口/URL (网关固定IP:端口/A服务名 =A服务动态IP:端口) https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:商品维护和 举例:商品维护和下订单是2个微服务,下订单系统对性能有较高要求,所以可以考虑把商品的价格从商品维护微服务同步到订单系统,该同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事务性消息发布(一次仅一次),分布式事务等 很易用的服务间saga事务方案Servicecomb-Pack: https://github.com/a0 码力 | 14 页 | 2.04 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统:端口)---| c) 表的维护(心跳存活性检测) • SDK a) https://github.com/apache/servicecomb-java-chassis b) 和服务注册中心通信,共同维护表 • 网关 a) 对外提供固定地址,提供路由转发功能 b) 网关固定IP:端口/服务名/URL -> 服务动态IP:端口/URL (网关固定IP:端口/A服务名 =A服务动态IP:端口) https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:客户维护和 举例:客户维护和订单是2个微服务,订单系统对性能有较高要求,所以可以考虑把购房资格信息从客户维护微服务同步到订单系统,改同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事务性消息发布(一次仅一次),分布式事务等 很易用的服务间saga事务方案Servicecomb ServicePack: https://github0 码力 | 15 页 | 1.46 MB | 1 年前3
微服务创新新品发布采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 分布式系统配置中心 服务中心异构通信 多语言运行环境 微服务鉴权 微服务契约工具 Apache ServiceComb 面对用户痛点持续创新 3 github.com/apache?q=servicecomb servicecomb 契约校验:一键校验实际代码的实现是否与约定契约一致性。 • 契约/代码生成文档:一键制作html文档。 5 github.com/apache?q=servicecomb servicecomb.apache.org 服务中心异构通信 Syncer pull&&push pull&&push pull&&push Micro service Micro service Micro service Service Center service-center/tree/master/syncer Syncer是一个多服务中心的同步工具,专为大型微服务架构设计,实现不同的微服务技术栈实现的微服务业务可以进行数 据通信,未来可支持跨云的数据通信支持。 •对应用程序透明。同步工具启停,不应该对应用程序的原有流程产生影响。 •为多服务中心提供对等网络。他们之间是松耦合的,成员可以自由加入与退出。 •对异构服务中心提供支持。插件化0 码力 | 12 页 | 2.96 MB | 1 年前3
ServiceComb在华为消费者云的亿级用户微服务实践线程 池 异步 I/O线 程池 NIO异步通信 微服务提供端 NIO异步通信 业务线程阻塞, 同步等待 唤醒等待的业务线程, 获取响应 1 2 微服务同步调用问题: 1、同步服务调用:业务线程将请求消息交给I/O线程之后, 无论I/O线程是同步还是异步发送请求消息,业务线程都会 同步阻塞,等待响应 2、异步I/O通信:I/O通信方式与服务调用方式没关联关 系,无论是同步服务调用还是异步服务调用,I/O通信都 系,无论是同步服务调用还是异步服务调用,I/O通信都 可以采用异步非阻塞模式 同步服务调用的几个缺点: 1、业务线程利用率低:线程资源是系统中比较重要的资源, 在一个进程中线程总数是有限制的。提升线程的使用率,就能 够有效提升系统的吞吐量。在同步服务调用中,如果服务端没 有返回响应,客户端业务线程就会一直阻塞(wait),傻等期 间,无法处理其它业务消息。 2、纠结的超时时间:服务的超时时间配置是个比较纠结的事0 码力 | 15 页 | 1.15 MB | 1 年前3
Apache ServiceComb 开源微服务社区com/apache/servicecomb-docs ServiceComb 社区子项目概览 Github入口:https://github.com/apache?q=servicecomb ServiceMesh 服务通信规范 配置 流行微服务框架 可视化监控 分布式追踪 遗留应用转型 全新微服务开发 开发工具 代码自 动生成 契约自 动提取 契约校验 文档自 动生成 微服务脚手架 快速入门 案例代码库 SpringMVC 编程模型 限流 负载均衡 分布式追踪 动态配置 服务注册 服务度量 通信模型 REST 边缘服务 熔断/容错 安全认证 分布式事务 标准契约管理 微服务脚手架 配置治理中心 POJO 编程模型 JAX-RS 编程模型 通信模型 RPC 插件式扩展 开箱即用 编程/通信模型分离 轻量级边缘服务 纯异步内核 内置监控治理 分布式事务方案 标准契约管理 复杂留给自己,极简留给用户 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 19 年Apache ServiceComb新品发布 面对用户痛点持续创新 财政业务应用 指导 规约 支撑 支撑 云平台 财政业务中台0 码力 | 15 页 | 2.86 MB | 1 年前3
反应式微服务框架ServiceComb设计思想&mdash商平台架构设计;曾就职于搜狐负责 手机微博的研发。《持续演进的Cloud Native》作者,微信公众号“奔跑中 的蜗牛”博主。 p为什么微服务框架需要 Reactive pServiceComb 的 I/O 通信模型演进 pServiceComb API⺴关Edge Service p实践案例 为什么微服务框架需要Reactive? • 微服务架构调用次数更多 • 更高的性能,规模效应 • 更好的用户体验 vs webflux ServiceComb 的通信模型演进 启动更多的线程 Why? Thread 2 Thread 1 Thread 4 Thread 3 进程1 Thread 2 Thread 1 Thread 4 Thread 3 进程2 核3 核1 核0 核2 集中到⼀个线程 ServiceComb 的通信模型演进—Reactor 黄金法则:不要阻塞Event 采用Reactive异步模式之后,TPS提升 43% 左右 时延降低 28% 左右,CPU占用降低 56% 左右 总结 n 根据业务场景选择,可同时使用; n 必须关注整个调用链路,不能只关注通信。 参考⽂献 • https://burrsutter.com/wp- content/uploads/2018/04/BS_020517_JFOKUS_Reactive-Microservices-with-0 码力 | 33 页 | 5.68 MB | 1 年前3
消费者云CSE微服务实践消费者云CSE微服务实践 李林锋 关于我 9年电信软件平台中间件开发、设计、架构经验 精通Netty、Mina等网络通信框架 华为软件 短信/彩信/WAP网关平台SGP、API开放集成网关API Fabric首席设计师 华为软件分布式服务框架DSF首席设计师 《Netty权威指南》、《分布式服务框架原理不实践》作者 微博、微信:Nettying 微服务框架技术选型-支持多语言 尽管现在以Java和GO语言为主,但是从架构演进角度考虑,未来 会根据消费者业务自身的特点引入更适合的语言 服务框架丌要绑定具体的语言实现,例如内部通信协议使用某种 语言特定的序列化机制、发布泛型、抽象接口等 微服务框架技术选型-灵活和轻量级架构 当前业务服务端都是非Web应用,所以丌需要运行在Web容器中, 需要类似Main函数可以直接拉起来的Standalone模式 无论是华为内部的DSF,还是开源的Netflix、Spring Cloud等,都无法完全满足业务的 选型诉求,而CSE则能够很好的满足我们的需求 仔细阅读了CSE的主要模块代码,包括网络通信、线程调度模型等,代码质量非常高, 对细节的把握比较好 选型试用时,大家对CSE的接受度比较高,使用CSE改造已有的Spring MVC代码相对较 容易些 华为内部的平台,无论是0 码力 | 22 页 | 1.39 MB | 1 年前3
共 31 条
- 1
- 2
- 3
- 4













