站务联系

内容

微服务框架Go-Micro集成Nacos实战之服务注册与发现-阿里云开发者社区

发布时间:2021-03-09   来源:网络整理    
字号:

相关背景知识Go-Micro

Go Micro 是一个基于 Go 语言撰写的、用于建立微服务的基础框架,提供了分布式开发所需的核心组件,包括 RPC 和丑闻驱动通讯等。

它的设计美学是「可拔插」的插件化构架,其核心专注于提供底层的插口定义跟基础工具,这些底层插口可以兼容各类实现。例如 Go Micro 默认通过 consul 进行服务发觉,通过 HTTP 协议进行通讯,通过 protobuf 和 json 进行编解码,以便你可以基于这种拆箱提供的组件迅速启动,但是假如还要的话,你也可以通过符合底层插口定义的其他组件替换默认组件,比如通过 nacos, etcd 或 zookeeper 进行服务发觉,这只是插件化构架的优势所在:不需要更改任何底层代码即可实现下层组件的替换。

Go-Micro绪论

Micro是一个微服务工具包,包括:

API

提供并将 HTTP 请求路由至相应微服务的 API 网关。它充当微服务访问的单一入口,将HTTP 请求转化为 RPC 并转发给相应的服务也可以用作反向代理。

微服务框架Go-Micro集成Nacos实战之服务注册与发现-阿里云开发者社区

Sidecar

go-micro 的 HTTP 接口版本,这是将非 Go 应用程序集成至微环境中的一种模式。

微服务框架Go-Micro集成Nacos实战之服务注册与发现-阿里云开发者社区

CLI

微服务框架Go-Micro集成Nacos实战之服务注册与发现-阿里云开发者社区

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

Registry

提供服务发觉模式:解析服务名子到服务地址。目前支持的注册中心有 consul、etcd、 zookeeper、dns、gossip 等。

Selector

选择器通过选择提供负载均衡体系。当客户端向服务器发出恳求时,它将首先查询服务的注册表。这一般会返回一个表示服务的正在运行的节点列表。选择器将选择哪些节点中的一个适于查询。多次读取选择器将容许使用平衡算法。目前的办法是循环法,随机哈希跟黑名单。

Broker

发布跟订阅的可插入插口,服务之间基于消息中间件的异步通讯模式,默认使用http模式,线上一般使用消息中间件,如 Nats、Kafka、RabbitMQ 和 http(用于开发)。

Transport

通过点对点传输消息的可拔插插口。目前的实现是 http,rabbitmq 和 nats 。通过提供这些具象,运输可以无缝地换出。

Codec

服务之间消息的编码/解码。

Plugins

提供 go-micro 的 micro/go-plugins 插件。

Server

微服务框架Go-Micro集成Nacos实战之服务注册与发现-阿里云开发者社区

快速开始Go-Micro服务端安装 protoc

Protobuf 是 Protocol Buffers 的简称,它是 Google 公司开发的一种数据描述语言,并于 2008 年对外开源。Protobuf 刚开源时的定位类似于 XML、JSON 等数据描述语言,通过附送工具生成代码并实现将结构化数据序列化的功能。我们还要借助 protoc 生成服务端代码。

微服务框架Go-Micro集成Nacos实战之服务注册与发现-阿里云开发者社区

新建 golang 项目(服务端)

1、在项目根目录下争创 proto 文件夹,用来储存 protobuf 文件

2、在 proto 文件夹下争创 greeter.proto 文件

微服务框架Go-Micro集成Nacos实战之服务注册与发现-阿里云开发者社区

微服务框架Go-Micro集成Nacos实战之服务注册与发现-阿里云开发者社区

5、在 proto 目录下,生成了 pb.go 以及 pb.micro.go 两个文件

微服务框架Go-Micro集成Nacos实战之服务注册与发现-阿里云开发者社区

图说天下

×
二维码生成