魔扣论坛

魔扣源码论坛业务
查看: 2456|回复: 15

纽约时报开发出基于Go语言的微服务工具包Gizmo

[复制链接]

该用户从未签到

19

主题

0

回帖

2

积分

魔扣新手

Rank: 1

魔扣币
2
贡献
2
威望
0
发表于 2018-8-12 22:25:30 | 显示全部楼层 |阅读模式
魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
纽约时报(NYT)开发团队已经发布了Gizmo,这是一个基于Go语言的开源微服务工具包,这个工具包带有可配置功能策略和基础的交互端口,能给用户提供标准化的配置、日志、质量检查以及端点指标等功能来提高服务质量期望值。
根据NYT官方网上一篇开发团队写的关于代码和开发的介绍,开发团队在过去的三年里完全采用了Go编程语言,Go语言在很多开发任务里起到了大作用,尤其是在构建JSON API过程中。专注于创建基于API的Go服务,而创建Gizmo微服务工具包是必不可少的中间环节,现在这一工具包已经开源出来供大家使用。
InfoQ随后采访到了NYT首席软件工程师JP Robinson,问了一些关于创建微服务工具包的动机,因为这一动机直接促使了基于Go语言的微服务框架的发展前景,以及未来的走向。
InfoQ:先简单介绍一下Gizmo吧,以及创建这一框架的初衷?
Robinson: Gizmo是一个集合,集中了可整合的工具、功能以及交互页面来帮助开发者构建Go服务,具体来说就是将API和pubsub daemons集合在一起。这个工具包刚开始的时候是由一小群开发者发起的,目的是为NYT构建一个专属邮件平台。
InfoQ:相比较用起来更简单更标准的Go库,或其他新兴的Go微服务框架而言,Gizmo做了哪些简化来完成编写微服务的?
Robinson: Gizmo首先能够打动开发者,让开发者有开发感觉的就是它的标准库,但是增加附加功能只会降低微服务成功实施的可能性。举例来说,Gizmo有一个缠绕着http.Handlers的中间件,这个中间件的终端就是http.HandlerFuncs。这样的设计就可以帮助开发者来编写看起来像是标准库的代码,只是没想到他们意外获得了宝贝,Gizmo能给自动收集关于代码状态和请求执行时间的度量值。
重新使用标准库也赋予了Go语言开发者快速浏览代码并判断运行状态如何。另一个优点就是打开Gizmo之后能够连接到各种依附于标准库接口的现有开源工具。一个很好的例子就是Gizmo在“github.com/NYTimes/gziphandler”里的使用。
InfoQ:您之前说过Gizmo是向Peter Bourgon开发的Go Kit最好的致意,能解释一下吗?对开发者了解这两个框架有什么好处?
Robinson:当我第一次看到Peter Bourgon介绍Go Kit的时候,我特别激动,立刻开始查看README里的相关项目,寻找是否有些东西可以在内部推广使用。NYT有多种类型的服务,绝大多数服务都是基于JSON和HTTP服务端的,所以,表单里以RPC(Remote Procedure Call)为中心的服务框架不可能再做到开箱即用。
同时我也感觉到一些可用的框架正在抽象出标准库,因此我们需要一些简单、高可用的东西。也正是从那个时候起,我决定采用Go Kit:
重新执行功能可以用来包装现在的程序包。Gizmo的SimpleServer真的只是一个由Gorilla Toolkit内部的mux、context、logrus、go-metrics和标准库组成的服务器。RPCServer同样是由这些东西组成的,只不过多了一个gRPC。
支持消息传递模式不同于RPC。Gizmo的PubSub程序包提供了简单的Publisher和Subscriber接口,同时有两种实现方式。
对过程监控有不一样的见解。Gizmo服务器暴露出一个可配置和可扩展的质量检查端点。我们期望服务能够发现系统并通过它们和Gizmo进行互动。
在配置传递上有优势。Gizmo服务器和PubSub程序包和配置程序包严重耦合。同时我们还发现,让这个程序包灵活快速跨团队协调服务器完全不一样,但只要获得配置,我们的起点就更高。
从这里来看,他们的想法是在Gizmo的服务器程序包里构建一个GoKitServer或GoKitService。我的想法是,希望这个服务器能够把Go Kit端点和Gizmo里现有的服务器和服务接口工具结合起来。
InfoQ:和GOA框架相比起来,Gizmo似乎和API设计关系并不大。这背后的基本原理是什么?
Robinson:我发现既要保持工具包简单又要遵守Go语言对软件开发的灵活性,同时还得确保学习工具包的难易程度平缓。其实构建一个Gizmo应用程序并在现实工作环境中使用它,会遇到很多没有解决方法的问题。要想知道如何构建、测试、使用Gizmo应用程序的话,可以看这里的博客open.blogs.nytimes.com。
InfoQ:如何让感兴趣的开发者成为Gizmo项目的贡献者?
Robinson: NYT目前依然过于依赖SimpleService和JSONServices。我们倒是愿意帮助一些人尝试着使用GoKitServer,这是一个由github.com/julienschmidt/httprouter组成的FastSimpleServer,也有可能是一个由Hugo模板工具组成的WebServer。另外,Kafka pubsub的实现仍然处于试验阶段,还需要更多的测试。
这些任务多的有点吓人,所以我们欣然接受能够提高测试水平的任何帮助,最近我们将ContextService和ContextHandlers添加到了工具包里。我也鼓励人们尝试使用这些工具包,如果发现bug的话最好能创建问题描述,当然也欢迎用户在别的论坛渠道上反馈对Gizmo的建议及改进方式。
   


来源链接: http://www.infoq.com/cn/news/2016/02/gizmo-microservices-toolkit

该用户从未签到

4

主题

245

回帖

494

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
245
贡献
245
威望
0
发表于 2018-8-23 14:22:37 | 显示全部楼层
男生没有主动找女生,那是说明他是真的不想理她了。女生没有主动找男生,是因为在等他找她。',

该用户从未签到

4

主题

230

回帖

464

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
230
贡献
230
威望
0
发表于 2018-8-26 10:13:14 来自手机 | 显示全部楼层
有你真好!看到你来让我高兴极了!珍惜网络中遇见的您——我的朋友!珍惜我们之间的真情!时刻把你关怀!魔扣源码论坛上梦中人祝朋友周末愉快!

该用户从未签到

2

主题

240

回帖

482

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
240
贡献
240
威望
0
发表于 2019-1-4 15:48:57 来自手机 | 显示全部楼层
好,很好,非常好!

该用户从未签到

1

主题

274

回帖

549

积分

高级魔扣

Rank: 4

魔扣币
274
贡献
274
威望
0
发表于 2019-5-16 15:42:19 | 显示全部楼层
边撸边过

该用户从未签到

2

主题

247

回帖

497

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
248
贡献
248
威望
0
发表于 2019-6-10 20:33:58 | 显示全部楼层
留言是一束鲜花,为你带来芬芳;留言是一缕阳光,给你送去温暖;留言是我的真诚,送出魔扣源码论坛虔诚祈福;留言是我的心语,道出美好祝愿。

该用户从未签到

2

主题

258

回帖

520

积分

高级魔扣

Rank: 4

魔扣币
260
贡献
260
威望
0
发表于 2019-9-14 18:49:27 | 显示全部楼层
这个世界上我只相信两个人,一个是我,另一个不是你-魔扣源码论坛。

该用户从未签到

1

主题

279

回帖

559

积分

高级魔扣

Rank: 4

魔扣币
279
贡献
279
威望
0
发表于 2019-9-16 18:09:19 | 显示全部楼层
缘份存在心里是浪漫的梦境,思念藏在心底是芬芳的记忆,魔扣源码论坛上的友情放在心上是甜蜜的旋律,朋友记在心头是温馨的美丽。

该用户从未签到

2

主题

265

回帖

532

积分

高级魔扣

Rank: 4

魔扣币
265
贡献
265
威望
0
发表于 2019-9-19 19:25:05 | 显示全部楼层
围观 围观 沙发在哪里!!!

该用户从未签到

0

主题

248

回帖

496

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
248
贡献
248
威望
0
发表于 2019-11-14 19:37:00 | 显示全部楼层
这么强,支持楼主,佩服
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 联系我们
  • 新浪微博 :
  • 在线客服 :魔扣科技 
  • 源码QQ群 :魔扣源码论坛官方总群
  • 联系邮箱 :charlin#morko.net
  • 微信扫一扫
快速回复 返回顶部 返回列表