Kafka生产者消息异步发送并返回发送信息api编写教程

1.引入依赖(pox.xml文件)

<dependencies>

        <dependency>

            <groupId>org.apache.kafka</groupId>

            <artifactId>kafka-clients</artifactId>

            <version>3.6.2</version>

        </dependency>

</dependencies>

2.创建java类

3.配置运行属性

//连接的服务器

properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"node1:9092,node2:9092");

//指定对应的key和value的序列化类型

properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName());        properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName());

//关联自定义分区器

//properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG,"com.ljr.kafka.producer.MyPartitioner");

4.创建生产者对象

键入new KafkaProducer<>(),光标置于括号内CTRL+P可以显示需要对象为properties;

键入new Properties().var 回车,键入new KafkaProducer<>(properties).var 回车,选择变量名

5.发送消息并返回发送结果

键入KafkaProducer.send(),提示需要对象ProducerRecord;键入topic名(order)和要发送的信息(“0000”+i),new Callback()回车会弹出需要重写的抽象类,补全返回条件、需要返回的信息即可实现抽象类;

e == null 表示消息全部发送完毕;

6.关闭资源

KafkaProducer.close();

7.运行查看结果

运行:

可以看到有返回信息;

另开窗口查看发送结果

kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092 --topic order

信息发送成功;

8.完整代码

package com.ljr.kafka.producer;import org.apache.kafka.clients.producer.*;
import org.apache.kafka.common.serialization.StringSerializer;import java.util.Properties;public class CustomProducerCallback {public static void main(String[] args) {Properties properties = new Properties();properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"node1:9092,node2:9092");properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName());
/关联自定义分区器
//		properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG,"com.ljr.kafka.producer.MyPartitioner");KafkaProducer<String, String> kafkaProducer = new KafkaProducer<>(properties);for(int i =0; i < 3; i++){kafkaProducer.send(new ProducerRecord<>("customers", "LiSi" + i), new Callback() {@Overridepublic void onCompletion(RecordMetadata recordMetadata, Exception e) {if (e == null) {System.out.println("topic:" + recordMetadata.topic() + " partition:" + recordMetadata.partition());}}});}kafkaProducer.close();}
}

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

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

相关文章

伦敦金1手指的是什么?

就算没有进行过伦敦金投资&#xff0c;甚至是没有做过任何金融产品投资的朋友&#xff0c;相信也听过别人做交易决定&#xff0c;他们都是1手两手那样头买入。有些朋友就好奇了&#xff0c;这伦敦金1手指的是什么意思&#xff1f;下面我们就来讨论一下。 首先&#xff0c;如果我…

CDH6.3.2集成Flink1.12.2

一、Linux下载httpd服务并开启 yum install y httpd systemctl start httpd systemctl enable httpd 二、获取已制作好的安装包 flink-1.12.2-bin-scala_2.11.tar ​ FLINK_ON_YARN-1.12.2.jar ​ flink-shaded-hadoop-2-uber-3.0.0-cdh6.3.2-10.0.jar 三、集成CM 1.上传编…

ERV-Net:一种用于脑肿瘤分割的高效3D残差神经网络| 文献速递-深度学习肿瘤自动分割

Title 题目 ERV-Net: An efficient 3D residual neural network for brain tumor segmentation ERV-Net&#xff1a;一种用于脑肿瘤分割的高效3D残差神经网络 01 文献速递介绍 脑肿瘤在全球范围内是致命的&#xff0c;与其他类型的肿瘤相比。胶质瘤是最具侵略性的脑肿瘤类…

数据挖掘与机器学习——聚类算法

目录 无监督学习 聚类算法 概念&#xff1a; 功能&#xff1a; 应用场景&#xff1a; 评判标准&#xff1a; 划分聚类&#xff1a; K-means聚类 逻辑实现&#xff1a; 聚类方式 问题&#xff1a; 解决&#xff1a; 可能存在的问题&#xff1a; 1.初始值对K-means聚…

CANOE制造dll文件,以及应用dll文件

1、使用canoe自带的capl dll 2、然后使用Visual Studio 2022 打开项目 3、项目打开后修改下项目属性 4、修改capldll.cpp文件 4.1 添加的内容 void CAPLEXPORT far CAPLPASCAL appSum(long i, long j, long* s){*s i j;} {"sum", (CAPL_FARCALL)appSum, "…

python前端streamlit模型部署

简单介绍使用前端streamlit框架快速部署本地模型&#xff1a; 1、模型训练&#xff1a; import pandas as pd # 流程整合 from sklearn.pipeline import make_pipeline, Pipeline # 数据处理 from sklearn.impute import SimpleImputer from sklearn.preprocessing import Min…

01 - Maven入门安装

目录 1、软件下载地址 2、安装的版本 3、安装的条件 4、软件的结构 5、Maven环境配置 5.1、配置MAVEN_HOME 5.2、配置Path 5.3、命令测试&#xff08;cmd窗口&#xff09; 6、Maven的功能配置 6.1、配置本地仓库地址 6.2、配置国内阿里镜像 6.3、配置jdk8版本项目构…

鸿蒙ArkTS声明式开发:跨平台支持列表【背景设置】 通用属性

背景设置 设置组件的背景样式。 说明&#xff1a; 开发前请熟悉鸿蒙开发指导文档&#xff1a; gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版…

设计模式22——备忘录模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 备忘录模式&#xff08;Mement…

EG2106 原装正品 贴片SOP-8 大功率MOS管栅极驱动芯片耐压600V

EG2106 在电机控制中的应用非常广泛&#xff0c;下面是一些典型的应用案例&#xff1a; 1. 无刷直流电机&#xff08;BLDC&#xff09;控制&#xff1a;EG2106 可以用于驱动无刷直流电机的功率MOSFET或IGBT。在无刷电机控制器中&#xff0c;通常会用到H桥电路来控制电机的正…

基于Java的KTV点歌系统

开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术&#xff0c;JAVA&#xff0c;B/S架构 工具&#xff1a;浏览器&#xff08;360浏览器、谷歌浏览器、QQ浏览器等&#xff09;&#xff0c;数据库管理工具&#xff08;MySQL&#xff09; 系统展示 …

HTML动态响应2-Servlet+Ajax实现HTTP前后台交互方式

作者:私语茶馆 前言 其他涉及到的参考章节: HTML动态响应1—Ajax动态处理服务端响应-CSDN博客 Web应用JSON解析—FastJson1.2.83/Tomcat/IDEA解析案例-CSDN博客 HTML拆分与共享方式——多HTML组合技术-CSDN博客 1.场景: WEb项目经常需要前后端交互数据,并动态修改HTML页…

Linux:subshell(子shell)和childprocess(子进程)

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 一、预备知识 在进行这个话题之前&#xff0c;首先要了解Linux系统中一个进程是如何创建的&#xff0c;当一个命令被执行时&#xff0c;首先会在当前进程创建一个子进程…

Vue3使用mitt进行组件通信

mitt&#xff1a;事件总线&#xff0c;是第三方插件。 Vue2.x 使用 EventBus 事件总线进行兄弟组件通信&#xff0c;而在Vue3中 EventBus 事件总线模式已经被移除&#xff0c;官方建议使用外部的、实现了事件触发器接口的库&#xff0c;例如 mitt 或 tiny-emitter。 比起 Vue…

rtos最小任务切换的实现 keil软件仿真 stm32 PendSV

最小任务切换的实现 本例子实现了一个 rtos 最小的任务切换功能&#xff0c;使用 keil 仿真功能&#xff0c;在模拟的 stm32f103 的器件上实现了使用 PendSV 中断切换线程的效果。 git 源码仓库&#xff1a;https://github.com/yutianos/rtos-little 本文链接&#xff1a;csdn…

数学函数,字符串

目录 Math类 三角函数 指数函数 取整方法 其他方法 String类 常见方法 字符串比较方法 子串和数字与字符串的转换 Math类 Math类在java.lang中&#xff0c;不用显式引入。 三角函数 private static void triangleFunc() {double degree Math.toDegrees(Math.PI / 3…

神经网络与深度学习——第4章 前馈神经网络

本文讨论的内容参考自《神经网络与深度学习》https://nndl.github.io/ 第4章 前馈神经网络 前馈神经网络 神经元 Sigmoid型函数 Hard-Logistic函数和Hard-Tanh函数 ReLU函数 带泄露的ReLU 带参数的ReLU ELU函数 Softplus函数 Swish函数 GELU函数 Maxout单元 网络结构 前馈网络…

Qt图像处理技术九:得到QImage图像的灰度直方图

效果 原理 得到灰度化值&#xff0c;将灰度化的值带入0-255内&#xff0c;增加&#xff0c;得到可视化图形 源码 // 绘制直方图 QImage drawHistogram(const QImage &image) {QVector<int> histogram(256, 0);// 计算图像的灰度直方图for (int y 0; y < image…

【SpringBoot】SpringBoot整合JWT

目录 先说token单点登录&#xff08;SSO&#xff09;简介原理单点登录的优势单点登录流程分布式单点登录方式方式一&#xff1a;session广播机制实现方式二&#xff1a;使用cookieredis实现。方式三&#xff1a;token认证 JWT数字签名JWT的作用JWT和传统Session1、无状态&#…

linux nohup命令详解:持久运行命令,无视终端退出

nohup &#xff08;全称为 “no hang up”&#xff09;&#xff0c;用于运行一个命令&#xff0c;使其在你退出 shell 或终端会话后继续运行。 基本语法 nohup command [arg1 ...] [&> output_file] &command 是你想要运行的命令。[arg1 ...] 是该命令的参数。&am…