golang的etcd

etcd 是由CoreOS开发,用于可靠地存储集群的配置数据的一种持久性,轻量型的,分布式的键-值数据存储。表示在任何给定时间点处的集群的整体状态。其他组件在注意到存储的变化之后,会变成相应的状态。

etcd 有golang 编写 kubernets体系中主要用于 服务注册 + 服务发现.

// 以下为俺们封装的grpc调用 etcd的调用逻辑.

  1. 服务端. 注册服务.
  2. client端. 发现服务. 使用服务.

2.1 导入 invoker 包
main.go -> service.Init() -> 相关grpc的初始化. -> 导入 git.dz11.com/vega/invoker 包.

2.2 invoker包的init函数执行. 在 invoker/register.go 中.
init() 参数处理 -> 配置文件处理 -> invokerHandler = initInvoker() -> 各种服务 grpc的话 Conf.initHrpc(invokerHandler)

2.3 Conf.initHrpc
新建 GRPCResolver -> grpc.RoundRobin -> grpc.DialContext -> 返回得到的grpc的conn

2.4 grpc.DialContext
一系列处理之后, cc.resolverWrapper, err = newCCResolverWrapper(cc) -> rb.Build -> (*passthroughBuilder) Build ->
r.start() -> r.cc.NewAddress() ->

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Etcd和Consul都是非常出名的服务化治理工具。本篇先来讲一下Etcd的使用。 学会使用 安装 引用 Exam...
    leegoway阅读 4,100评论 0 1
  • 这篇文章将会介绍 etcd 的实现原理,其中包括 Raft 协议、存储两大模块,在最后我们也会简单介绍 etcd ...
    小刀爱编程阅读 2,056评论 0 3
  • 因为工作需求,公司需要使用ETCD来做gRPC服务的负载均衡,以及集群管理,所以对etcd做了一些研究,希望能给大...
    Jay_Guo阅读 46,932评论 8 47
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 4,398评论 0 5
  • 在叶子飘零的季节与你相遇 让记忆再一次看到你的笑脸 在枝头摇曳的孤寂里被风吹乱心思 熟悉的名字和熟悉的身影 熟悉的...
    田萍阅读 323评论 0 5

友情链接更多精彩内容