ServiceComb 介绍企业业务逻辑复杂,如何进行跨团队协同开发? • 大量老旧系统代码,如何支持其服务化改造? • 云化应用面临的监控已经分布调用追踪问题? 企业应用微服务开发面临的问题 ServiceComb 为什么需要服务契约 • 作为服务消费者 • 需要明确知道如何调用服务? • 需要知道服务调用参数有哪些? • 需要知道传输的内容是什么? • 作为服务提供方 • 提供详细描述的文档很难 文档 接口 文档 生成 生成 • 面向接口契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同步 • 通过工具简化整个过程 API First & Code First 服务契约定义 注册中心、治理中心 SpringMVC JAXRS 支持多种Rest服务实现方式 Process 池 • 框架以事件驱劢为基础 • 异步操作提升应用处理效率 • 支持Restful以及RPC 异步事件操作保证系统性能 分布式调用追踪 • 支持标准追踪协议 • Zipkin • 支持@span扩展事务追踪 • 提供调用追踪扩展 • 可以配置自定义的追踪处理器 • 支持适配自定义追踪格式 http://github.com/ServiceComb ServiceComb代码库信息0 码力 | 16 页 | 1.26 MB | 1 年前3
ServiceComb 的前世今生代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同 步成为必须 • 通过工具简化整个过程 API First 增速微服务开发 --- 工具支持 OpenAPI (Swagger)0 码力 | 16 页 | 1.45 MB | 1 年前3
微服务创新新品发布mb/SpringCloud的微服务工程。 • 代码提取契约:一键从基于SpringMVC/POJO/JAX-RS编程模型开发代码提取OpenAPI契约。 • 契约校验:一键校验实际代码的实现是否与约定契约一致性。 • 契约/代码生成文档:一键制作html文档。 5 github.com/apache?q=servicecomb servicecomb.apache.org 服务中心异构通信0 码力 | 12 页 | 2.96 MB | 1 年前3
ServiceComb在华为消费者云的亿级用户微服务实践开发方式:支持透明RPC、Spring MVC风格的微服务开发 编程模型:同时支持同步、异步的编程模型 性能:支持原生的Reactive模式(EventLoop),相比于传 统的同步服务调用,性能更高(吞吐量N倍+提升、时延降低 为原来的50%-) 轻量级、易集成:可以方便的与Spring MVC、Tomcat等 已有技术和容器集成,支持轻量级的standalone部署 Zookeeper etcd 缓存方案: Redis 数据库方案: DB + MQ 服务治理 服务治理: 超时、流控、 降级等 运维KPI: ELK Zabbix 调用链: zipkin 选择ServiceComb的原因: 实践- API First Website: http://servicecomb.incubator.apache.org/ Gitter: im/ServiceCombUsers/Lobby 不一刀切,根据业务实际需要选择同步或者异步微服务调用 微服务消费端 业务 线程 池 异步 I/O线 程池 NIO异步通信 微服务提供端 NIO异步通信 业务线程阻塞, 同步等待 唤醒等待的业务线程, 获取响应 1 2 微服务同步调用问题: 1、同步服务调用:业务线程将请求消息交给I/O线程之后, 无论I/O线程是同步还是异步发送请求消息,业务线程都会0 码力 | 15 页 | 1.15 MB | 1 年前3
ServiceComb java SDK详解incubator.apache.org/ gitter: https://gitter.im/ServiceCombUsers/Lobby AGENDA • 设计演进及架构 • 服务发现 • 微服务调用 • Edge Service • Metrics • 性能调优 设计演进-初始 Transport RPC Servlet Rest Consumer 透明RPC RestTemplate service场景下,对于同一个目 标微服务,存在多个版本分组 • 兼容分组内,新版本功能集合大于旧版本,自动 根据url选择合适的版本组 • AZ亲和性 • 根据传输通道分组 • 根据实际调用统计,隔离暂时不可用的调用目标 • 开发人员通过SPI扩展过滤功能 2.以过滤得到的Endpoint集合作为输入,根据配置的策 略进行LoadBalance: • 轮询、响应时间权重、随机 • 基于Netflix endpoints endpoints ...... endpoints endpoints endpoints Endpoint RESTful Highway All ...... 微服务调用-consumer 透明RPC: 同步、异步声明,可以分开进行,也可以在同一个接口中声明 interface Schema { String hello(String name); } interface0 码力 | 21 页 | 1.15 MB | 1 年前3
ServiceComb雄关漫道断等服务治理功能 • Service Center • 基于Etcd高性能,高可用服务注册中心 • Saga • 微服务事务最终一致性问题解决方案 • 提供一个集中式的事务协调器,协调微服务之间的事务调用,保证事务最终一致性 https://github.com/apache?q=incubator-servicecomb ServiceComb Java Chassis的架构图 通信模型 (序列化、 保持高性能的同时支持同步调用方式 • 将通信线程与业务处理线程分离 • 操作级别线程池控制,支持隔离仓 • 支持多种异步编程接口 • CompletableFuture • RxJava • Reactive Stream • ……. Process Event-Loop Process R R W W 线 程 池 分布式服务调用追踪 • 支持标准的分布式调用追踪Zipkin V1 V1,V2 • 支持通过@span扩展自定义调用追踪 分布式事务一致性问题 A B C commit rollback 分布式事务一致性问题 A B C Saga分布式事务一致性解决方案 Saga Coordinator Saga Saga Saga ID: x Saga Log Saga Started T1 Started T1 Ended T2 Started Transaction0 码力 | 20 页 | 4.00 MB | 1 年前3
消费者云CSE微服务实践First:通过服务化,让服务提供者和消费者乊间通过微服务API建立契约,利 用Swagger OpenAPI规范,最终将微服务API规范化、标准化、在线化。系统从传统单体 应用的黑盒调用(本地Java方法调用)转变成透明的API契约调用 服务自治:通过在线的微服务治理结合云平台,可以实现微服务的弹性伸缩、故障自劢 迁移、降级熔断等,保障微服务的运行质量,提升业务SLA 建立服务化团队:随着 有些业务场景对微服务调用安全要求较高,需要微服务框架支持 SSL传输、API鉴权和认证等 对于一些敏感信息,例如用户账号、金额等,在记录日志等落盘 和采集时需要做脱敏处理、资源占用要合理 敏感运维操作,需要记录安全日志,例如服务上线和下线、服务 的流控阈值修改等 微服务框架技术选型-服务治理能力 服务框架丌能只单单解决分布式RPC调用、服务注册&发现和路 由 服务中心、配置中心无状态集群,宕机丌影响已有业务 支持服务级故障隔离 支持多链路和链路级故障隔离 支持服务熔断和降级,以及第三方故障隔离(集成Hystrix) CSE在消费者云业务的实践-服务调用高性能 CSE的高性能设计: 提供Rest和Highway RPC两种通信协议,满足 丌同业务场景 高性能的Rest:集成Vertx,底层基于Netty,性 能比传统Servlet0 码力 | 22 页 | 1.39 MB | 1 年前3
杨钦民-唯品会微服务架构演进之路v0.2�� ������ Venus��—���������� ����� ������� �� ���� ���� OSP���� �������� ������� ��� 142服务化远程调用机制 ���� ����� ���� ����� �� ��SDK ����� ���� ���� �� �� ����� ���� ���� 2AgeoF中央告警平台无缝集成 指标统计 调用链跟踪 ü 域T主机T服务A2I级别指标 展示 ü 每秒请求数 ü 响应时间 ü 请求失败率(4NN/5NN/osH faADed ü 异常发生率 ü 43L性能指标 ü 拓扑s赖关系和性能指标 ü 调用链检索Q通过W务关键字) ü 慢调用查询 ü 失败调用查询Q4NNT5NN) ü 调用链详情展示 监控告警0 码力 | 43 页 | 3.89 MB | 1 年前3
华为微服务框架ServiceComb2018 Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 服务契约 • 作为服务消费者 • 需要明确如何调用服务 • 需要明确服务调用参数有哪些 • 需要知道传输的内容是什么 • 作为服务的提供方 • 提供详细的描述文档很困难 • 提供和维护标准的SDK也很难 • 提供用户支持也丌太方便 2018 Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 异步性能支持 • 基于Vertx提供的异步内核 • 保持高性能的同时支持同步调用方式 • 将通信线程不业务处理线程分离 • 操作级别线程池控制,支持隔离仓 • 支持多种异步编程接口 • CompletableFuture • RxJava • Reactive Stream Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 分布式追踪 • 支持标准的分布式调用追踪Zipkin V1,V2 • 支持通过@span扩展自定义追踪 • 通过调用链支持自定义追踪扩展 2018 Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践0 码力 | 28 页 | 1.53 MB | 1 年前3
Service Mesh的思考及在华为云的实践ServiceA Mesher ServiceB Control plane 可人工介入,未运行时 的mesher和侵入式框架 提供配置下发 • 注册中心 • 下发配置 • 监控服务 • 调用引擎 6/30/2018 Mesher Mesher Mesher Mesher Service Center Console LB Route Rule Circuit Breaker 为应用容器设置环境变量http_proxy • 为mesher设置CSE地址(注册中心, 配置中心) • 为mesher对接APM 日志收集 • 为mesher对接APM metrics收集 • 为mesher 对接APM 调用链追踪 • 告知mesher业务服务的版本以及监控 端口 性能损耗 使用前 使用后 TPS 26000 6300 Latency 0.76ms 3.3ms CPU 100% 130% Concurrency 将服务提供者地址写在配置文件中,在本地里信息是http://x.x.x.x:port, 进行开发调试,上云后 需要与Mesher使用时,改为http://ServiceName • 服务调用层级不要超过3层 • 若调用层级超过2层,业务代码想要用上调用链追踪需要将TraceID转发 • 想要根据某些业务数据进行路由的话,将数据放在请求的header当中 • 业务开发期不要上云后就打开容错功能,容错会掩盖业务问题0 码力 | 29 页 | 1.55 MB | 1 年前3
共 27 条
- 1
- 2
- 3













