go微服务初探--基于GoMicro框架构建一个简单的微服务接口

本文详细介绍了GoMicro框架的组件结构,包括Registry、Selector、Broker、Transport等,并展示了如何使用go-micro搭建基于Consul的服务发现机制。通过实例演示了服务端和客户端的创建与交互,阐述了go-micro在微服务架构中的应用。

在这里插入图片描述

go-micro是组件化的框架,每一个基础功能都是一个interface,方便扩展。同时,组件又是分层的,上层基于下层功能向上提供服务,整体构成go-micro框架。
go-micro的组件包括:

Registry组件:服务发现组件,提供服务发现机制:解析服务名字至服务地址。目前支持的注册中心有consul、etcd、 zookeeper、dns、gossip等
Selector组件:构建在Registry之上的客户端智能负载均衡组件,用于Client组件对Registry返回的服务进行智能选择。
Broker组件:发布/订阅组件,服务之间基于消息中间件的异步通信方式,默认使用http方式,线上通常使用消息中间件,如Kafka、RabbitMQ等。
Transport组件:服务之间同步通信方式。
Codec组件:服务之间消息的编码/解码。
Server组件:服务主体,该组件基于上面的Registry/Selector/Transport/Broker组件,对外提供一个统一的服务请求入口。
Client组件:提供访问微服务的客户端。类似Server组件,它也是通过Registry/Selector/Transport/Broker组件实现查找服务、负载均衡、同步通信、异步消息等功能。
所有以上组件功能共同构成一个go-micro微服务。

在这里插入图片描述

软件版本信息:
go version
go version go1.14.12 darwin/amd64

/**
bogon:helloworldweb JackMeng$ micro
micro      microv113  microv160  microv180  microv29   microv30
bogon:helloworldweb JackMeng$ micro


micro -version
micro version v2.8.0-dc57add-1590923188
*/

protoc-gen-micro&protoc-gen-go的安装:
go get -u github.com/micro/protoc-gen-micro
go get -u github.com/golang/protobuf/protoc-gen-go

consul集群:
192.168.0.50:8500
192.168.0.51:8500
192.168.0.52:8500

快速搭建集群命令:
端口列表:
8300 TCP Server RPC端口,用于Client与Server通信或Server与Server通信
8301 TCP/UDP 用于单数据中心所有Client的通信
8302 TCP/UDP 用于单个或多个数据中心之间Server信息同步
8400 TCP 所有agent都要使用的端口,用于处理从CLI来的RPC
8500 TCP 用于API接口或WEB UI访问
8600 TCP/UPD 用于解析dns查询

firewall-cmd --zone=public --add-port=8500/tcp --permanent
firewall-cmd --zone=public --add-port=8300/tcp --permanent
firewall-cmd --zone=public --add-port=8300/udp --permanent
firewall-cmd --zone=public --add-port=8302/tcp --permanent
firewall-cmd --zone=public --add-port=8302/udp --permanent
firewall-cmd --zone=public --add-port=8400/tcp --permanent
firewall-cmd --zone=public --add-port=8600/tcp --permanent
firewall-cmd --zone=public --add-port=8600/udp --permanent
firewall
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值