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降级预案在同程艺龙的工程实践-王俊翔
发现潜在故障,多维度验证预案 有效性,评估系统可靠性,提供 降级策略略、参数调整的优化依据 整体架构 Agent 服务降级注册 降级熔断通知 元数据存储 控制 中⼼心 ETCD ETCD ETCD ETCD 服务注册监听 降级控制中⼼心 元数据 TurboMQ 熔断降级监听 Application Application Application SDK 熔断降级接⼊入 Application Application SDK 熔断 降级 流控 隔离 实时策略略推送 数据采集 应⽤用管理理 策略略管理理 流控管理理 预案管理理 指标管理理 监控告警 数据⼤大盘 脚本开发 ETCD管理理 故障演练 业务保障管理理后台 应⽤用JVM进程 故障动态注⼊入 Attach 故障注⼊入 指标聚合查询 熔断降级计算(Flink) ⽇日志中⼼心 KAFKA 数据采集、计算、存储 降级服务管理理 故障代码注⼊入 降级服务注册设计 serviceA serviceB serviceC etcd register service metadata degrade strategy center mysql sharding watch admin • 使⽤用ETCD实现注册中⼼心 • 简单 - Go语⾔言编写部署维护简单,定义良好的API • 安全 - SSL认证机制0 码力 | 26 页 | 18.67 MB | 1 年前3Nacos架构&原理
189 > Nacos 最佳实践 高级监控 根据 Nacos 监控手册,结合 Prometheus 和 Grafana 监控 Nacos 指标。 Nacos Eureka Sync Etcd 监控 从如下界面可以监控到,业务服务列表是否在同步服务的集群上呈现⼀致性 Hash 均衡分布。 Nacos 最佳实践 < 190 Nacos 日志 日志合并及 JSON 格式化 将 现也不 如⼀致性 Hash 优雅,最后没采用。 Sync ⾼可⽤⼀致性 Hash + Etcd 方案 折腾了这么几次后,发现同步业务服务列表是持久化在数据库,同步服务器挂掉后 reHash 通知机 制是由 Zookeeper 来负责,两者能否可以合并到⼀个中间件上以降低成本?于是我们想到了 Etcd 方案,即通过它实现同步业务服务列表持久化 + 业务服务列表增减的通知 + 同步服务器挂掉后 同步服务器挂掉后 reHash 通知。至此方案最终确定,即两个注册中心( Eureka 和 Nacos )的双向同步方案,通过 第三个注册中心( Etcd )来做桥梁。 Sync 业务服务名列表定时更新优化方案 解决了⼀致性 Hash 的问题后,还有⼀个潜在风险,即官方方案每次定时同步业务服务的时候,都 会去读取全量业务服务名列表,对于业务服务数较少的场景应该没问题,但对于我们这种场景下, 这么频繁的全量去拉业务服务列表,会不会对0 码力 | 326 页 | 12.83 MB | 9 月前3ServiceCenter - 服务注册中心
为什么需要服务注册中心? 是单体架构向微服务服务化演迚的需要。 服务注册中心 1. 服务端发现 1. DNS 2. 客户端发现 1. ServiceCenter,eureka 2. etcd,zookeeper,consul 为什么实现自己的服务注册中心? 1. 提供标准接口(RESTful) 2. 负载均衡,服务订阅(客户端LB,长连接) 3. 运行时依赖(Go) 从微服务到服务管理中心 1.实例缓存机制 从微服务到服务管理中心 2.心跳保活机制 从服务管理中心到etcd 1.异步缓存机制 从服务管理中心到etcd 2.异步心跳机制 自我保护机制 前面提到的缓存机制,保证了ServiceCenter在etcd出现网络分区故障时依 然保持可读状态,ServiceCenter的自我保护(Self-preservation)机制保证 保证 了Provider端与ServiceCenter在出现网络分区故障时依然保持业务可用。 ServiceCenter在一个时间窗内监听到etcd有80%的实例下线事件,会立即 启劢自我保护机制。即使etcd存储的数据全部丢失,这种极端场景下, SDK与ServiceCenter之间可在不影响业务的前提下,做到数据自劢恢复。 虽然这个恢复是有损的,但在这种灾难场景下还能保持业务基本可用。0 码力 | 18 页 | 856.27 KB | 1 年前3Node 在有赞的实践
开源社区有哪些现成解决⽅方案? Node.js 服务注册中⼼心:ETCD、Zookeeper Java 1. 服务注册 2. 服务发现 3. TCP ⻓长链接建⽴立、Hession 协议解析、负载均衡、服务调⽤用 ⽅方案 2:Node 直接⽀支持 Java Dubbo 接⼝口调⽤用 17 Node ETCD Java Tether HTTP 1. 服务注册 2. 服务发现 接⼝口的调⽤用 20 Node ETCD Java Tether HTTP 1. 服务注册 2. 服务发现 3. 服务调⽤用 4. ⻓长链接建⽴立 Hession 数据包透传 负载均衡 服务调⽤用 120.0.0.1:8680 Hession 协议解析 ⽅方案3:对⽅方案 2 进⾏行行了了优化 21 Node ETCD Java Tether HTTP ⻓长链接建⽴立 Hession 数据包透传 负载均衡 服务调⽤用 120.0.0.1:8680 Hession 协议解析 ⽅方案3:对⽅方案 2 进⾏行行了了优化 22 Node ETCD Java Tether HTTP 1. 服务注册 2. 服务发现 3. 服务调⽤用 4. ⻓长链接建⽴立 Hession 数据包透传 负载均衡 服务调⽤用 120.0.0.1:86800 码力 | 29 页 | 945.50 KB | 1 年前3Best practices for building Kubernetes Operators
just 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 | 5 月前3王宜国 - 基于 Rust 编程语⾔构建 Amphitheatre CLI Desktop Server 的全平台实践经验
⽆需配置环境,⽀持多种编程语⾔和框架 Kayn Sona Redis ETCD Riven Event Account Project Activity Tariq Share NS 1 Kayn Sona Redis ETCD Riven Event Project NS 2 Kayn Sona Redis ETCD Riven Event Account Project 轻松创建⽆限量的隔离集成测试环境 ⽀持微服务架构体系和多⼈协作联调测试 Kayn Sona Riven Event Account Project Activity Tariq Share Redis ETCD 可让您完全跳过镜像构建, 使⽤新代码更新正在运⾏的容器, 只需⼏秒钟⽽不是⼏分钟。 本地开发实时部署到远程集群 如何⼯作的? Kubernetes 集群 更改 资源定义 ⻆⾊定义0 码力 | 34 页 | 10.81 MB | 1 年前3刘道平-从0到1,移动政务应用小程序系统架构演化
的接口服务,网关请求业务应用A提供的服务,返回给前端小程序。 11、后台服务 -- 构建分布式微服务框架 1.采用etcd 构建微服务框架 etcd是一个分布式的 、一致的key-value存储,主要用途是共享配置和服务发现。Etcd已经在很多分布式系统中得 到广泛的使用。Etcd采用raft协议,来保证一致性。 2.后台服务采用Go开发,围绕业务功能需求,构建后台服务模块 包括个人中心、服务0 码力 | 35 页 | 15.60 MB | 1 年前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 月前3Apache ServiceComb (Incubating) Community Roadmap
• Service Center • A high-performance and high availability service registration center based on ETCD • Saga • A solution to eventual consistency of microservice transactions • Provides a centralized asynchronous programming model. Supports Zipkin V2. Service Center Java Chassis 1.0.0-m2 Optimized ETCD elastic scaling. Optimized the edge servive gateway. Supports file stream upload and download0 码力 | 20 页 | 7.95 MB | 1 年前3
共 113 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12