【Go 夜读】第 72 期 Go-Micro 编写微服务实战(二)

yangwen13 · · 777 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

>文章来自于:https://reading.developerlearning.cn/reading/72-2019-12-19-go-micro-2/ 分享者:舒先 ## 观看视频 https://youtu.be/7lvZhhgUB7o ## 【Go 夜读】#72 Go-Micro 编写微服务实战 往期:[第一期](https://github.com/developer-learning/night-reading-go/issues/457) 基于Go-Micro开发、实现如下服务架构: ![image](https://user-images.githubusercontent.com/20906540/70113465-3cd84a00-1694-11ea-836d-37ac0b84cbc5.png) 包含Go-Micro核心功能 ## 大纲 设计中,大致如下: 1. 使用Go-Micro编写微服务 2. 示例架构,使用微服务进行两个数学计算并返回结果 3. Go-Micro中的服务类型:Srv、Web、API 4. Broker与异步消息 5. Wrapper与日志、限流 6. 如何使用插件:示例使用RabbitMQ插件 7. Micro API网关浅讲 ## 分享者自我介绍 Micro 中国团队 [陈洪波](https://github.com/hb-chen):本期资料提供与审核,10年,成都云创新技术经理,Gopher、Phper,全栈码农,专注于微服务架构&服务网格技术的应用。 [Edward Chen](https://github.com/crazybber):本期资料提供与审核,10年+,Honeywell HBT 研发技术专家,擅长Racher/K8S/Go/C#/C++/C/Typescript,专注于大规模IOT容器化微服务架构,一线开发。 [舒先](https://github.com/printfcoder):本期资料提供与主讲,7年+金融级微服务开发经验,OPPO,Micro维护者团队成员,负责中国生态。 [徐旭](https://github.com/Allenxuxu):本期资料提供与审核,应届,趣头条工程师,喜欢开源,Gev作者,擅长网络编程与表情包。 ## 分享时间 2019-12-19 21:00:00 UTC+8 ## 分享地址 https://zoom.us/j/6923842137 ## Slides [GoogleDoc](https://docs.google.com/presentation/d/1xtZ9b2yx0kt1QWXh-mdDc3VpmlOXywFKPPLr4g8PUqg/edit?usp=sharing) ## 参考资料 [Micro中文资源](https://github.com/micro-in-cn/tutorials) ### 分享中提到的资料 [如何使用Wrapper](https://github.com/micro-in-cn/tutorials/tree/master/examples/middle-practices/micro-wrapper) [示例代码与PPT](https://github.com/micro-in-cn/tutorials/tree/master/others/share/learning-go) ### 问题 1. 什么是 Function,其场景是什么? 答:Function 是 FaaS 服务中的一种服务类型,旨在提供只响应一次的服务,响应后该服务便不会再生存,会被卸载掉。场景比较我们有时接口是用来初始化数据的,那就可以用 Function,借用容器管理,可以重复发布 Function 类的服务,让其在有限的范围内提供服务。[参考](https://micro.mu/blog/cn/2019/11/19/functions.html),[代码示例](https://github.com/micro-in-cn/tutorials/tree/master/examples/basic-practices/micro-service/function) 2. 服务聚合的场景是什么? 答:这个是业务架构的设定,当我们把服务拆分成微服务时,各服务之间处理的能力基本是独立不耦合的,那我们要把它们结合起来提供能力对外服务,就需要服务聚合。比如常见的订单查询,通常会有查询用户订单与商品详情的需要,而用户服务与商品服务又是各自独立,这便是聚合服务存在的价值。它的本质是把服务能力按业务需要整合。 3. 多个 Server 分仓库,proto 文件如何存放? 答:proto 文件本质是接口描述文件,推荐放在公共目录或公共仓库,定义后,转成不同语言的接口包,也存放在公共仓库,这样任何服务想用就去找就行了。 4. http可以替换成其它框架吗? 答:可以,go-micro 的 web 包只是为大家包装了注册到 go-micro 生态的能力,其它使用的基本是 go 原生的 http 能力。如果想使用其它框架,自行定义 go-micro 的 client(client.NewClient(opts...))来请求其它 go-micro srv 服务即可。 5. HttpTransport 为什么要改成 gRPC 的? 答:这个 Http 始终只适合放在C端的客户端,在RPC框架中使用,基于gRPC更好,总得来说,gRPC 是基于 2.0 的 HTTP 构建通信模式,它是专业的面向后台应用的通信协议。gRPC 优化了很多部分,比如一般我们用HTTP传送数据时,都是可读的 JSON 结构,而 gRPC 使用了效率更高的 protobuf 格式,HTTP 当然也可以使用 protobuf 的 Payload,但是 gRPC 已经做了,为什么我们要再重新做呢?gRPC 的缺点就是通信两端都要支持,否则没用,HTTP 则没有这个顾虑。go-micro 在这方面都是可插拔的,大家想用哪个 Transport,在命令行或 API 参数中使用即可。 ---

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

777 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传