Go-Mirco

1、服务发现

  1. 每个server启动时,都会将自己的IP,PORT和服务名注册给“服务发现”
  2. 每当client向服务器发现发起服务请求时,“服务发现”会自动找一个可用的服务,将其IP/PORT/服务名返回给client
  3. client再借助服务发现,访问server

  服务发现的种类

  1. consul: 常应用于go-mirco中。
  2. mdns:go-mirco中默认自带的服务发现。
  3. etcd:k8s内嵌的服务发现
  4. zookeeper:java中常用

2、了解consul

  Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现和配置,包含多个组件特性:

    1. 服务发现:consul通过dns或者http接口使服务注册和服务发现变得容易,一些外部服务,例如saas提供的也可以一样注册
    2. 健康检查:健康检测使cousul可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面,类似于心跳机制。   
    3. 键/值存储: 一个用来存储动态配置的系统,提供简单的http接口,可以在任何地方操作。一般都不适用自带的,而是使用redis
    4. 多数据中心:无需复杂的配置,即可支持任意数量的区域

3、consul安装

  Consul用golang实现,具有天然的可移植性(支持linux,windos和macos)。安装包只含一个可执行文件,因此Consul安装非常简单。

  安装步骤:

    1. 直接官网下载对应的安装包https://www.consul.io/downloads 进入下载的目录
    2. linux: sudo cp -a consul  /usr/bin
    3. mac: sudo  cp -a consul  /usr/local/bin
    4. 输入命令  consul agent -dev 启动服务, 然后在网址输入http://localhost:8500/ui/dc1/services可以看到consul已经启动,health checks显示是正确的。   

4、consul常用命令

  -bind=0.0.0.0             指定consul所在机器IP地址,默认值0.0.0.0

  -http-port=8500        consul自带一个web访问默认端口:8500

  -client=127.0.0.1         表明那些机器可以访问consul。默认是本机。 0.0.0.0表示所有机器均可访问

  -config-dir=foo          所有主动注册服务的描述信息

  -data-dir=path           储存所有注册过来的srv机器的详细信息

  -dev                          开发者模式

  -node=hostname        服务发现的名字

  -rejoin                      consul启动时,加入consul集群

  -server                     以服务方式开启consul,允许其他的consul连接到开启的consul上

  -ui                           可以使用web页面来查看服务发现的详情 

5、注册服务到consul

  1、进入配置文件路径/etc/consul.d

  2、创建配置文件类型是json

  3、重新启动consul consul agent -config-dir=/etc/consul.d/ -dev

      

6、Go-micro安装

  //安装go-micro

  go get -u -v github.com/micro/go-micro

  //安装go-micro工具集

  go get -u -v github.com/micro/micro

  //安装protobuf工具集

  go get -u github.com/golang/protubuf/{proto, protoc-gen-go}

  go get -u github.com/micro/protoc-gen-micro

7、Go-micro的使用

  new

    参数:

      --namespace: 命名空间

      --type: 创建的项目类型

      --fqdn: 服务的正式完整定义 

posted @ 2021-02-27 18:14  ConstType  阅读(67)  评论(0)    收藏  举报