温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

go-micro源码阅读笔记1

发布时间:2020-07-16 10:48:02 来源:网络 阅读:648 作者:阿呆_xiaohao 栏目:编程语言

最近在看微服务,跟大佬们请教了下很多微服务的知识,然后看教程自己实践,在此特别感谢0.01km(QQ昵称)大佬的帮助

本节主要是针对与go-micro服务注册的过程中源码阅读的分享,

  s := micro.NewService(
        micro.Name("go.micro.srv.user"),
        micro.Version("latest"),
    )
    s.Init()

这里做了很多事
    func newOptions(opts ...Option) Options {
    opt := Options{
        Broker:    broker.DefaultBroker,
        Cmd:       cmd.DefaultCmd,
        Client:    client.DefaultClient,
        Server:    server.DefaultServer,
        Registry:  registry.DefaultRegistry,
        Transport: transport.DefaultTransport,
        Context:   context.Background(),
    }
  }

这块初始化Options结构体,如果想要修改consul默认的注册地址,必须要修改NewRegistry函数,里面赋值

type Options struct {
    Addrs     []string //注册ip地址:192.168.1.2:8080
    Timeout   time.Duration
    Secure    bool
    TLSConfig *tls.Config

    // Other options for implementations of the interface
    // can be stored in a context
    Context context.Context
}

//这里是获取默认的配置
func configure(c *consulRegistry, opts ...Option) {
    // set opts
    for _, o := range opts {
        o(&c.opts)
    }

    // use default config
    config := consul.DefaultConfig()

//consul默认配置
func defaultConfig(transportFn func() *http.Transport) *Config {
    config := &Config{
        Address:   "127.0.0.1:8500",
        Scheme:    "http",
        Transport: transportFn(),
    }

    if addr := os.Getenv(HTTPAddrEnvName); addr != "" {
        config.Address = addr
    }

    if token := os.Getenv(HTTPTokenEnvName); token != "" {
        config.Token = token
    }

    if auth := os.Getenv(HTTPAuthEnvName); auth != "" {
        var username, password string
        if strings.Contains(auth, ":") {
            split := strings.SplitN(auth, ":", 2)
            username = split[0]
            password = split[1]
        } else {
            username = auth
        }

好了,下节继续分享其他部分

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI