观看视频
分享者
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 总结
- micro 是Restful吗?
答:go-micro并不是一个web框架,不过go-micro中有web模块可以提供restful风格服务。
- srv里面是包含client和server吗?
答:每一个服务都会有client和server,服务要能调用其它服务就需要一个client,能接收请求就需要server。
- 为什么异构service互相调用一定要经过proxy,rpc不应该是编码和transport约定好本身就支持异构调用吗?
答:micro proxy并不支持互调,它提供一个go-micro特性的代理,其它非go-micro风格的服务通过这个代理加入go-micro体系,便可以通过proxy被其它服务调用,可以是http、grpc等。
我会在未来几天增加一篇专门介绍micro的文档在这里:micro proxy
- micro与k8s
答:这是一个常见的问题,micro会常与k8s、istio比较或联系,这是不公平的也是不合理的。主要在这么几个方面:
a) micro与k8s同时起步,或者说micro更早些,k8s的产生是基于容器技术的兴起,而容器需要管理与编排。K8s确实给大型服务集群提供了极好的运维平台,但是它在一定适度上并不是面向开发人员的工具,更多是面向运维人员的。
b) 基于a,Micro是面向开发人员的微服务框架,如果人们用了K8s,那应该就不要用micro。
c) 绝大部分开发者可以试问内心的需求:自己当下的服务运行需求,真的需要K8s吗?说句傲娇的话,如果不能看到micro的价值,那请不要使用micro,在K8s中使用micro,就像皇宫的大内总管,少了件最重要的东西。
- 为啥要 consul 换成 etcd
答:从4年的结合Consul经验来说,它工作得比较正常但并不尽如人意,它有太多功能我们用不到。consul更多是面向Hashicorp体系的服务,而Etcd则更纯粹是服务注册组件,是的,我们需要更纯粹的中间件。更多可以参考一篇不太细致的博文:deprecating-consul
- client 和server可以在一个go文件中吗?
答:可以,但是为什么要这么做哩?
- go-micro中如何使用链路追踪?
答:在go-micro中提供了装饰器Wrapper可以集成任何支持go语言的链路追踪插件。见:Tracing
- Go-Micro 设计初衷、目标以及未来发展方向?
答:Go-Micro 设计初衷是做一套面向开发人员的微服务框架,她要使用简单、扩展简单、管理简单。但是仍然有很长的路要走,从技术上讲,目标是要发展成Java界的Spring Cloud。