Golang微服务:Micro介绍

官方文档地址

https://micro.mu/docs/index.html

Tookit

  • API HTTP接入网关、反向代理或将HTTP转为RPC请求调用后端服务
  • Web 一个web应用程序,默认监控本地:8082端口,执行micro web进入浏览器可看到界面上提供了(CLI,Registry,Call功能)
  • Proxy 客户端代理,客户端可以通过Proxy访问微服务(客户端与服务端网络不通时使用)
  • Bot 机器人,使用Slack,HipChat,XMPP等协议通过Bot访问微服务
  • CLI 客户端,功能列表(查看服务列表,获取一个服务,调用服务,服务健康检查,注册注销服务)
  • new 指令,根据proto生成微服务代码模板

Go Micro

Go-Micro是一套适用于微服务的可拔插的RPC框架,其核心是9个重要的接口,没个接口都可以自由替换
image

  • Registry 服务的注册和发现,目前实现的consul,mdns, etcd,etcdv3,zookeeper,kubernetes.等等,
  • Selector 以Registry为基础,Selector 是客户端级别的负载均衡,当有客户端向服务发送请求时, selector根据不同的算法从Registery中的主机列表,得到可用的Service节点,进行通信。目前实现的有循环算法和随机算法,默认的是随机算法。
  • Broker Broker是消息发布和订阅的接口。很简单的一个例子,因为服务的节点是不固定的,如果有需要修改所有服务行为的需求,可以使服务订阅某个主题,当有信息发布时,所有的监听服务都会收到信息,根据你的需要做相应的行为。
  • Trasport 服务之间的通信接口,也就是服务发送和接收的最终实现方式,是由这些接口定制的
  • Client Client是请求服务的接口,他封装Transport和Codec进行rpc调用,也封装了Brocker进行信息的发布。
  • Server Server看名字大家也知道是做什么的了。监听等待rpc请求。监听broker的订阅信息,等待信息队列的推送等。
  • Codec 有了传输方式,下面要解决的就是传输编码和解码问题,go-micro有很多种编码解码方式,默认的实现方式是protobuf,当然也有其他的实现方式,json、protobuf、jsonrpc、mercury等等
  • Service Service是Client和Server的封装,他包含了一系列的方法使用初始值去初始化Service和Client,使我们可以很简单的创建一个rpc服务。
  • Wrappers 中间件,熔断、限流、跟踪

Plugins

上面的9大接口均在Plugins实现,且用户可以自行其他实现

猜你喜欢

转载自www.cnblogs.com/cqvoip/p/9964476.html