第 62 期 2019-10-10 Go-Micro 微服务框架(一)

观看视频

分享者

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://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