Nacos架构&原理
随着企业加速数字化升级,越来越多的系统架构采用了分布式的架构,主要目的是为了解决集中化 和互联网化所带来的架构扩展性和面对海量用户请求的技术挑战。这里面其中有⼀个关键点是软负 载。因为整个分布式架构需要有⼀个软负载来协作各个节点之间的服务在线离线状态、数据⼀致性、 以及动态配置数据的推送。这里面最简单的需求就是将⼀个配置准时的推送到不同的节点。即便如 此简单需求,随着业务规模变大也会变的非常复杂。如何能将数据准确的在 个计算节点,这是当时提出的⼀个要求,围绕这个要求,系统要做大量的研发和改造,类似的这种 关键的技术挑战点还非常非常的多。本书就是将面对复杂的分布式计算场景,海量并发的业务场景, 对软负载⼀个系统的进行阐述,通过 Nacos 开源分享阿里软负载最佳实践,希望能够帮助到各位开 发者,各位系统架构师,少走弯路。 阿里巴巴云原生应用平台负责人 - 丁宇(叔同) 在阿里中间件开源、自研、商业三位⼀体的战略中,微服务 等。相信开发者阅读后不仅可以更深入了解 Nacos,也有助于提高分布式系统的设计研发能力。 阿里巴巴中间件负责人 - 胡伟琪(白慕) 阿里巴巴在 10 多年分布式应用架构实践过程中,产出了⼀大批非常优秀的中间件技术产品,其中软 负载领域的 Diamond、Configserver、Vipserver,无论在架构先进性、功能丰富度以及性能方面均 有非常出色的积累,2018 年初中间件团队决定把这⼀领域的技术进行重新梳理并开源,这就是本书0 码力 | 326 页 | 12.83 MB | 9 月前3
2.2.2 深入理解BFE业务C 集群 L4LB BFE平台架构 负载均衡器 vs 名字服务 基于负载均衡器 基于名字服务 方案对比 方案 对流量的控制力 资源消耗 对客户端的要求 适用场景 基于负载均 衡器 强。可以达到单个连 接 / 请求的粒度。 高。负载均衡器引 入了额外的资源消 耗。 低。客户端基本不 需要实现策略。 总体流量规模不大 (从负载均衡器资 源消耗的角度); 应用场景对流量控 持比较复杂的策略, 且涉及升级的问题。 总体流量规模较大; 应用场景对流量控 制要求低;无法使 用负载均衡器的场 景。 负载均衡器 • 负载均衡的趋势 • 硬件 => 软件 • 四层和七层负载均衡器分离 • 四层负载均衡 • LVS,DPVS,… • 七层负载均衡 • HAProxy,Nginx,Envoy,Traefik, BFE,… BFE为什么基于Go语言 • 易于编写高并发逻辑 • 网络协议栈支持 BFE的短板 • 没有在内存拷贝上做极致优化 • 使用Go系统协议栈 • 无法利用CPU亲和性(CPU Affinity) • 无法控制底层线程 七层负载均衡的生态选择 Nginx / OpenResty 生态 • 利用Nginx积累 的大量功能 • 利用Lua的快速 开发能力 • 代表:Nginx, APISIX Envoy 生态0 码力 | 26 页 | 1.78 MB | 1 年前3
张波-虎牙直播在微服务改造中的实践虎牙直播在微服务改造中的实践 张波 虎牙基础保障部中间件团队负责人 2019.8.11 Service Mesh Meetup #6 广州站 微服务改造事项 DNS-F在数据 库场景的落地 名字服务在负 载均衡场景的 落地 DNS-F在微服 务场景的落地 应用层探活 数据库故障 恢复时间长 服务故障牵 引慢,流量 接入生效时 间长 DNS生效慢 内部服务无 就近接入能 力 服务性能下 降流量不摘 done 切换逻辑 名字服务在负载均衡场景的落地 xxx.huya.com 华南IDC 华中IDC 华北IDC Nginx Nginx Nginx Web server 专线 背景 负载均衡变更需要更新配置发布后 才能生效,节点扩缩容,屏蔽操作 需要人工参与,流量接入接出时间 长 目标 流量接入接出时长低于30秒 负载均衡配置下发无状态改造 虎牙负载均衡部署的机器数百,配置下发的可靠性保障,一致性保障要求特别严格, 虎牙负载均衡部署的机器数百,配置下发的可靠性保障,一致性保障要求特别严格, 如果出现配置下发不及时,或下发配置失败,极大可能出现故障,同时负载均衡服 务弹性能力的要求较高,在业务高峰如果不能快速扩容,容易出现全网故障 传统配置下发方式 负载均衡配置固话在配置文件中, 节点操作需要人工上系统操作增减 节点 配置中心监听方式 客户端主动监听配置更新,配置秒 级生效,新扩容服务主动拉取全量 配置,流量接入时长缩短3分钟+ 配置名字服务0 码力 | 27 页 | 1.03 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践分流 流量 镜像 维护 开关 API 监控 认证 鉴权 治理 文档 报表 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 APM (应用运行期监控) 运行时 拓扑 性能 监控 开发测试环境自动部署,生产 环境手动触发 持续集成 www.163yun.com 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 服务 告警 监控 大屏 账户 审计 注册,发现,调用都提供鉴权 可自行定制:路由插件,可开发插件拦截请求,进行定制化 API网关负责流量接入 www.163yun.com 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 服务 告警 监控 大屏 账户 审计 粒度更细:可指定服务版本,类,方法级别0 码力 | 39 页 | 3.06 MB | 1 年前3
NSQ - 陈冶Web Service MySQL cluster 3. 负载均衡 MQ stream computing Web Service stream computing stream computing 使⽤需求 • 数据缓冲,提⾼可⽤性 ,缓冲服务故障 • 数据⼴播,分发给多个服务 • 负载均衡,提⾼消费者的扩展性 使⽤案例 ⼴告点击数统计 Web Service Service stream computing stream computing Msg 使⽤需求 • 数据缓冲,提⾼可⽤性 ,缓冲服务故障 • 数据⼴播,分发给多个服务 • 负载均衡,提⾼消费者的扩展性 • 消费反馈,确保消息不丢失 使⽤案例 ⼴告点击数统计 Web Service MySQL cluster User Click User Click 使⽤需求 • 数据缓冲,提⾼可⽤性 ,缓冲服务故障 • 数据⼴播,分发给多个服务 • 负载均衡,提⾼消费者的扩展性 • 消费反馈,确保消息不丢失 • MQ:分布式部署,排除⾃⾝单点故障 使⽤需求 • 数据缓冲,提⾼可⽤性 ,缓冲服务故障 • 数据⼴播,分发给多个服务 • 负载均衡,提⾼消费者的扩展性 • 消费反馈,确保消息不丢失 • MQ:分布式部署,排除⾃⾝单点故障0 码力 | 37 页 | 2.49 MB | 1 年前3
Node 在有赞的实践3. TCP ⻓长链接建⽴立、Hession 协议解析、负载均衡、服务调⽤用 ⽅方案 2:Node 直接⽀支持 Java Dubbo 接⼝口调⽤用 17 Node ETCD Java Tether HTTP 1. 服务注册 2. 服务发现 3. 服务调⽤用 4. ⻓长链接建⽴立 Hession 数据包透传 负载均衡 服务调⽤用 120.0.0.1:8680 Hession ⻓长链接建⽴立 Hession 数据包透传 负载均衡 服务调⽤用 120.0.0.1:8680 Hession 协议解析 ⽅方案3:对⽅方案 2 进⾏行行了了优化 21 Node ETCD Java Tether HTTP 1. 服务注册 2. 服务发现 3. 服务调⽤用 4. ⻓长链接建⽴立 Hession 数据包透传 负载均衡 服务调⽤用 120.0.0.1:8680 进⾏行行了了优化 22 Node ETCD Java Tether HTTP 1. 服务注册 2. 服务发现 3. 服务调⽤用 4. ⻓长链接建⽴立 Hession 数据包透传 负载均衡 服务调⽤用 120.0.0.1:8680 Hession 协议解析 如何优化? Node 调用 Tether 如何优化的? 23 24 const Service = require('0 码力 | 29 页 | 945.50 KB | 1 年前3
基于 mesos 的容器调度框架UPDATE 事件处理 Image generated by Mesos web interface 状态更新与 upone 的联动, 例如: - Running 状态, upone 更新负载均衡 - Lost 状态, 任务迁移 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone com/huangnauh/slides/upone.slide#3 14/36 负载均衡 基于 ngx_lua 的动态负载均衡方案: Slardar 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 15/36 负载均衡 update slardar: curl 127.0 com/github.com/huangnauh/slides/upone.slide#3 19/36 命令行工具 同时, 我们还提供命令行工具, 以便 App 所有者通过 upone 手动操作上述负载均衡和更新部署 的相关功能 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone0 码力 | 36 页 | 2.49 MB | 1 年前3
Golang大规模云原生应用管理实践策略与机制随着层次的变化而变化; 应用管理的策略与机制 应用 版本 工作负载 负载均衡 标签 流量 组件 日志 指标 容量 服务 依赖 路由规则 持久卷 部署策略 健康检查 … 灰度 发布 定时弹性 事件 指标弹性 分批发布 重启 回滚 日志管理 事件中心 指标监控 存储挂载 服务绑定 手动弹性 回退历史 负载均衡 报警 诊断 组件管理 服务治理 … 权限 Flagger controller Prom- controller Istio- controller … 部署 控制器 弹性 控制器 流量 控制器 存储 控制器 负载均衡 控制器 限流降级 控制器 监控 控制器 … 应用模型 控制器 平台应用模型 平台特定业务 用户应用模型 云原生生态 EDAS 1、应用管理策略 2、应用管理机制 3、平台构建策略 业务(2) 用户界面(1) EDAS的平台构建策略-OAM应用模型 https://github.com/oam-dev/spec • 应用 • 组件1(工作负载) • 运维特征1 • 运维特征2 • … • 组件2 (工作负载) • 运维特征1 • 运维特征2 • … • … 作用域 能力定义 依赖编排 组件版本 服务绑定 OAM应用模型 apiVersion: core.oam0 码力 | 23 页 | 7.70 MB | 1 年前3
高性能高可用机票实时搜索系统报价源多,不不稳定 • 响应时间要求苛刻 • 搜索条件有热点 • 缓存报价不不准 • 尽量量⽤用原⽣生数据类型,编码 • 回数⽐比例例,异步搜索更更新 • 分批回数 • ⼀一致性哈希,负载均衡 • 供应商粒度,主动更更新 报价引擎 供应商规则 航司运价 航班舱位状态 套餐搭售 + + 低价特惠 商旅优选 头等舱 。。。 报价引擎—供应商规则 报价引擎 • 背景 SearchDB 航班数据 运价数据 cache cache cache cache PriceMerger <出发、到达、⽇日期、供应商列列表> 报价引擎 — 负载均衡 • ⼀一致性哈希 • 缓存命中率 • 热点航线均衡 • 系统⾼高可⽤用 Router PEK-SHA2017-10-10 Search PEK-SHA ⽔水平分层,纵向分渠道,良好的扩展性 • 实时计算 + 阶梯式缓存,成本与报价新鲜度的权衡 • 闭环系统 • 索引库数据同步 • 本地缓存的设计,更更新策略略 • 缩减对象内存 • ⼀一致性哈希负载均衡 ⼼心得 • 不不同的业务场景,不不同的特征 • 结合特征去进⾏行行设计和优化 • 通⽤用!=最优 • 量量体裁⾐衣 待解问题 • 开舱发现 • 国际运价计算 • … 0 码力 | 26 页 | 1.94 MB | 1 年前3
2022年美团技术年货 合辑Laplacian 卷积,获取一个富集图像边缘和角点信息的细节真值;之后通过细节真值 和设计的细节 Loss 来引导 Stage3 的浅层特征学习细节特征。 由于图像的细节真值前后背景分布严重不均衡,因此我们采用的是 DICE loss 和 BCE loss 联合训练的方式;为了验证细节引导的有效性,我们做了这个实验,从特 征可视化的结果中可以看出多尺度获取的细节真值对网络进行细节引导能获得最好的 个阅读理解任务。文本分类任务有电商评价情感分析、科学文献分类、新闻分类 和 App 应用描述主题分类任务。主要归类为短文本二分类、短文本多分类和长文本 多分类。其中有的任务类别众多,超过 100 类,并且出现了类别不均衡问题。句间 关系任务有自然语言推理和短文本匹配任务。阅读理解任务则有成语阅读理解选择填 空,摘要判断关键词判别和代词消歧任务。每个任务大体提供了 160 条有标签数据 和两万条左右的无标签数据 405 起了学界的关注,尤其在大规模数据集或者数据源敏感的场景下,可以迅速完成模型 的压缩优化。但是,现有研究所采用的逐层通道对齐方法,在复杂结构上会极大限制 可剪枝区域的范围。同时,在样本分布不均衡的情况下,过度强调层间特征分布的一 致性,反而会导致优化误差的产生。 与直觉相反,本文提出了一种名为 MiR (Mimicking then Replacing) 的方法 – 通 过只使用 Penultimate0 码力 | 1356 页 | 45.90 MB | 1 年前3
共 239 条
- 1
- 2
- 3
- 4
- 5
- 6
- 24













