>文章来自于:https://reading.developerlearning.cn/reading/62-2019-10-10-go-micro-part1/
分享者:printfcoder
## 观看视频
https://youtu.be/ucTwnDB1m2U
## 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
## 进一步阅读的材料
- [Micro 项目](https://github.com/micro)
- [Micro 文档](https://micro.mu/docs/cn/)
- [示例项目](https://github.com/micro-in-cn/tutorials/tree/master/examples/basic-practices)
- [PPT](https://docs.google.com/presentation/d/1xMOwC_Oa6MRluk73K1QgjTqcgeuBUuiGp4G4DfhpnIs/edit?usp=sharing)
请点击:https://github.com/developer-learning/reading-go/issues/457
## Q&A 总结
1. micro 是Restful吗?
答:go-micro并不是一个web框架,不过go-micro中有web模块可以提供restful风格服务。
2. srv里面是包含client和server吗?
答:每一个服务都会有client和server,服务要能调用其它服务就需要一个client,能接收请求就需要server。
3. 为什么异构service互相调用一定要经过proxy,rpc不应该是编码和transport约定好本身就支持异构调用吗?
答:micro proxy并不支持互调,它提供一个go-micro特性的代理,其它非go-micro风格的服务通过这个代理加入go-micro体系,便可以通过proxy被其它服务调用,可以是http、grpc等。
我会在未来几天增加一篇专门介绍micro的文档在这里:[micro proxy](https://github.com/micro-in-cn/tutorials/tree/master/examples/senior-practices/micro-proxy)
4. micro与k8s
答:这是一个常见的问题,micro会常与k8s、istio比较或联系,这是不公平的也是不合理的。主要在这么几个方面:
a) micro与k8s同时起步,或者说micro更早些,k8s的产生是基于容器技术的兴起,而容器需要管理与编排。K8s确实给大型服务集群提供了极好的运维平台,但是它在一定适度上并不是面向开发人员的工具,更多是面向运维人员的。
b) 基于a,**Micro是面向开发人员的微服务框架**,如果人们用了K8s,那应该就不要用micro。
c) 绝大部分开发者可以试问内心的需求:自己当下的服务运行需求,真的需要K8s吗?说句傲娇的话,如果不能看到micro的价值,那请不要使用micro,在K8s中使用micro,就像皇宫的大内总管,少了件最重要的东西。
5. 为啥要 consul 换成 etcd
答:从4年的结合Consul经验来说,它工作得比较正常但并不尽如人意,它有太多功能我们用不到。consul更多是面向Hashicorp体系的服务,而Etcd则更纯粹是服务注册组件,是的,我们需要更纯粹的中间件。更多可以参考一篇不太细致的博文:[deprecating-consul](https://micro.mu/blog/2019/10/04/deprecating-consul.html)
6. client 和server可以在一个go文件中吗?
答:可以,但是为什么要这么做哩?
7. go-micro中如何使用链路追踪?
答:在go-micro中提供了装饰器Wrapper可以集成任何支持go语言的链路追踪插件。见:[Tracing](https://github.com/micro-in-cn/tutorials/tree/master/examples/senior-practices/tracing)
8. Go-Micro 设计初衷、目标以及未来发展方向?
答:Go-Micro 设计初衷是做一套面向开发人员的微服务框架,她要使用简单、扩展简单、管理简单。但是仍然有很长的路要走,从技术上讲,目标是要发展成Java界的Spring Cloud。
关于未来的发展,一个技术终究是要赚钱的,Micro公司的开发与发展目标,[详见](https://github.com/micro/development)与[Network](https://github.com/micro/development/blob/master/network.md)
---
有疑问加站长微信联系(非本文作者)