康彬-基于微服务的混合云和同城双活实践
(内存|磁盘) 网络资源 (ip|端口|带宽) 中间件层 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 消息元数据管理 消息生产 消息消费 job调度系统 job元数据管理 job发布 job调度 配置中心 mq管理系统 调用链路 系统 监控告警 系统 发布系统 服务注册 中心 服务治理 系统 api-gateway 获客 授信 下单 还款 接入层按url调 度流量 02 服务层set化的 路由策略 03 数据层读请求 上云,写请求 回自建idc 04 流量大户上云,顶住流量洪峰 机器器资源按需分配 接入层URL粒度流量调度 LB DNS app/browser Nginx-Proxy Nginx-Proxy 安全防护 自建IDC 云IDC WAF WAF https://order.lexin.com/create data_proxy registry_sync 电商单元 核心交易平台 风控审核平台 残酷的现实 缺乏按用户维度的流量调度能力 LB Nginx-Proxy Nginx-Proxy 自建IDC 云IDC 3 2 1 6 5 4 3 2 1 4 5 6 定时任务与普通服务耦合 lsf_registry job lsf_container service job lsf_container0 码力 | 47 页 | 6.09 MB | 1 年前3Service Mesh在华为公 有云的实践
Mesher ServiceB Control Plane 可⼈人⼯工介⼊入,为所有运⾏行的Mesher 提供配置下发,不会碰服务请求 • 注册中⼼心 • 下发配置 • 对接监控服务 • 调度引擎 Mesher Mesher Mesher Mesher Service Center Governance UX LB RouteRule Circuit Breaker Rate Code—开发者⾃自⾏行选型 • 命令⾏行注⼊入⼯工具—Mesher开发团队定制 • 编排服务⾃自动注⼊入—最完整的产品体验 应⽤用与Mesher集成最佳实践 • 使⽤用容器,容器⺴⽹网络与编排调度平台 • 业务代码监听在本地端⼝口,并且不要暴露业 务服务端⼝口。使⽤用Mesher端⼝口对外提供服务 • 使⽤用SideCar部署模式 • 将服务提供者地址写在配置⽂文件中,在本地 ⾥里信息是http://x com/huawei-microservice-demo/mesher-example 未来 数据⾯面竞争点:特性,可配置,扩展性,性能 管理⾯面竞争点:特性,可配置,扩展性,易⽤用性 最重要的:编排调度平台与数据⾯面的整合,为开发者带来最完整的产品体验 Take away • The Hardest Part of Microservices: Calling Your Services •0 码力 | 52 页 | 4.37 MB | 1 年前3消费者云CSE微服务实践
无论是华为内部的DSF,还是开源的Netflix、Spring Cloud等,都无法完全满足业务的 选型诉求,而CSE则能够很好的满足我们的需求 仔细阅读了CSE的主要模块代码,包括网络通信、线程调度模型等,代码质量非常高, 对细节的把握比较好 选型试用时,大家对CSE的接受度比较高,使用CSE改造已有的Spring MVC代码相对较 容易些 华为内部的平台,无论是新需求接纳,还是技术支撑,各方面保障都比较给力 能比传统Servlet NIO性能高X倍 Highway RPC:采用Netty + PB,既支持多语 言,又保证高性能 高性能幵发设计:线程绑定技术,网络I/O线程 绑定后端的服务调度线程,最大限度减少锁竞 争。采用连接池机制,重用已有的连接 CSE在消费者云业务的实践-分布式事务 1、服务化乊前本地事务: 2、服务化乊后引入分布式事务: 解决方案:CSE提供数据最终一致性方案-Saga0 码力 | 22 页 | 1.39 MB | 1 年前3Service Mesh的思考及在华为云的实践
PHP语言开发,遗留单体服务快速改造为分布式架构 • 负责公司内部的楼宇设施管理,使用mesher改造后,帮 助客户将软件改造为SaaS服务,为更多企业提供服务 6/30/2018 最佳实践 • 结合容器,容器网络,编排调度平台,监控平台使用 • 业务代码只需监听在127.0.0.1.使用mesher对外提供服务 • 使用SideCar部署模式 • 将服务提供者地址写在配置文件中,在本地里信息是http://x.x0 码力 | 29 页 | 1.55 MB | 1 年前3ServiceComb在华为消费者云的亿级用户微服务实践
隔离仓-3 手机客户端 WAP客户端 图书门户 单点故障 正常 正常 隔离仓-2 配置隔离仓: 通过配置线程池隔离仓,实现快 慢接口、读写接口、核心和非核 心接口、管理和业务接口的调度 隔离,提升微服务可靠性 实践-轻量化 Website: http://servicecomb.incubator.apache.org/ Gitter: https://gitter.0 码力 | 15 页 | 1.15 MB | 1 年前3反应式微服务框架ServiceComb设计思想&mdash
eventloop中执行,并不会进行线程切 换 p 橙色箭头走完后,对本线程的占用即完 成了,不会阻塞等待应答,该线程可以 处理其他任务 p 当收到远端应答后,由网络数据驱动开 始走红色箭头的应答流程 p 只要有任务,线程就不会停止,会一直 执行任务,可以充分利用cpu资源,也 不会产生多余的线程切换,去无谓地消 耗cpu。 压测数据 系统: Ubuntu 18.04.1 CPU:0 码力 | 33 页 | 5.68 MB | 1 年前3ServiceComb java SDK详解
eventLoopContext-created 如果持续增加,说明有计划外的线程切换,需要定位 • threadPool 以线程池为单位进行统计,输出最小线程数、最大线程数、 当前线程数、当前排队任务数,以及平均每秒提交任务数、完成 任务数等等数据 • consumer 以transport、调用结果两个维度进行分组,以operation为 单位输出tps、平均时延、最大时延 • producer 以tr0 码力 | 21 页 | 1.15 MB | 1 年前3微服务架构及ServiceComb实践
id, temperature, pressure… 1…..* 接口 内容 currentWeather 返回当前天气 数据库 API 任务 内容 getWeatherTask 从OpenWeatherMap定期 查询天气数据 定时任务 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache0 码力 | 14 页 | 2.04 MB | 1 年前3解读Apache
社区⻆⾊ 社区⻆⾊ ⽤户 — ⽤户是项⽬存在的意义,没有⽤户意味着项⽬不应 该存在。 贡献者 — 项⽬依赖于来⾃社区的贡献者们。得益于贡献者 们,及时反馈bug,邮件讨论,对bug进⾏改正,增加⽂档 等任务能够完成。 代码提交者 — 以功绩为参考项,杰出的贡献者们能够成为 代码提交者。 项⽬管理委员会会员 — 项⽬委员会(PMC)负责制定项⽬ 的⽅向,批准发布以及对新的代码提交者和PMC会员投 票。 更多的是指导原则,很少有绝对的规则 添加项⽬正在完善中的声明 提早发布和频繁发布 每⼀个发布都⽐上⼀个更好 从Apache孵化器毕业 从Apache孵化器毕业 完成(或者签署)孵化项⽬状态⽂件中的任务 保证项⽬和产品有合适的名称 展示创建⼀个Apache Release的能⼒ 创建⼀个开放和多样的社区 通过Apache 项⽬成熟模型的检测 http://community.apache0 码力 | 43 页 | 4.89 MB | 1 年前3Linux Con Workshop Quick Start Demo 殷湘 姜宁
弹性伸缩:保证用户请求量超过Worker处理能力的某个阈值后,招聘更多Worker加入项目; 当请求量回落后,裁剪Worker以节省项目组开支 • 健康检查:保证Worker告病时,能有替补接手任务 • 滚动升级:保证项目需要新技能时,能替换、培训Worker ,不中断接收项目请求 • 需要PaaS提供支持 l Github:https://github.com/ServiceComb0 码力 | 12 页 | 2.10 MB | 1 年前3
共 13 条
- 1
- 2