作用:基于GO语言开发,用于实现分布式系统的服务发现与配置的等管理。
目前成都创新互联已为上千的企业提供了网站建设、域名、虚拟主机、网站托管、企业网站设计、大理州网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
特性:
开发模式的下,一般我们的都是基于客户端的自注册的模式进行,意思就是服务启动的时候,把服务的信息都提交到的我们的注册中心上。
当我们的Consumerl消费者请求Prodcuer的是,会先从Consul获取到存贮Producter的数据(地址IP 和端口等)的临时表,从这个临时表里面任选一个Producr是的IP和Port,进行服务的请求
近几年诞生了很多微服务框架,比如JAVA的Spring Cloud、Dubbo;Golang的GoKit和GoMicro以及NodeJs的Seneca。几乎每种主流语言都有其对应的微服务框架。
Go在微服务框架中有其独特的优势,至于优势在哪,自行google。
1、GoKit框架
这是一个工具包的集合,可以帮助攻城狮构建强大、可靠和可维护的微服务。提供了用于实现系统监控和弹性模式组件的库,例如日志、跟踪、限流、熔断等。
基于这个框架的应用程序架构由三个主要的部分组成:
传输层:用于网络通信,服务通常使用HTTP或者gRPC等网络传输协议,或者使用NATS等发布订阅系统相互通信。
接口层:是服务器和客户端的基本构建块。每个对外提供的接口方法都会定义为一个Endpoint,一遍在服务器和客户端之间进行网络通信,每个端点使用传输层通过HTTP或gRPC等具体通信模式对外提供服务
服务成:具体的业务逻辑实现
2、GoMicro框架
这是一个基于Go语言实现的插件化RPC微服务框架。提供了服务发现、负载均衡、同步传输、异步通信以及事件驱动等机制,尝试简化分布式系统之间的通信,让开发者更专注于自身业务逻辑的开发。
GoMicro的设计哲学是可插拔的架构理念,提供了可快速构建系统的组件,并且可以根据自身的需求对GoMicro提供的默认实现进行定制。所有插件都可在仓库github.com/micro/go-plugins 中找到。
首先保证 Git 和 Go 已经安装成功。可以参考:
其次配置好 GOPATH 环境变量。
Go Micro 是基于 Go 语言用于开发的微服务的 RPC 框架,它是 Micro 的基础,执行下面当命令安装:
核心是 gogetgithub.com/micro/go-micro,但一些包需预先安装好(由于网络或映射原因)。
Protocol Buffers (a.k.a., protobuf) 是 Google 的数据交换格式。 在 下载安装源码,编译安装。本文选择的 cpp 的版本:
还需要安装 Go 对 Protobuf 的支持,和 Protobuf 代码生成器:
Micro 用于提供构建微服务的关键元素集合。
时间会比较久。
至此一个基本的 Go Micro 环境就安装完毕。
官方网站给了一个测试用例,我们先体验一下:
先安装官方测试案例 srv:
安装完成后,会在 $GOPATH/bin 下生成 srv 执行文件,启动他。本文已经将 $GOPATH/bin 设置到环境变量 path 中。
通过命令查看当前运行的微服务实例:
调用微服务:
得到以上结果,表示 Go Micro 的相关产品安装完毕!