Spring Boot 整合 Kafka

news/2024/11/15 14:58:26/文章来源:https://www.cnblogs.com/dragon-925/p/18384675

项目目录结构

pom.xml

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Kafka Starter --><dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

kafka-provider

  • application.yml

    server:port: 10001
    spring:kafka:bootstrap-servers: localhost:9092producer:key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializerconsumer:key-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializergroup-id: test-consumer-group
    
  • service

    @Service
    public class ProviderServiceImpl {private static final String TOPIC_NAME = "dragon-topic";@Resourceprivate KafkaTemplate<String, String> kafkaTemplate;public String sendMsg(String info) {kafkaTemplate.send(TOPIC_NAME,info);return "发送成功";}
    }
    
    @RestController
    @RequestMapping("/provider")
    @RequiredArgsConstructor
    public class ProviderController {private final ProviderServiceImpl providerService;@GetMappingpublic String providerApi() {return providerService.sendMsg("莫等闲,白了少年头,空悲切。");}
    }
    

启动类

@SpringBootApplication
public class ConsumerApp {public static void main(String[] args) {SpringApplication.run(ConsumerApp.class, args);}
}

kafka-consumer

  • kafka-listener

    @Component
    public class KafkaListener {private static final Logger log = LoggerFactory.getLogger(KafkaListener.class);private static final String TOPIC_NAME = "dragon-topic";@org.springframework.kafka.annotation.KafkaListener(topics = TOPIC_NAME)public void receive(String msg) {log.info("接收到消息:{}",msg);}
    }
    
  • application.yml

    server:port: 10002
    spring:kafka:bootstrap-servers: localhost:9092producer:key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializerconsumer:key-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializergroup-id: test-consumer-group
    

启动类

@SpringBootApplication
public class ConsumerApp {public static void main(String[] args) {SpringApplication.run(ConsumerApp.class, args);}
}

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

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

相关文章

.NET8 接入qwen2大语言模型

前言 dotnet8项目接入qwen大模型,这个主要用到了大模型管理工具叫做 ollama 有了它,接入大模型so easy。使用ollama可以接入很多大模型,详见:https://ollama.com/library 环境vs2022 preview dotent8 Windows 10 企业版1、下载ollama https://github.com/ollama/ollama安装…

实践项目-模拟公司自动化运维

(20240828,准备更新PostgreSQL部分) 大纲环境配置 系统:Debian 12.06 环境:阿里云ECS 以及 虚拟机序号 IP地址 域名 主机名1 192.168.100.12 k8s-master.yourname.com k8s-master2 192.168.100.15 k8s-node1.yourname.com k8s-node13 192.168.100.16 k8s-node2.yourname.c…

解决方案 | QTTabBar工具栏命令按钮设置everything、filelocator在当前文件夹下面搜索

备忘 everything 命令行参数参考 -path(是everythin参数) 表示在哪个位置(即哪个文件夹)下面搜索,这里%c%是qttabbar的参数,表示当前文件夹 https://www.voidtools.com/zh-cn/support/everything/command_line_interface/===================== filelocatorpro 命令行参数…

基于Ubuntu部署企业级kubernetes集群---k8s集群容器运行时Containerd准备

1.Containerd部署文件获取 1.下载 Containerd 文件wget https://github.com/containerd/containerd/releases/download/v1.7.21/cri-containerd-1.7.21-linux-amd64.tar.gz2.查看下载的文件 3.解压到当前文件到根目录下tar xf cri-containerd-1.7.21-linux-amd64.tar.gz -C /…

EMC/EMI详解

EMC/EMI详解 EMI(干扰)和EMS(抗扰)基础知识与整改流程 EMC主要包含两大项:EMI(干扰)和EMS(产品抗干扰和敏感度)。EMI(Electromagnetic Interference),表示电磁干扰(电磁干涉、电磁妨碍)的术语。由于发射电磁波会导致干扰,所以经常与Emission(辐射、发射)这一术…

java如何运行Python文件程序

有时候会遇到在java中启动Python的程序,下面进行说明package com.zxh.util;import lombok.extern.slf4j.Slf4j;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader;/*** python执行器** @Author zxh*…

zabbix图形界面的字体问题

现象,zabbix web语言改为中文后 解决过程: 1.去windows下控制面板-字体-复制(楷体-常规)find / -name defines.inc.php cat /usr/share/zabbix/include/defines.inc.php 查看到字体及字体路径 进入字体目录:cd /usr/share/zabbix/assets/fonts 上传新字体 替换字体配置:…

工业和信息化部通报2024年第7批涉嫌侵害用户权益的APP和SDK

​工业和信息化部近日公布了一批存在安全问题的APP和SDK名单,这些应用和软件开发工具包(SDK)因违反相关法律法规,涉及违规收集个人信息、信息窗口乱跳转等问题被通报。此次通报的APP和SDK涉及多个应用领域,包括记账、游戏、实用工具、影视、网络加速、广告服务等。通报中指…

深度解析HarmonyOS SDK实况窗服务源码,Get不同场景下的多种模板

HarmonyOS SDK实况窗服务(Live View Kit)作为一个实时呈现应用服务信息变化的小窗口,遍布于设备的各个使用界面,它的魅力在于将复杂的应用场景信息简洁提炼并实时刷新,在不影响当前其他应用操作的情况下,时刻向用户展示最新的信息动态,用户也可以点击实况窗卡片或胶囊进…

uniapp js 数独小游戏 9*9 数独 2.0

效果图: game.vue <template> <view> <view class="main"> <view class="foot"> <view v-if="!isTip" class="sudoku_area"> <view v-for="(row, index) of rowList" :key=&qu…

2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums,定义一个函数greaterCount(arr, val)可以返回数组arr中大于val的元素数量。 按照以下规则进行n次

2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums,定义一个函数greaterCount(arr, val)可以返回数组arr中大于val的元素数量。 按照以下规则进行n次操作,将nums中的元素分配到两个数组arr1和arr2中: 1.第一次操作将nums[1]加入arr1。 2.第二次操作将nums[2]加…

WPF 如何利用Blend给Button添加波纹效果

先看一下效果吧:如果不会写动画或者懒得写动画,就直接交给Blend来做吧; 其实Blend操作起来很简单,有点类似于在操作PS,我们只需要设置关键帧,鼠标点来点去就可以了,Blend会自动帮我们生成我们想要的动画效果. 第一步:要创建一个空的WPF项目 第二步:右键我们的项目,在最…