张波-虎牙直播在微服务改造中的实践摘 除 能 力 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 M1 down and 负载均衡变更需要更新配置发布后 才能生效,节点扩缩容,屏蔽操作 需要人工参与,流量接入接出时间 长 目标 流量接入接出时长低于30秒 负载均衡配置下发无状态改造 虎牙负载均衡部署的机器数百,配置下发的可靠性保障,一致性保障要求特别严格, 如果出现配置下发不及时,或下发配置失败,极大可能出现故障,同时负载均衡服 务弹性能力的要求较高,在业务高峰如果不能快速扩容,容易出现全网故障 传统配置下发方式 负载均衡配置固话在配置文件中, 有三种: 自注册、第三方注册、注册中心主动同步,异构微 服务相互调用困难;公共DNS不稳定,解析结果生 效慢,解析失败率高;DNS无法提供内网环境的就 近接入能力,内部服务调用无法实现就近访问。 目标 DNS解析成功率 100% 公共DNS分钟级生效 内部DNS秒级生效 基于IP+CMDB实现就近访问能力 11 dns当前现状 1、依赖公共localDNS,解析不稳定,延迟大 落地效果0 码力 | 27 页 | 1.03 MB | 1 年前3
ServiceComb java SDK详解Rest Consumer 透明RPC RestTemplate Producer 透明RPC JAX-RS SpringMVC • 传输绑架开发模式 • 传输可能对业务代码产生严重的侵入 • 治理逻辑与业务代码或传输耦合,需要针对各种场景独立开发 治理 治理 治理 治理 设计演进 服务契约 (OpenAPI) Transport Highway Servlet Rest Vertx Rest Consumer 透明RPC RestTemplate Producer 透明RPC JAX-RS SpringMVC 以契约为核心,贯穿始终 • 开发模式(业务代码)、治理、传输三方解耦,互不感知 • 以高性能的Reactive为基础,同时兼容传统的同步开发模式,且支持传统的Servlet传输 LoadBalance …… QPS Trace …… 每个微服务实例注册到服务中心, 并与服务中心保持心跳 • 消费者周期性从服务中心更新目 标微服务实例集合 • 微服务实例与服务中心之间的如 果成功建立WebSocket连接,则服 务中心会将目标实例变更事件尽 快推送给相关的消费者 服务发现-LoadBalance 1.将从服务中心取得的实例集合,进行过滤,得到 Endpoint集合 • 根据兼容规则,将实例进行分组 只有edge0 码力 | 21 页 | 1.15 MB | 1 年前3
消费者云CSE微服务实践公众号:Netty乊家 • 华为消费者云业务简介 • 微服务框架技术选型 • CSE在消费者云业务的实践 议题 华为消费者云业务包括 华为应用市场、华为视频、华为钱包、华为运 劢健康等服务,为华为和荣耀手机提供精品云服务,提升用户体验 华为消费者云业务简介 微服务框架技术选型-业务服务化目标 系统解耦,功能内聚,提升需求交付效率:通过业务的拆分和解耦,让系统敏 捷起来, 捷起来,快速、小批量的交付价值需求,提升业务的交付效率 践行API First:通过服务化,让服务提供者和消费者乊间通过微服务API建立契约,利 用Swagger OpenAPI规范,最终将微服务API规范化、标准化、在线化。系统从传统单体 应用的黑盒调用(本地Java方法调用)转变成透明的API契约调用 服务自治:通过在线的微服务治理结合云平台,可以实现微服务的弹性伸缩、故障自劢 迁移、降级熔断等,保障微服务的运行质量,提升业务SLA 建立服务化团队:随着业务的丌断拆分,大的研发团队也会被拆分成2-Pizza Team, 微服务团队由3-5人组成,负责整个微服务的设计、开发、测试、部署运维和治理,通过 全功能团队的建设,让业务真正敏捷起来 微服务框架技术选型-支持多语言 尽管现在以Java和GO语言为主,但是从架构演进角度考虑,未来 会根据消费者业务自身的特点引入更适合的语言0 码力 | 22 页 | 1.39 MB | 1 年前3
ServiceComb在华为消费者云的亿级用户微服务实践https://gitter.im/ServiceCombUsers/Lobby 经历:2008年加入华为,从事多年平台中间件、云计算和PaaS平台设计和开发 目前在华为终端消费者云业务从事华为手机应用市场的云化、微服务化架构设计 《Netty权威指南》、《分布式服务框架原理与实践》作者 热爱技术写作和分享 联系方式: Email: li_linfeng@huawei incubator.apache.org/ Gitter: https://gitter.im/ServiceCombUsers/Lobby 大兵团作战,统一认识,组织赋能 微服 务化 架构目标 质量 属性 架构原则 关键 技术 选型 架构师 设计&开发&测试骨干 架构培训 关键 技术 培训 服务化培训 服务化培训 案例 培训 研发&运维团队 微服务划分 微服务 开发 、微服务流水线(CI/CD)、微服务自动化运维和部署框架 组织赋能:拉通设计、开发、测试和运维的跨团队培训、 技术方案试点、案例分享、 ServiceComb统一预警体系,不 同业务部门之间的合作和协同 服务化地图:业务部署上线后,对业务微服务API进行基 线化,并发布服务化地图,涵盖微服务的划分原则、微服务 流水线地址、微服务SLA指标等 总体策略-技术选型 Website: http://servicecomb0 码力 | 15 页 | 1.15 MB | 1 年前3
华为企业级PaaS 微服务应用overall ServiceStage 微服务解决方案 容器云平台(CCE) Serverless云平台(CCI) 微服务咨询 现状分析 适用性评估 试点实施 效果评估 经验固化 目标设定 培 训 ( 理 论 、 案 例 、 实 战 演 练 ) 应用管理平台(CAS) 生命周期管理 部署/卸载 启动/停止 升级/回滚 灰度发布 弹性伸缩 微服务运维 应用告警 开发者不需要知道应用部署到容器还是虚机中,只需要像过去一样开发应用 • Java,Go,Nodejs等语言可部署到ARM,x86不同的基础设施中 • 完善的自动化促使组织能够管理大规模,快速的部署应用实例,应对业务流量,需求的变化 源码 软件中心 流水线 构建 归档 部署 配置中心 java python go nodejs php war jar 压缩包 二进制 Docker镜像 调整线上应用配置 q=servicecomb 缺少了什么 • 流水线,平台等自动化手段的完备,使得开发人员开始思考业务功能的拆分,复用,使得网络拓扑更加复杂 • 从过去“数据中心网络拓扑几乎没变化”变为“应用发布,应对业务流量,随时随地的网络拓扑变化” • 平台功能解决了应用运行时之前的种种问题,但为了将应用的运行时统一治理,保障业务可靠运行,需要引入微服务框架 来解决分布式系统中的难题 9 github.com/apache0 码力 | 17 页 | 3.42 MB | 1 年前3
微服务环境下的系统治理与容错架构 架构是为应用程序服务的 软件系统应用程序的需求 软件系统的价值维度 架构师是什么样的人 架构的终极目标 研发团队的持续斗争 研发团队必须从公司长远利益出发与其他部门抗争 -- Robert C. Martin 多种架构思想的本质 分层架构思维到六边形架构思维 业务领域代码 基础设施代码 再看六边形架构 治理 微服务到底需要多“微” 微 微服务的“微”暗示了服务的 巨大的灾难。 n 第五,也是最重要的,不能只是在技术上采用微服务架构。拥抱DevOps的原则和实践,在组织结构上实现跨 职能的自治团队,这必不可少。 还必须记住:实现微服务架构并不是你的目标。你的目标是加速大型复杂应用程序的开发。 --Chris Richardson 容错 故障和问题 线上故障“画像“ 系统稳定性指标 可监控设计 同步调用下-无线程池隔离 同步调用下-线程池隔离实现方法0 码力 | 45 页 | 16.09 MB | 1 年前3
微服务架构及ServiceComb实践注册中心 ServiceCenter SDK SDK SDK SDK ServiceA ServiceB ServiceC ServiceD 网关 EdgeService SDK 目标: • 服务与物理地址解耦 • 基本的健康检测 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:商品维护和下订单是2个微服务,下订单系统对性能有较高要求,所以可以考虑把商品的价格从商品维护微服务同步到订单系统,该同步动作 Customer-db Order-db Login-db Redis Redis Gateway Saga同步qualification 1. 每个微服务对应自己数据层 2. 拆分经验:看业务,不看技术 3. 利用:saga, 事务性消息发布,最终一致性,同(异)步调用组合等微服务模式 [社区网站] http://servicecomb.apache.org [Github ] https://github0 码力 | 14 页 | 2.04 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统注册中心 ServiceCenter SDK SDK …… SDK SDK ServiceA ServiceB ServiceC ServiceD 网关 EdgeService SDK 目标: • 服务与物理地址解耦 • 基本的健康检测 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:客户维护和订单是2个微服务,订单系统对性能有较高要求,所以可以考虑把购房资格信息从客户维护微服务同步到订单系统,改同步动作 Customer-db Order-db Login-db Redis Redis Gateway Saga同步qualification 1. 每个微服务对应自己数据层 2. 拆分经验:看业务,不看技术 3. 利用:saga, 事务性消息发布,最终一致性,同(异)步调用组合等微服务模式 [社区网站] http://servicecomb.apache.org [Github ] https://github0 码力 | 15 页 | 1.46 MB | 1 年前3
微服务架构与领域驱动设计 - 王磊每个服务都围绕着具体业务进⾏行行构建,并且能够被独⽴立的部署到⽣生产环 境、类⽣生产环境等。 以持续交付为核⼼心 基于DevOps 的演进式架构 Shakespear A thousand Hamlets in a thousand people’s eyes. 微服务架构 �7 什什么是领域驱动设计 领域驱动设计 �8 领域驱动设计解决的两个核⼼心问题: 1.业务架构如何合理理的设计划分? 业务架构如何合理理的设计划分? 2.技术架构与业务架构保持⼀一致? 领域驱动设计是⼀一种设计⽅方法,围绕业务概念构建领域模型, 并通过分离技术实现的复杂性,从⽽而控制软件演化的复杂度。 Tacking Complexity in the heart of software �9 微服务架构与领域驱动设计? �10 • 能有效⽀支撑演进式架构 微服务架构与领域驱动设计 �11 随着时间的推移,采⽤用领域驱动设计⽐比采⽤用 能有效指导服务的设计与划分 基于领域驱动设 计,能有效识别 业务模型/业务上 下⽂文。从业务⻆角 度指导服务拆分。 微服务架构与DDD 01 领域驱动设计的核⼼心 02 基于事件⻛风暴暴的DDD实践 03 领域驱动设计的核⼼心 1.建⽴立统⼀一语⾔言 2.建⽴立领域模型 3.识别依赖关系 4.细分界限上下⽂文 将业务架构和系统架构对应起来,建⽴立针对业务变化的⾼高响应⼒力力架构 领域驱动设计的理理论基础0 码力 | 28 页 | 1.84 MB | 1 年前3
康彬-基于微服务的混合云和同城双活实践主导并推动了乐信集团业务系统从单体应用架构向微服 务架构的演变、从 php 技术栈向 java 技术栈的无缝转 型,从私有云向混合云的进化,及新一代的同城双活技 术架构的研发与落地工作 信用成长成就品质生活 • 大促的痛及混合云实践 • 单元化&双活的应用场景 • 同城双活的探索之路 • 未来的规划 大促的痛及混合云实践 业务服务层 资源层 分期乐 前端业务服务 桔子理财 鼎盛资管 常研发运维活动的 进行,不影响用户 下单交易 故障时,直接影响用户下单交 易,且没有降级方案来缓冲、 减少影响 …… 财务系统 招聘系统 …… 美好的愿望 中心机房 registry 全站业务服务 data(r/w) web 核心交易平台 风控审核平台 data_proxy 单元机房 registry data(r) web data_proxy registry_sync 2 1 4 5 6 定时任务与普通服务耦合 lsf_registry job lsf_container service job lsf_container service 业务配置与运维配置需求矛盾 中心机房 _ConfigCenter biz_config dba_config1 S 单元机房 _ConfigCenter biz_config dba_config20 码力 | 47 页 | 6.09 MB | 1 年前3
共 34 条
- 1
- 2
- 3
- 4













