go-micro源码阅读笔记1

栏目: Go · 发布时间: 5年前

内容简介:最近在看微服务,跟大佬们请教了下很多微服务的知识,然后看教程自己实践,在此特别感谢0.01km(QQ昵称)大佬的帮助本节主要是针对与go-micro服务注册的过程中源码阅读的分享,好了,下节继续分享其他部分

最近在看微服务,跟大佬们请教了下很多微服务的知识,然后看教程自己实践,在此特别感谢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
        }

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


以上所述就是小编给大家介绍的《go-micro源码阅读笔记1》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

一目了然

一目了然

Robert Hoekman, Jr. / 段江玲 / 机械工业出版社华章公司 / 2012-3-19 / 59.00元

可用性或易用性是软件或Web设计师的重要设计目标之一。本书深入阐述了如何设计出简单易用的基于Web的软件,以帮助读者理解、掌握显性设计的精髓。作者从软件开发初期谈起,一直到软件设计后期,分析诸多案例并论证了自己的见解或设计原则。本书在第1版的基础上进行了重大改进,尤其是在设计思想上,作者在本书中谈到“以用户为中心的设计”、“以任务为中心的设计”以及“以情景为中心的设计”的理念。这种设计理念也将更直......一起来看看 《一目了然》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具