go-queue 之 kq 的生产者不支持配置SASL认证信息

go-queue 之 kq 的生产者不支持配置SASL认证信息

go-queue​ 的生产者写入时,没有支持配置SASL认证,官方的示例:

type ServiceContext struct {Config         config.Config.....KqPusherClient *kq.Pusher
}func NewServiceContext(c config.Config) *ServiceContext {return &ServiceContext{Config:         c,.....KqPusherClient: kq.NewPusher(c.KqPusherConf.Brokers, c.KqPusherConf.Topic),}
}

NewPusher​ 的实现:

func NewPusher(addrs []string, topic string, opts ...PushOption) *Pusher {producer := &kafka.Writer{Addr:        kafka.TCP(addrs...),Topic:       topic,Balancer:    &kafka.LeastBytes{},Compression: kafka.Snappy,}// ...
}

go-queue​ 在 segmentio/kafka-go​ 这个包基础上,使用 go-zero​ 进行了上层统一封装,看了下segmentio/kafka-go​包的使用说明,在创建​&kafka.Writer​对象的时候,支持通过​Transport​来配置SASL认证信息:

mechanism, err := scram.Mechanism(scram.SHA512, "username", "password")
if err != nil {panic(err)
}// Transports are responsible for managing connection pools and other resources,
// it's generally best to create a few of these and share them across your
// application.
sharedTransport := &kafka.Transport{SASL: mechanism,
}w := kafka.Writer{Addr:      kafka.TCP("localhost:9092", "localhost:9093", "localhost:9094"),Topic:     "topic-A",Balancer:  &kafka.Hash{},Transport: sharedTransport,
}

所以对go-queue​的NewPusher​源码做了部分更改:

func NewPusher(addrs []string, topic string, opts ...PushOption) *Pusher {producer := &kafka.Writer{Addr:        kafka.TCP(addrs...),Topic:       topic,Balancer:    &kafka.LeastBytes{},Compression: kafka.Snappy,Transport: &kafka.Transport{ // 添加的部分SASL: plain.Mechanism{Username: "username", // SASL 用户名Password: "password", // SASL 密码},},}// ...
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/893282.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小区楼道电动车监控识别预警系统

楼道电动车监控识别预警系统采用机器视觉图像感知技术,通过人工智能机器深度学习能力,对自行车、电动车和摩托车精确检测、跟踪、识别,实现对非机动车检测分析识别,在机器视觉图像景中,通过非机动车识别算法建立图像模型,完成自动检测识别非机动车,并能以视觉图像智能分…

供应链管理必须要掌握的10个常用指标及计算公式详解!

供应链管理对于很多公司来说,可能是一个看不见摸不着的“幕后英雄”。但是,掌握了核心的供应链管理指标,你就能把这些“幕后工作”做到位,提升公司整体运营效率,减少成本,甚至提高客户满意度。 今天我们就来聊聊,供应链管理中最重要的10个常用指标和它们的计算公式。如果…

分享 5 个在微信中使用 DeepSeek 的方法,建议收藏!

前言 今天大姚将为大家分享5种在微信中使用DeepSeek的方法,帮助大家更好地利用这一工具,提升工作和学习效率。无论是处理文档、管理知识,还是进行深度搜索和思考,这些方法都将为你带来全新的体验。让我们一起探索DeepSeek在微信中的无限可能吧!公众号「追逐时光者」回复关…

用python制作太阳花

点击查看代码 from turtle import * color(red,yellow) begin_fill() while True:forward(200)left(170)if abs(pos())<1:break end_fill() done()

使用Acronis True Image恢复系统

在U深度PE环境中,使用Acronis True Image恢复系统。只要平常时,做好服务器或是工作端的系统备份,遇上系统崩溃或是某种原因,需要恢复时,可以参考下面方法来恢复。准备好备份xxx.tib....U深度U盘启动,进入维护环境,运行傲梅开区助手(1),查看硬盘分区情部分,如磁盘1,未…

15.7.2 微调BERT的数据集

在我们已经训练好BERT后,BERT就可以对输入的每一个词元返回抽取了上下文信息的特征向量(也就是对于任意一个词元,将这个词元当做查询,所有词元当做键值对) 一些任务如下这里将<cls>的特征向量传递给全连接层的原因就是因为<cls>本来就是用来分类的,所以肯定传…

【分享】FTP为何被摒弃,如何选择适配的国产FTP传输软件?

在数字化浪潮中,文件传输是日常工作里不可或缺的一环。提及文件传输,FTP(文件传输协议)大家都不陌生,它就像一位勤勤恳恳的老邮差,多年来一直承担着文件传输的重任。凭借着简单易用、广泛支持、兼容性好以及成本低廉的优点,FTP在全球各地广泛应用,成为许多企业和个人进…

实验1作业

四、运行结果分析 1.task 1: 代码1(1个字符小人):#include <stdio.h> int main(){printf(" O \n");printf("\n");printf("I I\n"); return 0; } 运行结果截图: 代码2(两个竖着的小人): #include <stdio.h> int main(){prin…

DeepSeek 开源周回顾「GitHub 热点速览」

上周,DeepSeek 发布的开源项目用一个词形容就是:榨干性能!由于篇幅有限,这里仅列出项目名称和简介,感兴趣的同学可以前往 DeepSeek 的开源组织页面,深入探索每个项目的精彩之处!第一天 FlashMLA:基于 Hopper GPU 的高效 MLA 解码内核 第二天 DeepEP:专为 MoE 和 EP 设…

20250304

1. 烧碱 回调2800左右 波段多

怎样配置blazor才能提高吞吐量

怎样配置blazor才能提高吞吐量 为了提高 Blazor 应用的吞吐量,可以从以下几个方面进行配置和优化:启用响应压缩:通过压缩传输的数据量来减少带宽消耗。 配置 SignalR:调整 SignalR 的配置以提高数据传输效率。 优化 Circuit 选项:调整 Blazor Server 的 Circuit 配置以提高…