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
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
基于 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
Golang 微服务在腾讯游戏用户运营领域的探索及实践触达 • 礼包发放、积分 赠送、体验资格 营销 • 服务编排、运营策略 策略 微服务实践 • CDB + CKV / ETCD 服务注册发现 • CL5 / LVS CAE自动伸缩容 负载均衡 • ID / Token / IP 鉴权 • Atomic + Inmem + Redis、令牌桶 流控 • 轻重分离、单元化部署、容错 降级 • 实时上报、缓存汇聚/本地文件、ELK 日志监控告警 日志监控告警 • Bind Golang to Lua 运行时类库 并发模型 异步Async 批量Batch 多核并行Parallel Lua协程绑定Go程 IO阻塞自动切换 高可用 负载均衡 寻址 限流 缓存 降级 SLA保证 并行执行单元 消息总线 屏蔽本地网络差异 微执行单元 水平伸缩 运营监控 旁路实时上报 自定义告警策略 收敛算法 海量日志查询0 码力 | 34 页 | 1.22 MB | 1 年前3
云原生go-zero微服务框架设计思考redis3 类似DB的缓存索引方式 ● 不允许不过期的缓存 ● 分布式缓存,易伸缩 ● 自动生成,自带统计 缓存的最佳实践 ● 协议选择 - gRPC ● 服务发现方式 - etcd ● 负载均衡 - p2c ewma ● 支持自定义中间件 service2 etcd service1 注册上报 watch发现 rpc call rpc服务层 - zRPC Power of 跟客户端超时配合 ● 重试 ● 指数退避 ● 流量quota ● 超时相关性 更多组件 Requests 并发控制 自适应降载 自适应熔断 Rpc Call K8S弹性伸缩 限流 负载均衡 多重防护,保障高可用 ● 链路跟踪 ● Logging ● Metrics ● 监控报警 可观测性 没有度量,就没有优化! ● 数据上报到控制台服务 ● 数据上报到prometheus0 码力 | 29 页 | 5.70 MB | 9 月前3
1.6 resource scheduling & container technology for financial service_yujunMin-Min算法,利用MCT矩阵,首先分别找到能够最短完成该任务的机器及最短完成时间,然后在所有的最短完成 时间中找出最小的最短完成时间对应的任务。Min-Min算法存在着一个很大的缺点,就是算法的资源负载均衡性能 (Load Balancing)不高。 ⑤ Max-Min算法与Min-Min算法相似,都是将任务指派给具有最小预测完成时间的主机,不同的是Max-Min算法从 所有任务的最小 n,并选出第i台服务器。轮叫调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数和响 应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮询调 度算法容易导致服务器间的负载不平衡。 Gopher China 2015 求解之路的探索 n 他们是否解决了我们的问题? n No ① Mesos 采用了DRF(Dominant 容器级资源运行技术 基于Linux 内核隔离及业界先进的Container容器技术 自主研发的资源分配和动态调度调度算法 自主研发SWF核心算法 (基于场景的加权均衡算法) 两级作业调度框架 自主研发Gardener – Seed 作业调度系统 服务弹性伸缩 自主研发Lighthouse智能服务伸缩模型 分布式高可用控制系统0 码力 | 21 页 | 27.20 MB | 1 年前3
02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力业务解耦 • 平滑升级 • 异构语言治理 • 异构语言治理能力弱 • SDK 版本不统一 应用 SDK 服务路由 负载均衡 通信序列化协议 sidecar 应用 SDK 通信序列化协议 业务逻辑 服务路由 熔断限流 进程通信 熔断限流 负载均衡 Service Mesh 落地实践 7 基础设施 MOSN RPC MQ Actuator Cache Config0 码力 | 63 页 | 880.85 KB | 1 年前3
微服务容灾治理CPU打满 • 上下游故障或者超时 • MySQL、MongoDB、Redis等中间件故障或者超负载(典型的是CPU飙⾼) 如图,我们从三个⽅⾯来保护系统的稳定性: • 服务端⾃适应过载保护 • 服务端⾃适应熔断 • 客⼾端⾃适应熔断 当然,我们还有⾃动适配后端服务能⼒的负载均衡算法,对稳定性进⼀步保驾护航。本⽂主要讲解⾃ 适应过载保护的原理、场景和表现。 2. ⾃适应过载保护压测 快,或者⽐较少,瓶颈是 在CPU消耗上。 你可以直接⽤ goctl quickstart -t mono 命令⽣成⼀个HTTP服务,然后在logic代码⾥加 上模拟CPU负载的请求处理代码。 模拟CPU计算的代码:https://gist.github.com/kevwan/ccfaf45aa190ac44003d93c094a12c3f benchmar 3CPU负载反馈因⼦ 当CPU负载超过了设置的阈值时,我们期望CPU越⾼,对请求的拒绝⽐例越⾼,否则CPU依然有可 能越来越靠近100%。 反馈因⼦计算公式如下: 反馈因⼦的效果类似于神经⽹络中的ReLU激活函数。其中0.1(兜底的经验值)是⽤来保证不管负载 多⾼,⾄少放过估算出来的系统容量的10%的请求,否则整个服务就完全不可⽤了。CPU负载反馈因 ⼦随着CPU负载的变化如下图:0 码力 | 13 页 | 1.68 MB | 1 年前3
Go 构建大型开源分布式数据库技术内幕set of continuous key-value pairs RPC (gRPC) Transaction MVCC Raft RocksDB ··· Raft ● 复制/分裂/负载均衡 Region 1:[a-e] split Region 1.1:[a-c] Region 1.2:[d-e] split 分裂: 1/4 TiKV1 Region 1:[a-e] TiKV2 RemovePeer] ● HotRegionBalance ○ 统计一段时间内的 Region 流量排行榜 ○ 统计排行榜 TopN 在 Store 的分布情况 ○ 生成 Operator 使之均衡 调度的难点 ● 难以评判什么样的数据分布情况是最优解 ○ 机器配置不同 ○ CPU、内存、磁盘、网络多种因素相互制约 ○ 用户场景多变 ● 调度所依赖的集群状态不一定是最新的 ● 调度本身也会带来系统负担0 码力 | 44 页 | 649.68 KB | 1 年前3
共 27 条
- 1
- 2
- 3













