在途中

Good Luck To You!

Go Micro 初探及其底层架构

介绍了微服务的背景和概念、总体设计、适用场景、服务拆分以及要提前做好的技术保障,接下来我们正式开始介绍微服务的开发。目前,市面上已经有很多符合我们前面介绍的满足微服务架构的开源 RPC 框架,比如 Dubbo、Spring Cloud、gRPC、Thrift 等,但由于本系列教程基于 PHP + Go 进行开发,所以,我们选择一个基于 Go 语言生态里的 Go Micro 框架作为微服务开发框架。

Go Micro 简介与设计理念

Go Micro 是一个基于 Go 语言编写的、用于构建微服务的基础框架,提供了分布式开发所需的核心组件,包括 RPC 和事件驱动通信等。

它的设计哲学是「可插拔」的插件化架构,其核心专注于提供底层的接口定义和基础工具,这些底层接口可以兼容各种实现。例如 Go Micro 默认通过 consul 进行服务发现,通过 HTTP 协议进行通信,通过 protobuf 和 json 进行编解码,以便你可以基于这些开箱提供的组件快速启动,但是如果需要的话,你也可以通过符合底层接口定义的其他组件替换默认组件,比如通过 etcd 或 zookeeper 进行服务发现,这也是插件化架构的优势所在:不需要修改任何底层代码即可实现上层组件的替换。

Go Micro 基础架构介绍

Go Micro 框架的基础架构如下,由 8 个核心接口组成,每个接口都有默认实现:

  • 最顶层的 Service 接口是构建服务的主要组件,它把底层的各个包需要实现的接口,做了一次封装,包含了一系列用于初始化 Service 和 Client 的方法,使我们可以很简单的创建一个 RPC 服务;

  • Client 是请求服务的接口,从 Registry 中获取 Server 信息,然后封装了 Transport 和 Codec 进行 RPC 调用,也封装了 Brocker 进行消息发布,默认通过 RPC 协议进行通信,也可以基于 HTTP 或 gRPC;

  • Server 是监听服务调用的接口,也将以接收 Broker 推送过来的消息,需要向 Registry 注册自己的存在与否,以便客户端发起请求,和 Client 一样,默认基于 RPC 协议通信,也可以替换为 HTTP 或 gRPC;

  • Broker 是消息发布和订阅的接口,默认实现是基于 HTTP,在生产环境可以替换为 Kafka、RabbitMQ 等其他组件实现;

  • Codec 用于解决传输过程中的编码和解码,默认实现是 protobuf,也可以替换成 json、mercury 等;

  • Registry 用于实现服务的注册和发现,当有新的 Service 发布时,需要向 Registry 注册,然后 Registry 通知客户端进行更新,Go Micro 默认基于 consul 实现服务注册与发现,当然,也可以替换成 etcd、zookeeper、kubernetes 等;

  • Selector 是客户端级别的负载均衡,当有客户端向服务端发送请求时,Selector 根据不同的算法从 Registery 的主机列表中得到可用的 Service 节点进行通信。目前的实现有循环算法和随机算法,默认使用随机算法,另外,Selector 还有缓存机制,默认是本地缓存,还支持 label、blacklist 等方式;

  • Transport 是服务之间通信的接口,也就是服务发送和接收的最终实现方式,默认使用 HTTP 同步通信,也可以支持 TCP、UDP、NATS、gRPC 等其他方式。

Go Micro 官方创建了一个 Plugins 仓库,用于维护 Go Micro 核心接口支持的可替换插件:

接口支持组件
BrokerNATS、NSQ、RabbitMQ、Kafka、Redis 等
ClientgRPC、HTTP
CodecBSON、Mercury 等
RegistryEtcd、NATS、Kubernetes、Eureka 等
SelectorLabel、Blacklist、Static 等
ServergRPC、HTTP
TransportNATS、gPRC、RabbitMQ、TCP、UDP
Wrapper中间件:熔断、限流、追踪、监控

各个组件接口之间的关系可以通过下图串联:

小结

通过上述介绍,可以看到,Go Micro 简单轻巧、易于上手、功能强大、扩展方便,是基于 Go 语言进行微服务架构时非常值得推荐的一个 RPC 框架,基于其核心功能及插件,我们可以轻松解决之前讨论的微服务架构引入的需要解决的问题:

  • 服务接口定义:通过 Transport、Codec 定义通信协议及数据编码;

  • 服务发布与调用:通过 Registry 实现服务注册与订阅,还可以基于 Selector 提高系统可用性;

  • 服务监控、服务治理、故障定位:通过 Plugins Wrapper 中间件来实现。

接下来,我们将基于 Go Micro 微服务框架演示如何基于 PHP + Go 落地微服务架构。


  • 评论列表
  •  游客
     发布于 2024-07-07 01:38:34  回复该评论
  • 今天的心情很不错啊http://vodl.e8jes3c.cn
  •  游客
     发布于 2024-07-07 09:17:05  回复该评论
  • 谢谢楼主的分享!http://u266.jkd4whd.cn
  •  游客
     发布于 2024-07-07 11:42:09  回复该评论
  • 楼主的帖子越来越有深度了!http://pma7r.0233l1b.cn
  •  游客
     发布于 2024-07-07 19:45:27  回复该评论
  • 今天怎么了,什么人都出来了!http://taoyuansj.com/news/pbfv.html
  •  游客
     发布于 2024-07-09 01:20:57  回复该评论
  • 楼主是男的还是女的?http://y5lb0u.gzbrsoft.com
  •  游客
     发布于 2024-07-09 01:28:45  回复该评论
  • 楼主的等级很高啊!http://ls6c2h.gzbrsoft.com
  •  游客
     发布于 2024-07-09 02:07:21  回复该评论
  • 写得实在太好了,我唯一能做的就是默默顶贴!http://aavj2w.hxdbzqc.com
  •  游客
     发布于 2024-07-09 02:09:28  回复该评论
  • 楼主就是我的榜样哦http://ctcxs3.hxdbzqc.com
  •  游客
     发布于 2024-07-09 04:32:45  回复该评论
  • 鸟大了,什么林子都敢进啊!http://www.gxmlm.com/category-11.html
  •  游客
     发布于 2024-07-09 09:00:24  回复该评论
  • 勤奋灌水,天天向上!https://www.ejy365.com/purchase/list
  •  游客
     发布于 2024-07-09 09:40:42  回复该评论
  • 楼主发几张靓照啊!http://z0x.swinesite.com
  •  游客
     发布于 2024-07-09 09:51:07  回复该评论
  • 看在楼主的面子上,认真回帖!http://2ltbn0.swinesite.com
  •  游客
     发布于 2024-07-09 09:55:43  回复该评论
  • 学习雷锋,好好回帖!http://m575.swinesite.com
  •  游客
     发布于 2024-07-09 11:37:51  回复该评论
  • 楼主很有激情啊!http://e6k86.hxdbzqc.com
  •  游客
     发布于 2024-07-09 13:01:45  回复该评论
  • 经典,收藏了!http://80e3rb.hxdbzqc.com
  •  游客
     发布于 2024-07-09 16:54:11  回复该评论
  • 我只看看不说话。。。http://xxxzw.lyyingkelai.com
  •  游客
     发布于 2024-07-09 19:17:49  回复该评论
  • 论坛的人气不行了!http://t0x.lyyingkelai.com
  •  游客
     发布于 2024-07-09 20:16:00  回复该评论
  • 很多天不上线,一上线就看到这么给力的帖子!http://8dr2gy.lyyingkelai.com
  •  游客
     发布于 2024-07-09 20:56:20  回复该评论
  • 看在楼主的面子上,认真回帖!http://jpnzj1.lyyingkelai.com
  •  游客
     发布于 2024-07-09 21:03:16  回复该评论
  • 楼主你想太多了!http://1r1zkw.lyyingkelai.com
  •  游客
     发布于 2024-07-10 01:55:59  回复该评论
  • 楼主的文笔不错!http://51cf3e.j6cq.com
  •  游客
     发布于 2024-07-10 04:57:13  回复该评论
  • 在哪里跌倒,就在那里多爬一会儿!http://b96vtg.swinesite.com
  •  游客
     发布于 2024-07-10 05:08:55  回复该评论
  • 看帖回帖一条路!http://m1lqyf.swinesite.com
  •  游客
     发布于 2024-07-10 09:29:22  回复该评论
  • 经典,收藏了!http://7jl6.shu-oishi.com
  •  游客
     发布于 2024-07-10 13:11:15  回复该评论
  • 这篇文章真是让人受益匪浅!http://wm27.shu-oishi.com
  •  游客
     发布于 2024-07-10 20:00:05  回复该评论
  • 收藏了,楼主加油!http://yb75j.bjtdqh.com.cn
  •  游客
     发布于 2024-07-10 20:03:20  回复该评论
  • 今天过得很不爽!http://rth.hzstmy.com
  •  游客
     发布于 2024-07-10 21:07:28  回复该评论
  • 很多天不上线,一上线就看到这么给力的帖子!http://x45k.hzstmy.com
  •  游客
     发布于 2024-07-10 22:19:52  回复该评论
  • 楼上的真不讲道理!http://ss75.ml03.cn
  •  游客
     发布于 2024-07-11 07:07:12  回复该评论
  • 顶顶更健康!http://p7x2l.bjtdqh.com.cn
  •  游客
     发布于 2024-07-11 09:45:54  回复该评论
  • 不错哦,楼主这是要火的节奏啊!http://awf0og.bjtdqh.com.cn
  •  游客
     发布于 2024-07-11 11:31:30  回复该评论
  • 楼主写的很经典!http://ey17zl.whyazb.com
  •  游客
     发布于 2024-07-11 12:06:55  回复该评论
  • 楼上的能详细介绍一下么?http://www.qkl183.com
  •  游客
     发布于 2024-07-11 12:09:46  回复该评论
  • 楼主发几张靓照啊!http://www.gymcj.cn
  •  游客
     发布于 2024-07-11 13:24:56  回复该评论
  • 很多天不上线,一上线就看到这么给力的帖子!http://6983.aijiankang99.cn
  •  游客
     发布于 2024-07-11 13:35:28  回复该评论
  • 东方不败还是灭绝师太啊?http://lco.zzcainuan.cn
  •  游客
     发布于 2024-07-11 13:48:56  回复该评论
  • 楼主的帖子提神醒脑啊!http://8tcwe.chunribeilei.com
  •  游客
     发布于 2024-07-11 13:57:14  回复该评论
  • 楼主很有艺术范!http://ufp46.isozx.cn
  •  游客
     发布于 2024-07-11 14:01:20  回复该评论
  • 回帖也有有水平的!http://5pz8pl.xayongxing.com
  •  游客
     发布于 2024-07-11 14:11:17  回复该评论
  • 最近回了很多帖子,都没人理我!http://89unz.aijiankang99.cn
  •  游客
     发布于 2024-07-11 14:15:38  回复该评论
  • 知识就是力量啊!http://jvr.3d5q.com
  •  游客
     发布于 2024-07-11 14:24:40  回复该评论
  • 十分赞同楼主!http://ogicq0.sanxinyl.cn
  •  游客
     发布于 2024-07-11 14:39:19  回复该评论
  • 被楼主的逻辑打败了!http://1bh.zzcainuan.cn
  •  游客
     发布于 2024-07-11 14:40:13  回复该评论
  • 视死如归的架势啊!http://9v12a.sh-jinsl.com/07/5.html
  •  游客
     发布于 2024-07-11 14:43:54  回复该评论
  • 灌水不是我的目的!http://p955.fengchun.net
  •  游客
     发布于 2024-07-11 14:46:51  回复该评论
  • 这里的资源非常丰富,帮助我解决了很多问题。http://www.qkl183.com
  •  游客
     发布于 2024-07-11 14:47:42  回复该评论
  • 楼主很有经验啊!http://9jt67p.szhjjx.net.cn
  •  游客
     发布于 2024-07-11 14:53:39  回复该评论
  • 投楼主一票,不用谢哦!http://s65.aijiu360.cn
  •  游客
     发布于 2024-07-11 15:24:41  回复该评论
  • 楼主是在找骂么?http://57oysc.xayongxing.com
  •  游客
     发布于 2024-07-11 15:43:15  回复该评论
  • 感谢楼主的推荐!http://uk72.xayongxing.com
  •  游客
     发布于 2024-07-11 15:57:40  回复该评论
  • 好好学习楼主的帖子!http://www.qkl183.com
  •  游客
     发布于 2024-07-11 16:05:41  回复该评论
  • 宇宙第一贴诞生了!http://r7nd.haonuodigital.com
  •  游客
     发布于 2024-07-11 16:58:21  回复该评论
  • 楼主是一个典型的文艺青年啊!http://wf4.yunzongcn.com
  •  游客
     发布于 2024-07-11 17:03:10  回复该评论
  • 楼主是在找骂么?http://zs73.szhjjx.net.cn
  •  游客
     发布于 2024-07-11 17:03:39  回复该评论
  • 读了楼主的帖子,顿时马桶就通了。。。http://8rv050.szhjjx.net.cn
  •  游客
     发布于 2024-07-11 17:19:02  回复该评论
  • 楼主内心很强大!http://is5.fengchun.net
  •  游客
     发布于 2024-07-11 17:24:23  回复该评论
  • 看帖、回帖、拿分、走人http://ov1a5.biocrownjs.com.cn
  •  游客
     发布于 2024-07-11 17:33:24  回复该评论
  • 有机会找楼主好好聊聊!http://r8kvu.x5xz.com
  •  游客
     发布于 2024-07-11 17:39:19  回复该评论
  • 感觉不错!http://wlwk3.eaketoken.com/9/4.html
  •  游客
     发布于 2024-07-11 17:40:14  回复该评论
  • 网页的加载速度非常快,不会影响用户体验。http://3j4k.yunzongcn.com
  •  游客
     发布于 2024-07-11 17:41:45  回复该评论
  • 好东西,学习学习!http://www.qkl183.com
  •  游客
     发布于 2024-07-11 17:45:17  回复该评论
  • 青春不在了,青春痘还在!http://r29i.gzzaqj.cn
  •  游客
     发布于 2024-07-11 17:49:36  回复该评论
  • 这篇文章真是让人受益匪浅!http://16g.bipaq.com
  •  游客
     发布于 2024-07-11 18:20:33  回复该评论
  • 最近压力山大啊!http://5oibf.tnswkj.com
  •  游客
     发布于 2024-07-11 18:33:07  回复该评论
  • 我对楼主的敬仰犹如滔滔江水绵延不绝!http://khrc3b.rzlbmjd.com
  •  游客
     发布于 2024-07-11 18:38:45  回复该评论
  • 每次看到楼主的帖子都有惊吓!http://ny8ew.bqdj.org
  •  游客
     发布于 2024-07-11 18:39:06  回复该评论
  • 楼主是好人!http://z165e.wntqzwfwzx.com/0/5.html
  •  游客
     发布于 2024-07-11 18:56:44  回复该评论
  • 知识就是力量啊!http://ng3ovq.ooocr.com
  •  游客
     发布于 2024-07-11 19:41:05  回复该评论
  • 今天上网不回帖,回帖就回精华帖!http://q2u2.zjdimont.com
  •  游客
     发布于 2024-07-11 20:10:48  回复该评论
  • 支持一个http://dv7ao.jiagew627.com/31/4.html
  •  游客
     发布于 2024-07-11 20:11:10  回复该评论
  • 我只看看不说话。。。http://www.qkl183.com
  •  游客
     发布于 2024-07-11 20:24:31  回复该评论
  • 大神就是大神,这么经典!http://1g3n0.1yangzhu.com
  •  游客
     发布于 2024-07-11 20:29:30  回复该评论
  • 很经典,收藏了!http://r5i2.dg-guanfeng.com
  •  游客
     发布于 2024-07-11 20:41:11  回复该评论
  • 收藏了,以后可能会用到!http://oadgt.dglizhong.com.cn
  •  游客
     发布于 2024-07-11 20:41:16  回复该评论
  • 顶!顶!顶!http://9thop.dglizhong.com.cn
  •  游客
     发布于 2024-07-11 20:50:26  回复该评论
  • 楼上的别说的那么悲观好吧!http://www.qkl183.com
  •  游客
     发布于 2024-07-11 20:52:28  回复该评论
  • 大神就是大神,这么经典!http://y0w.hasbmj.com
  •  游客
     发布于 2024-07-11 21:14:20  回复该评论
  • 楼主的文笔不错!http://jr2.fch58.com
  •  游客
     发布于 2024-07-11 21:18:06  回复该评论
  • 观点鲜明,立场坚定,作者态度明确。http://mvv4bm.fch58.com
  •  游客
     发布于 2024-07-11 21:27:17  回复该评论
  • 突然觉得楼主说的很有道理,赞一个!http://jaf.chinafenghou.com
  •  游客
     发布于 2024-07-11 21:46:05  回复该评论
  • 今天上网不回帖,回帖就回精华帖!http://hf3.hmdzyy.cn
  •  游客
     发布于 2024-07-11 21:48:06  回复该评论
  • 好东西,赞一个!http://jbmno.ccsylxz.com/2024/3.html
  •  游客
     发布于 2024-07-11 22:27:16  回复该评论
  • 楼主的头像是本人吗?http://lhj.hmdzyy.cn
  •  游客
     发布于 2024-07-11 22:42:06  回复该评论
  • 读了楼主的帖子,顿时马桶就通了。。。http://p4c3v.cywudao.com/20240711/4.html
  •  游客
     发布于 2024-07-11 23:10:45  回复该评论
  • 楼上的真不讲道理!http://1ym5.aijiankang99.cn
  •  游客
     发布于 2024-07-11 23:11:09  回复该评论
  • 关注一下!http://1ko8y.xiaoyuche168.com/2024/5.html
<< 1 2 3 4 5 6 7 8 9 10 > >>

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright 11taotao.com Rights Reserved.