 1.2 Go 在分布式系统开发中的应用zookeeper etcd how to use etcd like zookeeper :) Distributed conponents 起因以及一些差异 not gonna cover every details zookeeper vs etcd 起因: reborndb是一个分布式redis集群框架 支持透明切换引擎 为了同时支持zookeeper和etcd zookeeper zookeeper vs etcd zookeeper: session etcd: stateless zookeeper vs etcd 文件和目录的差异 zookeeper: 目录可以带value etcd: 目录就是纯粹的目录 zookeeper vs etcd 临时节点 zookeeper: 直接创建 etcd: 自己去更新ttl,用goroutine不断 去更新 如果watch了临时节点:这样又会不断 产生新的事件 zookeeper vs etcd zookeeper: getwatch etcd: watch after index ? how to choose index? what if index is far from current raft index? out of date zookeeper vs etcd RebornDB的getwatch实现 让client持有状态0 码力 | 20 页 | 131.34 KB | 1 年前3 1.2 Go 在分布式系统开发中的应用zookeeper etcd how to use etcd like zookeeper :) Distributed conponents 起因以及一些差异 not gonna cover every details zookeeper vs etcd 起因: reborndb是一个分布式redis集群框架 支持透明切换引擎 为了同时支持zookeeper和etcd zookeeper zookeeper vs etcd zookeeper: session etcd: stateless zookeeper vs etcd 文件和目录的差异 zookeeper: 目录可以带value etcd: 目录就是纯粹的目录 zookeeper vs etcd 临时节点 zookeeper: 直接创建 etcd: 自己去更新ttl,用goroutine不断 去更新 如果watch了临时节点:这样又会不断 产生新的事件 zookeeper vs etcd zookeeper: getwatch etcd: watch after index ? how to choose index? what if index is far from current raft index? out of date zookeeper vs etcd RebornDB的getwatch实现 让client持有状态0 码力 | 20 页 | 131.34 KB | 1 年前3
 Best practices for building Kubernetes Operatorsjust after reading the data from ETCD ● Defaulting happens on the object ○ in the request to the API server using the request version defaults, ○ when reading from etcd using the storage version defaults “Defaults applied when reading data from etcd are not automatically written back to etcd. An update request via the API is required to persist those defaults back into etcd”FinalizersFinalizers ● “Finalizers0 码力 | 36 页 | 2.19 MB | 6 月前3 Best practices for building Kubernetes Operatorsjust after reading the data from ETCD ● Defaulting happens on the object ○ in the request to the API server using the request version defaults, ○ when reading from etcd using the storage version defaults “Defaults applied when reading data from etcd are not automatically written back to etcd. An update request via the API is required to persist those defaults back into etcd”FinalizersFinalizers ● “Finalizers0 码力 | 36 页 | 2.19 MB | 6 月前3
 云原生go-zero微服务框架设计思考异常捕获 并发控制 数据统计 监控报警 链路跟踪 自动降载 自动熔断 超时控制 Redis集群 Redis集群 数据库 MySQL集群 MongoDB集群 ClickHouse集群 服务发现 ETCD集群 Redis集群 代码未动,数据先行 ● 定义数据边界 ● 数据库互相隔离,通过RPC访问 ● No join, no pain! 用户 商品 订单 物流 如何设计缓存 ● 缓存穿透,不存在的数据 ● 不允许不过期的缓存 ● 分布式缓存,易伸缩 ● 自动生成,自带统计 缓存的最佳实践 ● 协议选择 - gRPC ● 服务发现方式 - etcd ● 负载均衡 - p2c ewma ● 支持自定义中间件 service2 etcd service1 注册上报 watch发现 rpc call rpc服务层 - zRPC Power of Two Choices ● 默认算法0 码力 | 29 页 | 5.70 MB | 9 月前3 云原生go-zero微服务框架设计思考异常捕获 并发控制 数据统计 监控报警 链路跟踪 自动降载 自动熔断 超时控制 Redis集群 Redis集群 数据库 MySQL集群 MongoDB集群 ClickHouse集群 服务发现 ETCD集群 Redis集群 代码未动,数据先行 ● 定义数据边界 ● 数据库互相隔离,通过RPC访问 ● No join, no pain! 用户 商品 订单 物流 如何设计缓存 ● 缓存穿透,不存在的数据 ● 不允许不过期的缓存 ● 分布式缓存,易伸缩 ● 自动生成,自带统计 缓存的最佳实践 ● 协议选择 - gRPC ● 服务发现方式 - etcd ● 负载均衡 - p2c ewma ● 支持自定义中间件 service2 etcd service1 注册上报 watch发现 rpc call rpc服务层 - zRPC Power of Two Choices ● 默认算法0 码力 | 29 页 | 5.70 MB | 9 月前3
 2.2.1 深入Go Modulegit push origin v3.0.0 血泪史 第四部分 循环依赖 L 1.0.0 L 1.1.0 M 1.0.0 etcd --> prometheous-client --> prometheus-common --> go-kit -->etcd 不再维护的第三方 总是拉不下来的版本?历史旧账! 恼人的v2 module source tree too big https://github0 码力 | 46 页 | 3.85 MB | 1 年前3 2.2.1 深入Go Modulegit push origin v3.0.0 血泪史 第四部分 循环依赖 L 1.0.0 L 1.1.0 M 1.0.0 etcd --> prometheous-client --> prometheus-common --> go-kit -->etcd 不再维护的第三方 总是拉不下来的版本?历史旧账! 恼人的v2 module source tree too big https://github0 码力 | 46 页 | 3.85 MB | 1 年前3
 分布式任务系统cronsunjobs)| |(query job exec result) [etcd] [mongodb] | 多机器严格的时间间隔任务 9. 支持安全性配置,可以限制任务脚本的后缀和执行用户 10.... @Copyright Sunteng Technology cronsun 主要组件 cronnode etcd cronweb Jobs Jobs Jobs @Copyright Sunteng Technology cronnode 1. 节点可以进行分组(label) 2. 节点的状态0 码力 | 48 页 | 1.52 MB | 1 年前3 分布式任务系统cronsunjobs)| |(query job exec result) [etcd] [mongodb] | 多机器严格的时间间隔任务 9. 支持安全性配置,可以限制任务脚本的后缀和执行用户 10.... @Copyright Sunteng Technology cronsun 主要组件 cronnode etcd cronweb Jobs Jobs Jobs @Copyright Sunteng Technology cronnode 1. 节点可以进行分组(label) 2. 节点的状态0 码力 | 48 页 | 1.52 MB | 1 年前3
 Golang 微服务在腾讯游戏用户运营领域的探索及实践性化属性数值 指标 • 短信、Tips、邮 件、站内信通知 触达 • 礼包发放、积分 赠送、体验资格 营销 • 服务编排、运营策略 策略 微服务实践 • CDB + CKV / ETCD 服务注册发现 • CL5 / LVS CAE自动伸缩容 负载均衡 • ID / Token / IP 鉴权 • Atomic + Inmem + Redis、令牌桶 流控 • 轻重分离、单元化部署、容错0 码力 | 34 页 | 1.22 MB | 1 年前3 Golang 微服务在腾讯游戏用户运营领域的探索及实践性化属性数值 指标 • 短信、Tips、邮 件、站内信通知 触达 • 礼包发放、积分 赠送、体验资格 营销 • 服务编排、运营策略 策略 微服务实践 • CDB + CKV / ETCD 服务注册发现 • CL5 / LVS CAE自动伸缩容 负载均衡 • ID / Token / IP 鉴权 • Atomic + Inmem + Redis、令牌桶 流控 • 轻重分离、单元化部署、容错0 码力 | 34 页 | 1.22 MB | 1 年前3
 如何用GO支撑海外电商的快速发展-吕梦楼动电商服务的微服务接入 通过微服务网关,便于电商服务的接入、监控和管理 场景落地 第三部分 场景落地 01. 微服务网关 场景落地 01. 微服务网关 技术栈选型:GO + ETCD 场景落地 01. 微服务网关 场景落地 01. 微服务网关 Traefxi配置文件 场景落地 01. 微服务网关 场景落地 01. 微服务网关 场景落地 01. 微服务网关0 码力 | 33 页 | 3.80 MB | 1 年前3 如何用GO支撑海外电商的快速发展-吕梦楼动电商服务的微服务接入 通过微服务网关,便于电商服务的接入、监控和管理 场景落地 第三部分 场景落地 01. 微服务网关 场景落地 01. 微服务网关 技术栈选型:GO + ETCD 场景落地 01. 微服务网关 场景落地 01. 微服务网关 Traefxi配置文件 场景落地 01. 微服务网关 场景落地 01. 微服务网关 场景落地 01. 微服务网关0 码力 | 33 页 | 3.80 MB | 1 年前3
 Go 构建大型开源分布式数据库技术内幕Easy, Stateful is Hard ○ Application domain knowledge ○ IO Isolation ● tidb-operator (Inspired by etcd-operator) TiDB with Kubernetes 2/3 kubectl tidb-operator PD TiKV Cluster Delete a tikv node0 码力 | 44 页 | 649.68 KB | 1 年前3 Go 构建大型开源分布式数据库技术内幕Easy, Stateful is Hard ○ Application domain knowledge ○ IO Isolation ● tidb-operator (Inspired by etcd-operator) TiDB with Kubernetes 2/3 kubectl tidb-operator PD TiKV Cluster Delete a tikv node0 码力 | 44 页 | 649.68 KB | 1 年前3
 2.7 Golang与高性能DSP竞价系统专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right ReservedAll Right Reserved Dispatch: 数据、状态同步 Dispatch etcd Bid Server Bid Server . . Bid Server Bid Server 队列 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All0 码力 | 51 页 | 5.09 MB | 1 年前3 2.7 Golang与高性能DSP竞价系统专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right ReservedAll Right Reserved Dispatch: 数据、状态同步 Dispatch etcd Bid Server Bid Server . . Bid Server Bid Server 队列 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All0 码力 | 51 页 | 5.09 MB | 1 年前3
 Golang大规模云原生应用管理实践稳定性不足:没有设置Pod的QoS等级,导致频繁被驱逐,没有设置反亲和性策略,导致节点流量不均; • 扩展效率低:需要负责安装,升级丰富的云原生插件,无法解决插件的依赖,冲突和资源浪费问题; • 运维成本高:Apiserver, etcd, Controller-Manager, Kubelet,等组件都具有一定复杂度,无法做到定期升 级以维持安全,高可用,高性能的状态; • … 能力复用 自动化 可观测 稳定 安全 开发0 码力 | 23 页 | 7.70 MB | 1 年前3 Golang大规模云原生应用管理实践稳定性不足:没有设置Pod的QoS等级,导致频繁被驱逐,没有设置反亲和性策略,导致节点流量不均; • 扩展效率低:需要负责安装,升级丰富的云原生插件,无法解决插件的依赖,冲突和资源浪费问题; • 运维成本高:Apiserver, etcd, Controller-Manager, Kubelet,等组件都具有一定复杂度,无法做到定期升 级以维持安全,高可用,高性能的状态; • … 能力复用 自动化 可观测 稳定 安全 开发0 码力 | 23 页 | 7.70 MB | 1 年前3
共 10 条
- 1













