美文网首页
Gokit gateway

Gokit gateway

作者: Golang_执着 | 来源:发表于2018-06-05 15:35 被阅读0次

    NewInstancer(client Client, logger log.Logger, service string, tags []string, passingOnly bool):

    a>首先初始化cache

    b>调用 getInstances[s.client.Service获取所有services,然后通过tag进行过滤,过滤后生成格式为[addr:port]的字符串切片]

    c>获取完 instances之后,就更新cache,,,

    d> 如果获得的实例与cache保存的不一致,则更新,并对注册过的所有服务进行广播。

    e> 最后启动go协程,每隔10ms就去重新获取下instance,并更新cache。

    NewEndpointer(src Instancer, f Factory, logger log.Logger, options ...EndpointerOption) *DefaultEndpointer:

    src.Register(se.ch)  注册到instance上,刚注册就会发送当前实例的Event(包含地址)。

    go se.receive() 启动go协程,不断地接收最新的实例地址,并对endpointCache进行更新。

    实操:

    相关文章

      网友评论

          本文标题:Gokit gateway

          本文链接:https://www.haomeiwen.com/subject/jduksftx.html