一,原因:
目前创新互联已为成百上千的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器托管、企业网站设计、循化网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
学习研究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穿透技术的一种。
度娘给出的一个完整答案,总结的很全面
Java系微服务框架
· Spring Boot/ Netflix OSS/Spring Cloud
· Dubbo
· Dropwizard
· Akka
· Vert.x/ Lagom/ ReactiveX/Spring 5
· 除了以上介绍的这些主流微服务框架外,还有Grizzly、KumuluzEE、ConductR、Ninja、Jodd、Restlet、RESTEasy、Payara Micro、Redkale、RestExpress、restx、JessMA、eventuate、Rapidoid、Ratpack、Javalite、JHipster及Bootique.io等
.Net系微服务框架
· Service Fabric
· Surging
· Steeltoe OSS
· Microdot Framework
· .NET China Foundation
· 除以上框架,还有Xigadee、Apworks framework、Cronus、NancyFx、GRPC等相关框架和项目
Node.js微服务框架
· Seneca
· Hapi/ restify/ LoopBack
Go微服务框架
· Go-Kit
· Goa
· Dubbogo
· 除了上面3种基于Go语言的微服务框架,还有Micro、Gizmo等
Python微服务框架
· Nameko, Python的微服务框架非常少,暂时就列出一个框架
通过beego快速创建一个Restful风格API项目及API文档自动化:
Go 语言构建 RESTful Web 服务:
Golang中使用 JWT认证来 保障Restful JSON API的安全(英文):
polaris: 一个用go实现的支持restful的web框架:
关于RESTFUL API 安全认证方式的一些总结:
有没有人用golang实现过restful框架的实例:
Micro 一个用Go语言实现的微服务框架:
基于微服务库的可插拔RPC go-micro:
golang适合做web开发吗?:
a-survey-of-5-go-web-frameworks:
Ozzo Framework:
avelino/awesome-go:
Beego Framework:
golang其实不适合做web开发:
Go语言现有Web开发框架:
使用Golang快速构建WEB应用:
Martini 极好的 Go WEB 框架:
golang 有哪些比较稳定的 web 开发框架?:
首先保证 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 的相关产品安装完毕!