因为一些原因最近在看go-micro,网上资料很多但感觉很乱,经过了许许多多踩坑之后终于实现了初步的demo,本节将搭建一个go-micro环境,并编记录demo实现过程和遇到的问题。
go-micro
go-micro有各个版本,我看的视频教程和网上的一些资料大部分都是用的v2,我用的是 go-micro 版本v4来开发。
首先安装protobuf,方法可看https://blog.csdn.net/qq_28979487/article/details/135201852
go-micro具体文档可访问https://github.com/go-micro/go-micro了解更多
1.简单了解
1.1服务的定义
在micro框架中,服务用接口来进行定义,服务被定义为Service,完整的接口定义如下:
type Service interface {
Init(...Option)
Options() Options
Client() client.Client
Server() server.Server
Run() error
String() string
}
在该接口中,定义了一个服务实例具体要包含的方法,分别是:Init、Options、Client、Server、Run、String等6个方法。
1.2 初始化服务实例
micro框架,除了提供Service的定义外,提供创建服务实例的方法供开发者调用:
service := micro.NewService()
如上是最简单一种创建service实例的方式。NewService可以接受一个Options类型的可选项参数。NewService的定义如下:文章来源:https://www.toymoban.com/news/detail-798932.html
func NewService(opts ...Option) Service {
return newService(opts...)
}
1.3 Options可选项配置
关于Options可配置选项,有很多可以选择的设置项。micro框架包中包含了options.go文件,定义了详细的可选项配置的内容。最基本常见的配置项有:服务名称,服务的版本,服务的地址,服务:文章来源地址https://www.toymoban.com/news/detail-798932.html
//服务名称
func Name(n string) Option {
return func(o *Options) {
o.Server.Init(server.Name(n))
}
}
//服务版本
func Version(v string) Option {
return func(o *Options) {
o.Server.Init(server.Version(v))
}
}
//服务部署地址
func Address(addr string) Option {
到了这里,关于【微服务:go-microv4基本框架搭建】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!