微服务学习--micro和go-micro
-----------------
原文: https://www.cnblogs.com/DjanFey/p/12172810.html
微服务学习(三)--micro和go-micro
一、区别
A、go-micro:微服务开发库
B、Micro:基于Go-micro开发的运行时工具集
二、Micro工具集组件
A、API:将http请求转向内部应用
1、API:将http请求映射到API接口
2、RPC:将http请求映射到RPC服务
3、event:将http请求广播到订阅者
4、proxy:反向代理
5、web:支持websocket反向代理
B、Web:web反向代理与管理控制
C、Proxy:代理风格的请求,支持异构系统只需要瘦客户端便可调用Micro服务
1. 注意:与Micro API不同,Proxy只处理micro风格的RPC请求,而非http请求
D、Cli:以命令行操控Micro服务
E、Bot:与常见的通信软件对接,负责传递消息,远程指令操作
三、Go-micro框架模块
A、service:具体实例化的服务,包含两个重要组件:Client、Server
Client:发送RPC请求与广播消息
Server: 接收RPC请求与消费消息
B、Broker:异步通信组件
C、Codec:数据编码组件
D、Registry:服务注册组件
E、Selector:客户端均衡器
F、Transport:同步通信组件
四、Broker异步消息组件
A、Subscribe:注册关心的主题(Topic),指定队列(queue)发送消息
B、Publish:异步将消息推送到主题(Topic)
C、Encoding:编码消息(默认JSON格式)
五、Registry注册组件
A、注册类型
1. 基于通用型注册中心,如Etcd、Consul、Zookeeper、Eureka
2. 基于网络广播,如mDNS、Gossip
3. 基于消息中间件,如NATS
六、selector选择器组件
A、目前支持两种算法:随机和轮询
七、Transport同步请求组件
A、