Service Mesh在华为公
有云的实践cookie:version=0.2 Consumer 0.2 Chassis 语⾔言开发框架 Go-micro Go-kit 还有其他解题思路么? • 多语⾔言SDK⽀支持 • 学习曲线 • 绑定特定技术栈,不容易切换⽅方案 • ⽼老旧单体应⽤用 抽象 L7 SpringMVC,VertX,beego L6 Json, Protobuf, XML L5 Http 1/2 • 与微服务部署在⼀一个Pod • 占⽤用资源很⾼高 Mesher • Service Mesh的⼀一种实现 • 基于⾃自研的Go语⾔言微服务框架(即将开源)开发 • 使⽤用CSE注册中⼼心与配置中⼼心 • 以Sidecar的⽅方式部署在微服务所运⾏行的环境中,也可以 PerHost模式运⾏行 • ⽀支持多种部署⽅方式 • 占⽤用资源⼩小(闲置10多M,并发运⾏行时30多M) ServiceMesh? 为什么要开发Mesher • Istio的性能问题 • Istio强绑定Kubernetes平台(1.7.4+) • 从成本⾓角度讲Linkerd并不适合做SideCar部署,JVM资源占⽤用较多 • 在ServiceComb和CSE中的积累 • 最⼤大优势,侵⼊入式与⾮非侵⼊入式的⽆无缝结合,混编,统⼀一的产品体验。 开源 • Service Center https://github0 码力 | 52 页 | 4.37 MB | 1 年前3
ServiceComb 的前世今生Go protobuf对象 编辑 生成 生成 生成 提取 转换 生成 Restful Rpc IDE插件支持(Maven插件) 增速微服务开发 --- 降低学习门槛 SpringMVC JAXRS 性能保证 Process Event-Loop Process R R W W 线 程 池 •异步 • 标准、开放、协议健壮性 测 微 服 务 安 全 工具链生态 契约开发 工具 代码自动 生成 文档自动 生成 自动测试 工具 本地远程 调试 微服务 流水线 资源管理 容器编排 & 调 度 应用管理 弹性伸缩 灰度发布 监控运维APM Go语言 XXX语言 Java语言 服务契约 & OpenAPI SpringMVC JAX-RS0 码力 | 16 页 | 1.45 MB | 1 年前3
开源开发者的一天 - Apache ServiceCombhttp://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 一种思想运动 用户可以自由地运行,拷贝,分 发,学习,修改并改进该软件 一旦在该软件基础上修改,则必 须保证修改后的软件也“自由” 开源发展第一阶段 [社区网站] http://servicecomb.apache.org [Github ] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 加入开源项目能收获什么 • 自身技能提升 可以学习到平时书本里学不到的东西 可以帮助我解决工作中的实际问题 • 视野/人际关系拓展 可以和一群志同道合的人一起成长 可以让我和世界级的开发者一起工作 • 个人品牌建立 可以使我的工作会被更多人看到 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 完善开源软件文档 • 文档是学习开源软件基础 • 从示例代码入手 • 代码是最详细的文档 • 在发现开源软件文档不全的 时候自己动手帮助完善 • 学会使用邮件列表 https://github.com/apache/s0 码力 | 31 页 | 2.02 MB | 1 年前3
微服务创新新品发布com/apache/servicecomb-toolkit ServiceComb toolkit 提供契约、代码、文档相互转换和校验的能力,帮助用户快速构建基于流行微服务框架和编程模型 的微服务工程,降低微服务学习成本,使能用户聚焦业务开发,提升遗留系统重构、开发效率。 • 契约生成微服务工程:一键生成基于ServiceComb/SpringCloud的微服务工程。 • 代码提取契约:一键从基于Spring ServiceB.user.getUser.timeout=10s -在这样的数据格式设计下可生成多角度的配置视图,提升易用性,人类可读性 假如说我们要定义A到B以及到某个API的超时时间 -学习成本高,运维人员要学习这个只在团队内部生效的key规则 -所有的key集中在一种类型的视图中管理,管理成本高。 -不断增长的规则定义,越来越复杂,人类不可读。 -Key设计无法扩展变更,没法轻易变更数据结构 分布式系统配置中心0 码力 | 12 页 | 2.96 MB | 1 年前3
走进开源 - Apache ServiceCombhttp://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 一种思想运动 用户可以自由地运行,拷贝,分 发,学习,修改并改进该软件 一旦在该软件基础上修改,则必 须保证修改后的软件也“自由” 开源发展第一阶段 [社区网站] http://servicecomb.apache.org [Github ] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 加入开源项目能收获什么 • 自身技能提升 可以学习到平时书本里学不到的东西 可以帮助我解决工作中的实际问题 • 视野/人际关系拓展 可以和一群志同道合的人一起成长 可以让我和世界级的开发者一起工作 • 个人品牌建立 可以使我的工作会被更多人看到 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 完善开源软件文档 • 文档是学习开源软件基础 • 从示例代码入手 • 代码是最详细的文档 • 在发现开源软件文档不全的 时候自己动手帮助完善 • 学会使用邮件列表 https://github.com/apache/s0 码力 | 28 页 | 1.92 MB | 1 年前3
Apache ServiceComb 微服务创新项目解读ServiceB.timeout=1s ServiceB.user.getUser.timeout=10s -在这样的数据格式设计下可生成多角度的配置视图,提升易用性,人类可读性 -学习成本高,运维人员要学习这个只在团队内部生效的key规则 -所有的key集中在一种类型的视图中管理,管理成本高。 -不断增长的规则定义,越来越复杂,人类不可读。 -Key设计无法扩展变更,没法轻易变更数据结构0 码力 | 13 页 | 1.24 MB | 1 年前3
康彬-基于微服务的混合云和同城双活实践单元化&双活的应用场景 • 同城双活的探索之路 • 未来的规划 大促的痛及混合云实践 业务服务层 资源层 分期乐 前端业务服务 桔子理财 鼎盛资管 …… mq管理系统 job管理系统 中台服务层 核心交易平台 风控审核平台 计算资源 (CPU) 存储资源 (内存|磁盘) 网络资源 (ip|端口|带宽) 中间件层 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 机器准备周期长,紧急 情况无法应对 大促后机器闲置率高,资 源浪费巨大 混合云需求分析 机器资源按需 申请 01 接入层按url调 度流量 02 服务层set化的 路由策略 03 数据层读请求 上云,写请求 回自建idc 04 流量大户上云,顶住流量洪峰 机器器资源按需分配 接入层URL粒度流量调度 LB DNS app/browser Nginx-Proxy0 码力 | 47 页 | 6.09 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁prepare() OK prepare() OK commit() OK commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • Confirm:确认执⾏行行业务 • 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • 微服务内:聚合通过数据库事务保证强⼀一致 原⼦子性(通过Saga协调器器实现) • ⼀一致性 (本地事务 + Saga log) • 隔离性 (Saga不不保证) • 持久性 (Saga log) 缺乏隔离性带来的问题 • 两个Saga事务同时操作⼀一个资源会出现数据语义不不⼀一致的的情况。 • 两个Saga事务同时操作⼀一个订单 ,彼此操作会覆盖对⽅方(更更新丢失) • 两个Saga事务同时访问扣款账号,⽆无法看到退款 (脏读取问题) •0 码力 | 33 页 | 2.38 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁prepare() OK prepare() OK commit() OK commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • Confirm:确认执⾏行行业务 • 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • 微服务内:聚合通过数据库事务保证强⼀一致 原⼦子性(通过Saga协调器器实现) • ⼀一致性 (本地事务 + Saga log) • 隔离性 (Saga不不保证) • 持久性 (Saga log) 缺乏隔离性带来的问题 • 两个Saga事务同时操作⼀一个资源会出现数据语义不不⼀一致的的情况。 • 两个Saga事务同时操作⼀一个订单 ,彼此操作会覆盖对⽅方(更更新丢失) • 两个Saga事务同时访问扣款账号,⽆无法看到退款 (脏读取问题) •0 码力 | 39 页 | 2.78 MB | 1 年前3
Metrics in ServiceComb 1.0.0-m1衡量Metrics实现 优劣的标准: • 关键指标覆盖 全 • 计量准确 • 高性能低资源 占用 • 无侵入或低侵 入 Metrics的分类 • Metrics有很多种分类方式,在技术实现上我们偏向以取值方式区 分为两种: • 1. 直接取值 • 任何时候都能够立刻获取到最新值,例如资源使用率,包括CPU使用率,线程数, Heap使用数据等等,还有调用累加次数,当前队列长度等等。 Java Chassis Metrics • 如何与普罗米修斯集成 依赖关系 Metrics列表 Metrics 子项 说明 微服务资源使用 CPU、ThreadCount、Heap、 NonHeap 基本的资源使用状态 Consumer端 Latency、CallCount、TPS 包含操作级别和微服务实例级别 Producer端 waitInQueue、lifeTimeInQueue、0 码力 | 18 页 | 938.89 KB | 1 年前3
共 26 条
- 1
- 2
- 3













