go语言微服务框架对比 go语言 微服务框架

微服务框架全家福都有哪些

度娘给出的一个完整答案,总结的很全面

创新互联公司长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为北票企业提供专业的网站设计、做网站北票网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

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的微服务框架非常少,暂时就列出一个框架

Go - Micro微服务框架实践 - API(十三)

Micro的api就是api网关

API参考了 API网关模式 为服务提供了一个单一的公共入口。基于服务发现,使得micro api可以提供具备http及动态路由的服务。

Micro的API基于HTTP协议。请求的API接口通过HTTP协议访问,并且路由是基于服务发现机制向下转发的。 Micro API在 go-micro 之上开发,所以它集成了服务发现、负载均衡、编码及基于RPC的通信。

因为micro api内部使用了go-micro,所以它自身也是可插拔的。 参考 go-plugins 了解对gRPC、kubernetes、etcd、nats、及rabbitmq等支持。另外,api也使用了 go-api ,这样,接口handler也是可以配置的。

ACME( Automatic Certificate Management Environment)是由 Let’s Encrypt 制定的安全协议。

可以选择是否配置白名单

API服务支持TLS证书

API使用带分隔符的命名空间来在逻辑上区分后台服务及公开的服务。命名空间及http请求路径会用于解析服务名与方法,比如 GET /foo HTTP/1.1 会被路由到 go.micro.api.foo 服务上。

API默认的命名空间是 go.micro.api ,当然,也可以修改:

我们演示一个3层的服务架构:

完整示例可以参考: examples/greeter

先决条件:我们使用Consul作为默认的服务发现,所以请先确定它已经安装好了,并且已经运行,比如执行 consul agent -dev 这样子方式运行。

向micro api发起http请求

HTTP请求的路径 /greeter/say/hello 会被路由到服务 go.micro.api.greeter 的方法 Say.Hello 上。

绕开api服务并且直接通过rpc调用:

使用JSON的方式执行同一请求:

micro api提供下面类型的http api接口

请看下面的例子

Handler负责持有并管理HTTP请求路由。

默认的handler使用从注册中心获取的端口元数据来决定指向服务的路由,如果路由不匹配,就会回退到使用”rpc” hander。在注册时,可以通过 go-api 来配置路由。

API有如下方法可以配置请求handler:

通过 /rpc 入口可以绕开handler处理器。

API处理器接收任何的HTTP请求,并且向前转发指定格式的RPC请求。

RPC处理器接收json或protobuf格式的HTTP POST请求,然后向前转成RPC请求。

代理Handler其实是内置在服务发现中的反向代理服务。

事件处理器使用go-micro的broker代理接收http请求并把请求作为消息传到消息总线上。

Web处理器是,它是内置在服务发现中的HTTP反向代理服务,支持web socket。

/rpc 端点允许绕过主handler,然后与任何服务直接会话。

示例:

更多信息查看可运行的示例: github.com/micro/examples/api

解析器,Micro使用命名空间与HTTP请求路径来动态路由到具体的服务。

API命名的空间是 go.micro.api 。可以通过指令 --namespace 或者环境变量 MICRO_NAMESPACE= 设置命名空间。

下面说一下解析器是如何使用的:

RPC解析器示例中的RPC服务有名称与方法,分别是 go.micro.api.greeter , Greeter.Hello 。

URL会被解析成以下几部分:

带版本号的API URL也可以很容易定位到具体的服务:

代理解析器只处理服务名,所以处理方案和RPC解析器有点不太一样。

URL会被解析成以下几部分:

Go微服务--常见的微服务框架

近几年诞生了很多微服务框架,比如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 中找到。

有没有人用golang实现过restful框架的实例

通过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 开发框架?:


文章标题:go语言微服务框架对比 go语言 微服务框架
文章地址:http://hbruida.cn/article/dddochd.html