golang微服务框架go-micro使用 (四) Pub/Sub

本文详细介绍了如何在Go Micro框架下实现订阅消息和消息发布。首先,展示了如何定义消息处理程序并注册,其中消息队列的topic设置为'go.micro.service.micro'。文章还探讨了订阅者的不同配置选项,如禁用自动确认、设置上下文信息等。对于消息发布,文章给出了创建发布项目的结构,并强调发布与服务中topic的一致性。通过启动发布者和服务,可以观察到消息的正常传递。
摘要由CSDN通过智能技术生成

订阅消息

首先,我们定义消息处理程序,./subscriber/micro.go:

package subscriber

import (
	"context"
	log "github.com/micro/go-micro/v2/logger"
	"micro-hello/proto/hello"
)

type Micro struct{
   }

func (e *Micro) Handle(ctx context.Context, msg *hello.Message) error {
   
	log.Info("Handler Received message: ", msg.Say)
	return nil
}

func Handler(ctx context.Context, msg *hello.Message) error {
   
	log.Info("Function Received message: ", msg.Say)
	return nil
}

方法与结构体都可以用来进行消息,只要标志是func(context.Context, v interface{}) error

方法的第二个参数是*hello.Message,micro会自动将消息解码,所以我们可以直接在方法中使用。

在准备好消息处理程序,我们要注册它,相关代码在./main.go:

// Register Struct as Subscriber
micro.RegisterSubscriber("go.micro.service.micro",
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Golang有多个微服务框架可供选择。其中一款是Go Micro,它是一款支持多种传输协议、服务发现和负载均衡的微服务框架。Go Micro提供了一系列基本服务以及相应的工具和库,包括服务注册、服务发现、RPC、消息传递等,使得微服务的开发、管理和部署变得更加方便。\[1\]另外,还有一些服务治理型的RPC框架,如Dubbo、DubboX、Motan等,它们提供了丰富的功能,包括高性能的远程调用、服务发现和治理功能,适用于大型服务的微服务化拆分和管理。然而,这些框架的缺点是语言耦合度较高,跨语言支持难度较大。\[2\]因此,有人基于Go的net/rpc框架实现了一个类似Dubbo的分布式框架,以弥补Go Micro框架在服务治理方面的不足。\[3\] #### 引用[.reference_title] - *1* [golang微服务框架](https://blog.csdn.net/weixin_42094245/article/details/130554068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [golang 微服务框架](https://blog.csdn.net/u014311799/article/details/120773991)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值