微服务学习--micro和go-micro

djanfey djanfey     2023-04-28     238

关键词:

一、区别

  A、go-micro:微服务开发库

  B、Micro:基于Go-micro开发的运行时工具集

二、Micro工具集组件

  A、API:将http请求转向内部应用

    1、API:将http请求映射到API接口

    2、RPC:将http请求映射到RPC服务

    3、event:将http请求广播到订阅者

    4、proxy:反向代理

    5、web:支持websocket反向代理

  B、Web:web反向代理与管理控制

  C、Proxy:代理风格的请求,支持异构系统只需要瘦客户端便可调用Micro服务

    1. 注意:与Micro API不同,Proxy只处理micro风格的RPC请求,而非http请求

  D、Cli:以命令行操控Micro服务

  E、Bot:与常见的通信软件对接,负责传递消息,远程指令操作

三、Go-micro框架模块

  技术图片

  A、service:具体实例化的服务,包含两个重要组件:Client、Server

    Client:发送RPC请求与广播消息

    Server: 接收RPC请求与消费消息

  B、Broker:异步通信组件

  C、Codec:数据编码组件

  D、Registry:服务注册组件

  E、Selector:客户端均衡器

  F、Transport:同步通信组件

四、Broker异步消息组件

  技术图片

  A、Subscribe:注册关心的主题(Topic),指定队列(queue)发送消息

  B、Publish:异步将消息推送到主题(Topic)

  C、Encoding:编码消息(默认JSON格式)

五、Registry注册组件

  技术图片

 

  A、注册类型

    1. 基于通用型注册中心,如Etcd、Consul、Zookeeper、Eureka

    2. 基于网络广播,如mDNS、Gossip

    3. 基于消息中间件,如NATS

六、selector选择器组件

  技术图片

 

  A、目前支持两种算法:随机和轮询

七、Transport同步请求组件

  A、技术图片

 

  

 

 

 

  

go微服务框架go-micro深度学习registry服务的注册和发现(代码片段)

...少的功能,这样系统才能有更高的性能,更高的可用性。go-micro框架的服务发现有自己能用的接口Registry。只要实现这个接口就可以定制自己的服务注册和发现。  go-micro在客户端做的负载,典型的Balancing-awareClient模式。&nb... 查看详情

go微服务学习go-micro框架(代码片段)

...绍micro和consul,具体使用放在下一节1micro简介在了解go-micro之前,我们先来了解一下什么是micro。Micro解决了在云内外构建分布式系统的关键要求。它利用微服务体系结构模式,并提供一组作为平台构建基块的服务.Micro... 查看详情

go微服务学习go-micro框架-——micro安装(代码片段)

由于Micro3.0直接放弃维护go-micro,所以网上很多文章都是已经过时的了。那些安装方法根本装不上了。此贴主要根据官方文档进行摸索,感觉官方文档似乎也没来得及更新,所以部分操作也没能成功。就只记录一下自... 查看详情

go微服务学习go-micro框架(代码片段)

由于Micro3.0直接放弃维护go-micro,所以网上很多文章都是已经过时的了。那些安装方法根本装不上了。此贴主要根据官方文档进行摸索,感觉官方文档似乎也没来得及更新,所以部分操作也没能成功。就只记录一下自... 查看详情

go-micro微服务框架

背景  已经学习了微服务之间通信采用的通信协议,如何实现服务的注册和发现,搭建服务管理集群,以及服务与服务之间的RPC通信方式。具体的内容包括:protobuf协议,consul及docker部署consul集群,gRPC框架的使用等具体的实现... 查看详情

go微服务学习go-micro框架-——micro安装(代码片段)

由于Micro3.0直接放弃维护go-micro,所以网上很多文章都是已经过时的了。那些安装方法根本装不上了。此贴主要根据官方文档进行摸索,感觉官方文档似乎也没来得及更新,所以部分操作也没能成功。就只记录一下自... 查看详情

go微服务框架go-micro深度学习整体架构介绍(代码片段)

   产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂,变成一个大项目,如果前期项目架构没设计的不好,代码会越来越臃肿,难以维护,后期的每次产品迭代上线都会牵一发而... 查看详情

4.微服务-go-micro(代码片段)

1.介绍1.1go-micro简介?GoMicro是一个插件化的基础框架,基于此可以构建微服务,Micro的设计哲学是可插拔的插件化架构?在架构之外,它默认实现了consul作为服务发现(2019年源码修改了默认使用mdns),通过http进行通信,通过protobuf... 查看详情

(17)go-micro微服务prometheus监控(代码片段)

目录一Prometheus监控介绍1.微服务监控系统promethues介绍2.微服务监控系统promethues工作流程二Prometheus监控重要组件和重要概念1.微服务监控系统promethues重要组件2.微服务监控系统promethues重要概念三微服务监控系统grafana看板四Prometheu... 查看详情

go-micro微服务框架实践-proxy(十五)

...的请求转向那些没有直接暴露给客户端的服务。代理基于go-micro开发,也就是说它是依赖服务发现的。安装ConsulMicro代理默认是运行在8081端口下。启动代理:服务默认使用ACME安全协议可以选择性配置主机白名单命令行如果要指定... 查看详情

go微服务实战之如何使用go-micro写微服务应用

什么是微服务?什么是微服务(microservice)?这是企业界正在向计算界提出的问题。一个产品的可持续性取决于它的可修改程度。大型产品如果不能正常维护,就需要在某个时间点停机维护。而微服务架构用细化的服务取代了传... 查看详情

基于go-micro+etcd+gin微服务之服务注册与发现(代码片段)

基于go-micro+etcd+gin微服务之服务注册与发现etcd主要API1.Put(key,value)/Delete(key)$./bin/etcdctlputfoo"HelloWorld!"OK$./bin/etcdctldelkey12.Get(key)/Get(keyFrom,keyEnd)//第一种是指定单个key的查询,第二种是指定的 查看详情

基于go-micro+etcd+gin微服务之服务注册与发现(代码片段)

基于go-micro+etcd+gin微服务之服务注册与发现etcd主要API1.Put(key,value)/Delete(key)$./bin/etcdctlputfoo"HelloWorld!"OK$./bin/etcdctldelkey12.Get(key)/Get(keyFrom,keyEnd)//第一种是指定单个key的查询,第二种是指定的 查看详情

(14)go-micro微服务服务层handle开发(代码片段)

目录一Handle层开发功能说明需要完成的服务开发功能:从哪找需要开发的功能二代码编写三最后一Handle层开发功能说明需要完成的服务开发功能:登录注册查询用户信息修改信息发送注册邮件发送重置密码邮件重置密码获取权限... 查看详情

(10)go-micro微服务发送邮件(代码片段)

目录一获取QQ邮箱Pass二安装gomail三初始化发送邮件四发送注册邮件五发送重置密码邮件六最后一获取QQ邮箱Pass1.登录QQ邮箱2.点击设置,点击账户,下拉找到POP3/SMTP,点击生成授权码3.这样就获取了授权码,要妥善保管。二安装goma... 查看详情

go-micro微服务框架实践-api(十三)

...问,并且路由是基于服务发现机制向下转发的。MicroAPI在go-micro之上开发,所以它集成了服务发现、负载均衡、编码及基于RPC的通信。因为microapi内部使用了go-micro,所以它自身也是可插拔的。参考go-plugins了解对gRPC、kubernetes、etcd... 查看详情

(19)go-micro微服务filebeat收集日志(代码片段)

目录一Filebeat介绍二FileBeat基本组成三FileBeat工作原理四Filebeat如何记录文件状态:五Filebeat如何保证事件至少被输出一次六安装Filebeat七使用Filebeatfilebeat.yml编写八最后一Filebeat介绍filebeat是Beats中的一员。  Beats在是一个轻量级日... 查看详情

go-micro微服务mysql配置(代码片段)

目录一gorm介绍二gorm安装1.1下载依赖1.2使用MySQL驱动三CURD操作1.查询1.1单行查询1.2多行查询2.插入数据3.更新数据4.删除数据四初始化连接五使用六最后一gorm介绍Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不... 查看详情