Apache ServiceComb 开源微服务社区
由会员提名并投票选 拔 由会员提名并投票选 拔 拥有权利 提交issues 及patch 有代码库读写 权限 决策子项目需 求和方向 负责整体孵化项目决 策及投票 提议Committer候选 人及孵化器候选项目 管理与监督基金会商 务与日常事务 IPMC Apache软件基金会 LC3大会 正式开源 2017.06 2017.11 2018.10 捐赠给Apache 进入孵化器 成为Apache 微服务契约开发工具:https://github.com/apache/servicecomb-toolkit 案例集:https://github.com/apache/servicecomb-samples 配置中心:https://github.com/apache/servicecomb-kie 微服务鉴权框架:https://github.com/apache/servicecomb-fence ServiceMesh 服务通信规范 配置 流行微服务框架 可视化监控 分布式追踪 遗留应用转型 全新微服务开发 开发工具 代码自 动生成 契约自 动提取 契约校验 文档自 动生成 微服务脚手架 快速入门 案例代码库 用户手册 社区网站 开源异构微服务兼容 内核 服务中心 微服务开发框架 TCC&Saga 分布式事务框架 认证框架 配置中心 多语言方案 Rest(OpenAPI)0 码力 | 15 页 | 2.86 MB | 1 年前3开源开发者的一天 - Apache ServiceComb
票选拔 由会员提名并投票 选拔 拥有权利 提交issues 及patch 有代码库读 写权限 决策子项目 需求和方向 负责整体孵化项 目决策及投票 提议Committer 候选人及孵化器 候选项目 管理与监督基金会 商务与日常事务 • 注册在美国的非盈利组织 • 提供法律和基础设施的支持 • 完全的自愿组织,虚拟的全球化组织 • 有7000+ committers, 760+ member Java servicecomb-mesher 生产级的Service Mesh sidecar实现,帮助用户领侵入业务代码实现微服务化 Golang servicecomb-kie 语义型的配置中心,解决常规配置中心的语义学习成本高、管理成本高、拼接复杂和无法扩展问题 Golang servicecomb-toolkit 遵循OpenAPI的微服务开发工具,一键式生成微服务代码 Java servicecomb-fence0 码力 | 31 页 | 2.02 MB | 1 年前3走进开源 - Apache ServiceComb
票选拔 由会员提名并投票 选拔 拥有权利 提交issues 及patch 有代码库读 写权限 决策子项目 需求和方向 负责整体孵化项 目决策及投票 提议Committer 候选人及孵化器 候选项目 管理与监督基金会 商务与日常事务 • 涉猎领域 人工智能AI IoT 大数据 金融管理 区块链 …… • 未涉猎领域 机器人 自动驾驶 0 码力 | 28 页 | 1.92 MB | 1 年前3张波-虎牙直播在微服务改造中的实践
能 力 异 常 摘 除 能 力 dmx dns-f app nacos M S write read DNS-F在数据库场景的落地 背景 在数据库服务切换时效率低,依赖 业务方修改配置,时效不确定,通 常需要10分钟以上; 目标 数据库切换秒级生效; 技术特点-DNS-F M S S S M1.mysql S1.mysql S2.mysql S3.mysql if 负载均衡变更需要更新配置发布后 才能生效,节点扩缩容,屏蔽操作 需要人工参与,流量接入接出时间 长 目标 流量接入接出时长低于30秒 负载均衡配置下发无状态改造 虎牙负载均衡部署的机器数百,配置下发的可靠性保障,一致性保障要求特别严格, 如果出现配置下发不及时,或下发配置失败,极大可能出现故障,同时负载均衡服 务弹性能力的要求较高,在业务高峰如果不能快速扩容,容易出现全网故障 传统配置下发方式 负载均衡配置固话在配置文件中, 负载均衡配置固话在配置文件中, 节点操作需要人工上系统操作增减 节点 配置中心监听方式 客户端主动监听配置更新,配置秒 级生效,新扩容服务主动拉取全量 配置,流量接入时长缩短3分钟+ 配置名字服务 配置IP方式 服务端下发文件更新配置,更新配 置生效时间长,由于需要预先知道 负责均衡集群的机器信息,扩缩容 需要等元信息同步以后才能接入流 量,扩容流量接入时间长 负载均衡节点对接名字服务0 码力 | 27 页 | 1.03 MB | 1 年前3微服务创新新品发布
使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 分布式系统配置中心 服务中心异构通信 多语言运行环境 微服务鉴权 微服务契约工具 Apache ServiceComb 面对用户痛点持续创新 3 github.com/apache?q=servicecomb gossip 协议 6 github.com/apache?q=servicecomb servicecomb.apache.org 实现云原生的分布式系统配置中心,使能运维人员通过易于理解的数据和入口,管理复杂的分布式系统配置。 https://github.com/apache/servicecomb-kie Timeout(service=serviceB, schema=user -在这样的数据格式设计下可生成多角度的配置视图,提升易用性,人类可读性 假如说我们要定义A到B以及到某个API的超时时间 -学习成本高,运维人员要学习这个只在团队内部生效的key规则 -所有的key集中在一种类型的视图中管理,管理成本高。 -不断增长的规则定义,越来越复杂,人类不可读。 -Key设计无法扩展变更,没法轻易变更数据结构 分布式系统配置中心 7 github.com/apache0 码力 | 12 页 | 2.96 MB | 1 年前3微服务的设计原则与⽣态系统 - 王磊
IaaS 微 服 务 开 发 框 架 ⼯工 程 实 践 与 规 范 持 续 交 付 流 ⽔水 线 端 到 端 的 ⼯工 具 链 注册发现 监控 调⽤用链 路路由 授权认证 ⽇日志聚合 容错 集中配置 基础设施 业务层 - 聚合服务 - 基础服务 接⼊入层 • 流量量限制 • 调⽤用统计 • 安全认证 • 提供统⼀一接⼝口,封装内部变化 • 协议转换 API⽹网关 IaaS 微 服 务 开 发 框 架 ⼯工 程 实 践 与 规 范 持 续 交 付 流 ⽔水 线 端 到 端 的 ⼯工 具 链 注册发现 监控 调⽤用链 路路由 授权认证 ⽇日志聚合 熔断 集中配置 基础设施 接⼊入层 业务层 - 聚合服务 - 基础服务 • ⾯面向对象设计(名词/动词) • 可重⽤用的逻辑 • 资源密集型部分 • 领域驱动设计 • 数据访问⽅方式 授权认证 ⽇日志聚合 容错 集中配置 基础设施 接⼊入层 业务层 - 聚合服务 - 基础服务 注册发现 为什什么要注册发现 • 服务重启/升级后的IP地址变化 • ⽔水平伸缩后服务的实例例数量量变化 • 同⼀一个结点运⾏行行多个服务(端⼝口不不同) 集中配置管理理 配置信息的管理理 50 • 与服务在同⼀一个包中 • 使⽤用隔离的配置⽂文件 • 使⽤用环境变量量管理理0 码力 | 62 页 | 6.65 MB | 1 年前3Apache ServiceComb 微服务创新项目解读
方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 Apache ServiceComb [Website] http://servicecomb.apache.org [Github ] https://github 开箱即用:提供了默认的Authentication Server、Edge Service、Resource Server实现,简化用户开发难度 • 开发简单:提供配置文件和Annotation两种方式配置权限,支持权限配置和代码逻辑分离,也支持在使用Annotation声明式 的权限配置,相辅相成。 • 第三方认证支持:采用Open ID协议,对接Github等三方认证系统。 • 安全高效:混合Token模式和Sess http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 实现云原生的分布式系统配置中心,使能运维人员通过易于理解的数据和入口,管理复杂的分布式系统配置 • 项目地址:https://github.com/apache/servicecomb-kie Timeout(service=serviceB, schema=user0 码力 | 13 页 | 1.24 MB | 1 年前3ServiceComb在华为消费者云的亿级用户微服务实践
Thrift ServiceComb Java语言: Dubbo Motan LB 内置LB: 客户端负载均 衡 外置LB: Nginx、 Ribbon SLB 注册中心 配置服务: Zookeeper etcd 缓存方案: Redis 数据库方案: DB + MQ 服务治理 服务治理: 超时、流控、 降级等 运维KPI: ELK Zabbix 有返回响应,客户端业务线程就会一直阻塞(wait),傻等期 间,无法处理其它业务消息。 2、纠结的超时时间:服务的超时时间配置是个比较纠结的事 情,如果超时时间配置过大,如果响应慢,会导致线程被长时 间挂住;如果配置过小,则会导致超时增多,成功率降低。 3、雪崩效应:假如超时时间配置较大(例如3S),服务端响 应的平均时延达到了超时时间阈值,会导致业务线程长时间处 于wait状态,工作效率降低,业务堆积,发生级联的雪崩效应。 隔离仓-2 配置隔离仓: 通过配置线程池隔离仓,实现快 慢接口、读写接口、核心和非核 心接口、管理和业务接口的调度 隔离,提升微服务可靠性 实践-轻量化 Website: http://servicecomb.incubator.apache.org/ Gitter: https://gitter.im/ServiceCombUsers/Lobby 业务按需配置Service0 码力 | 15 页 | 1.15 MB | 1 年前3使用微服务架构快速开发万级TPS高可用电商系统
apache.org [Github ] https://github.com/apache?q=servicecomb 微服务的其他组件 • 配置中心 a) 集中配置 b) 动态配置 c) 配置历史保留 d) 配置回滚 社区召集! e) 灰度发布配置 社区召集! • 认证鉴权 a) 认证 b) 鉴权 • Toolkit a) 契约 b) 脚手架 https://github.com/apache https://github.com/apache?q=servicecomb 步骤2 优化 先关注数据层的优化 1. 锁资格 - (锁库存-下订单) CP MySQL-MGR 高带宽 NvmeSSD-持久化配置 索引-加 锁 update-where 2. 库存缓存 AP Codis 3. 收藏数据 AP Codis 用户发请 求查库存 里列表 读缓存的 库存的列 表返回 用户对有库存 的房子发起下 微服务层的优化 1. SeviceComb优异的异步通讯模型,REST over Vertx。 2. 透明RPC模式+CompletableFuture。把异步继续进行。 3. 低超时+重试策略配置。“ 高可用”的定义?A跟a 的区别 à 客户端无异常。 4. Zuul VS edge-service(完胜)。 100并发 vs 20000 并发。 5. 生产环境需从最外层开始设置限流策略,并设置降级机制。0 码力 | 15 页 | 1.46 MB | 1 年前3ServiceComb java SDK详解
根据url选择合适的版本组 • AZ亲和性 • 根据传输通道分组 • 根据实际调用统计,隔离暂时不可用的调用目标 • 开发人员通过SPI扩展过滤功能 2.以过滤得到的Endpoint集合作为输入,根据配置的策 略进行LoadBalance: • 轮询、响应时间权重、随机 • 基于Netflix ribbon,开发人员可以根据需要自 定义IRule的实现 instances VersionRule .....}/pa th 则可以配置为 servicecomb: http: dispatcher: edge: default: enabled: true prefix: rest withVersion: true prefixSegmentCount: 1 如果内部微服务URL规则为: /{v1/v2/......}/path 则可以配置为 servicecomb: http: default: enabled: true prefix: rest withVersion: true prefixSegmentCount: 2 如果内部微服务URL规则为: /path 则可以配置为 servicecomb: http: dispatcher: edge: default: enabled: true prefix: rest withVersion: true prefixSegmentCount:0 码力 | 21 页 | 1.15 MB | 1 年前3
共 33 条
- 1
- 2
- 3
- 4