Go夜读 第 62 期 Go-Micro 微服务框架 Part 1

mai_yang for Go 夜读 · 2020年02月13日 · 46 次阅读

文章来自于:https://reading.developerlearning.cn/reading/62-2019-10-10-go-micro-part1/

分享者:printfcoder

观看视频

Go 夜读第 62 期 Go-Micro 微服务框架 Part 1

内容简介

介绍 Go-Micro 的设计及其重要组件

内容大纲

  • 什么是 Micro
  • Micro 风格服务架构
  • Go-Micro 框架的设计
  • Go-Micro 主要的组件
  • Go-Micro 的插件化

分享地址

2019-10-10 21:00 ~ 22:00, UTC+8

https://zoom.us/j/6923842137

进一步阅读的材料

请点击:https://github.com/developer-learning/reading-go/issues/457

Q&A 总结

  1. micro 是 Restful 吗?

答:go-micro 并不是一个 web 框架,不过 go-micro 中有 web 模块可以提供 restful 风格服务。

  1. srv 里面是包含 client 和 server 吗?

答:每一个服务都会有 client 和 server,服务要能调用其它服务就需要一个 client,能接收请求就需要 server。

  1. 为什么异构 service 互相调用一定要经过 proxy,rpc 不应该是编码和 transport 约定好本身就支持异构调用吗?

答:micro proxy 并不支持互调,它提供一个 go-micro 特性的代理,其它非 go-micro 风格的服务通过这个代理加入 go-micro 体系,便可以通过 proxy 被其它服务调用,可以是 http、grpc 等。

我会在未来几天增加一篇专门介绍 micro 的文档在这里:micro proxy

  1. micro 与 k8s

答:这是一个常见的问题,micro 会常与 k8s、istio 比较或联系,这是不公平的也是不合理的。主要在这么几个方面:

a) micro 与 k8s 同时起步,或者说 micro 更早些,k8s 的产生是基于容器技术的兴起,而容器需要管理与编排。K8s 确实给大型服务集群提供了极好的运维平台,但是它在一定适度上并不是面向开发人员的工具,更多是面向运维人员的。

b) 基于 a,Micro 是面向开发人员的微服务框架,如果人们用了 K8s,那应该就不要用 micro。

c) 绝大部分开发者可以试问内心的需求:自己当下的服务运行需求,真的需要 K8s 吗?说句傲娇的话,如果不能看到 micro 的价值,那请不要使用 micro,在 K8s 中使用 micro,就像皇宫的大内总管,少了件最重要的东西。

  1. 为啥要 consul 换成 etcd

答:从 4 年的结合 Consul 经验来说,它工作得比较正常但并不尽如人意,它有太多功能我们用不到。consul 更多是面向 Hashicorp 体系的服务,而 Etcd 则更纯粹是服务注册组件,是的,我们需要更纯粹的中间件。更多可以参考一篇不太细致的博文:deprecating-consul

  1. client 和 server 可以在一个 go 文件中吗?

答:可以,但是为什么要这么做哩?

  1. go-micro 中如何使用链路追踪?

答:在 go-micro 中提供了装饰器 Wrapper 可以集成任何支持 go 语言的链路追踪插件。见:Tracing

  1. Go-Micro 设计初衷、目标以及未来发展方向?

答:Go-Micro 设计初衷是做一套面向开发人员的微服务框架,她要使用简单、扩展简单、管理简单。但是仍然有很长的路要走,从技术上讲,目标是要发展成 Java 界的 Spring Cloud。

关于未来的发展,一个技术终究是要赚钱的,Micro 公司的开发与发展目标,详见Network


暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册