Go:服务发现开发

服务发现

             使用DNS进行服务发现

             服务注册&发现原理

             服务发现接口定义

             基于etcd的服务发现开发

服务发现的两种方案

             1.使用DNS进行服务发现

             2.基于SDK的形式进行服务发现

使用DNS进行服务发现

传统DNS方案

             1.非高可用  2.不支持动态变更 3.域名解析生效慢

使用dns进行服务发现

Kube-DNS如何解决这些问题?

集中式的DNS进行服务发现

1.系统存在单点

2.去掉单点故障

使用dns进行服务发现

参考资料

              https://draveness.me/dns-coredns

              https://github.com/coredns/coredns

              https://www.cncf.io/community/webinars/introduction-to-coredns/

              http://www.servicemesher.com/blog/ant-financial-service-mesh-adoption-plan/

基于sdk的服务发现功能设计

目标

             1. 不影响主流程 2.节点准实时更新

服务发现设计

接口定义

//服务注册插件的接口
type Registry interface{
    //插件的名字
    Name() string
    //初始化
    Init(ctx context.Context,service *Service)(err error)
    //服务注册
    Register(ctx context.Context,service *Service)(err error)
    //服务反注册
    Unregister(ctx context.COntext,service *Service)(err error)
    //服务发现:获取服务名对应的服务
    GetService(ctx context.COntext,name string)(service *Service,err error)
}

服务发现

1.GetService核心流程

2.基于etcd进行开发

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值