大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一,原因:
成都创新互联-成都网站建设公司,专注网站制作、成都网站制作、网站营销推广,主机域名,网页空间,网站托管有关企业网站制作方案、改版、费用等问题,请联系成都创新互联。
学习研究go-micro已经有两三天了,在这里做个总结,有2点原因,第1点方便以后如果有一段时间没有用过micro导致几乎都忘了,那么这篇文章方便自己在很短的时间内重朔对micro的知识体系,第2个原因也算给自己一个交代,比较花了时间去研究了。接下来会从go-micro库,和micro工具两方面。
二,go-micro
介绍:go-micro可以理解为一个可以很快创建微服务器的第三方库,从可提供功能上分一下几点:
1,可提供开发服务端:这个服务端只能通过其他微服务通过rpc方式调用。当你看到用protoc工具生成的.micro.go文件的时候你会发现,主要包含2部分,第1部分接口是给调用方提供的,定义了作为客户端如何调用服务端。第2部分接口是服务端接口。通过实现接口,就可以实现服务端功能。大体上做server的流程如下。
1.1创建一个service实例(相当与micro整体对外的接口)。Micro.NewService
1.2初始化service实例。Service.init()
1.3实践自己的Handler逻辑。
1.4将自己实现的Handler和service绑定注册。
1.5 service运行。 service.run.
2,可提供开发web服务端:用micro做web服务端的优势在于可以在这个web服务端内部实现client接口,进而通过rpc方式调用其他用micro搭建的微服务。大体上创建的流程如下。
2.1创建一个webservice实例(可设置静态文件路由).
2.2初始化service
2.3注册自己的handler函数。
2.4 service启动运行。
3,可提供开发网关api: 其实就是对后面多个服务端起到一个聚合的作用,因为micro工具中网关就是基于go-micro开发的,初步看了一下micro中网关的源码大体设计流程如下。
第二部分micro工具
1,做api使用:上面也有介绍这个api工具就是基于go-micro写的,启动需要注意两个比较主要的参数,--namespace、 --handler.一个是命名空间,一个是api,rpc,event中那种方式。
2,做cli控制台使用:这个比较常用,主要提供一下功能。
2.1代替另一个微服务中的client端,调用call方法测试自己微服务。
2.2检查自己的微服务状态,例如服务列表,服务是否保活。
2.3可以把指定的微服务注册/撤销到另一个服务发现中。
3,做web UI使用:我的理解就是一个web界面的控制台。
4,proxy代理使用:不同的局域网是不能访问的,即使是各种局域网中的电脑能够访问外网。因为中间有所谓的nat技术。感觉这个proxy就是nat穿透技术的一种。
作用:基于GO语言开发,用于实现分布式系统的服务发现与配置的等管理。
特性:
开发模式的下,一般我们的都是基于客户端的自注册的模式进行,意思就是服务启动的时候,把服务的信息都提交到的我们的注册中心上。
当我们的Consumerl消费者请求Prodcuer的是,会先从Consul获取到存贮Producter的数据(地址IP 和端口等)的临时表,从这个临时表里面任选一个Producr是的IP和Port,进行服务的请求
首先保证 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 的相关产品安装完毕!