6.7 服务注册与服务发现、服务配置

6.7 服务注册与服务发现、服务配置 #


服务注册-Sever端 #

  • consul: https://developer.hashicorp.com/consul/docs/intro
    1
    
    go get github.com/kitex-contrib/registry-consul
    
  • 服务注册:
    • 服务注册 demo/demo_proto/main.go
      1
      2
      3
      4
      5
      
      	r, err := consul.NewConsulRegister(conf.GetConf().Registry.RegistryAddress[0])
      	if err != nil {
      		log.Fatal(err)
      	}
      	opts = append(opts, server.WithRegistry(r))
      
    • 修改配置文件中的服务注册端口为consul的8500:demo/demo_proto/conf/test/conf.yaml
  • 启动容器:docker compose up -d
  • 启动Sever端:

服务发现-Client端 #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
	r, err := consul.NewConsulResolver("127.0.0.1:8500")
	if err != nil {
		log.Fatal(err)
	}
	c, err := echoservice.NewClient("demo_proto", client.WithResolver(r))
	if err != nil {
		log.Fatal(err)
	}
	res, err := c.Echo(context.TODO(), &pbapi.Request{Message: "Hello"})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(res.Message)

服务配置 #

  • 方式一:配置文件。 File config: conf.go 解析yaml配置文件
  • 方式二:环境变量。
    • Linux env:export APP_ENV=online
    • .env file:APP_ENV=online
    • Docker env:ENV GO_ENV=online
      • go get github.com/joho/godotenv
  • **方式三:配置中心tcc。**一般和注册中心用同一个