【Springboot】整合kafka

目录

  • 安装zookeeper
    • jdk安装
    • zookeeper安装
  • 安装kafka(非集群)
  • springboot项目整合配置

安装zookeeper

jdk安装

环境准备:CentOS7,jdk1.8
步骤如下:

  • 下载自己需要的版本
    这里使用的jdk1.8,获取链接如下
    链接:https://pan.baidu.com/s/1Bkvy0ChTVH0hrKkxiE4ZDg 提取码:1zws

  • 上传到安装目录并解压
    使用linux连接工具,将下载的JDK压缩包上传到要安装的目录下,这里使用的是windTerm,我是将压缩包上传到/usr/java目录下,解压命令如下

    tar -zxvf jdk-8u152-linux-x64.tar.gz
    

    解压后目录下面多个文件夹
    在这里插入图片描述

  • 配置环境变量

    vim /etc/profile
    

    在文件最后面添加如下配置,JAVA_HOME是自己安装的目录,需要改为自己的目录

    export JAVA_HOME=/usr/java/jdk1.8.0_152
    export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/    
    export PATH=$PATH:$JAVA_HOME/bin
    

    重新加载系统环境变量

    source /etc/profile
    
  • 验证是否安装成功

    java -version
    

    出现如下内容说明安装成功
    在这里插入图片描述

zookeeper安装

  • 下载压缩包:
    官网地址:https://zookeeper.apache.org/releases.html

  • 上传到安装目录并解压
    我的是/usr/zookeeper,解压压缩包
    在这里插入图片描述

  • 修改配置文件
    进入解压后的文件夹里面的conf目录下,该目录下有一个名zoo_sample.cfg文件,将该文件重新名为zoo.cfg,或者重新复制一份命名为zoo.cfg。使用vim命令打开zoo.cfg文件编辑,主要修改两个地方,data,log需要自己创建,我是直接在zookeeper安装目录下创建的
    在这里插入图片描述

  • 启动zookeeper

    进入zookeeper安装目录下的bin目录
    在这里插入图片描述

    进入bin目录如下
    在这里插入图片描述

    启动zookeeper服务端:./zkServer.sh start
    在这里插入图片描述

    查看启动状态:./zkServer.sh status
    在这里插入图片描述

    启动zookeeper客户端

    	[root@localhost bin]# ./zkCli.sh
    

安装kafka(非集群)

  • 首先是下载自己需要的压缩包
    官网下载地址:https://kafka.apache.org/downloads
  • 上传到安装目录并解压
    tar -zxvf kafka压缩包名称
    
  • 修改kafka的server.properties配置文件
    进入解压后的文件能看到如下内容,server.properties配置文件在config目录下
    在这里插入图片描述
    我这里是非集群,修改配置文件也比较简单,使用vi或者vim文本编辑命令打开server.properties文件,修改下面配置
    #kafka服务器地址
    listeners=PLAINTEXT://10.3.1.156:9092 
    
    #zk服务器地址,我这里zk跟kafka在一台虚拟机上
    zookeeper.connect=10.3.1.156:2181
    
    log.dirs=/usr/kafka/kafka-logs
    
    非集群方法配置就完成了,下面就是启动kafka服务,进入kafka文件下的bin目录下,使用命令的方式体验消息发送和接收
    启动kafka
    ./kafka-server-start.sh -daemon ../config/server.properties
    
    创建topic
    ./kafka-topics.sh --bootstrap-server 10.3.1.156:9092 --create --topic test --replication-factor 1 --partitions 1
    
    查看topic
    ./kafka-topics.sh --list --bootstrap-server 10.3.1.156:9092
    
    发消息
    ./kafka-console-producer.sh --bootstrap-server 10.3.1.156:9092 --topic test
    
    接收消息
    ./kafka-console-consumer.sh --bootstrap-server 10.3.1.156:9092 --topic test
    
    删除topic
    ./kafka-topics.sh --bootstrap-server 10.3.1.156:9092 --delete --topic test
    

springboot项目整合配置

  • 新建的项目pom文件中导入kafka依赖
    <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId>
    </dependency>
    
  • 配置文件添加kafka相关配置
    server:port: 8080
    spring:kafka:bootstrap-servers: 10.3.1.156:9092 #kafka服务地址producer: #生产者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.StringDeserializerauto-offset-reset: earliest
    
  • 客户端发送消息
    @RestController
    public class KafkaProducerController {@Autowiredprivate KafkaTemplate<String, String> kafkaTemplate;@GetMapping(value = "/sentMessage")public String sentMessage(@RequestParam("msg") String msg){kafkaTemplate.send("test", msg);return "发送成功";}
    }
    
  • 消费者接收消息
    @Component
    public class KafkaConsumerListener {@KafkaListener(topics = "test", groupId = "my-test-group")public void consumer(ConsumerRecord<String,String> record){System.out.println("接收到的消息:" + record.value());}
    }
    

涉及代码地址:代码地址

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

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

相关文章

Spring Boot 自动注入失败的原因

问题 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type com.sveinn.chatbotdomain.zsxq.service.ZsxqApi available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {ja…

HY57V561620FTP_SDRAM文档总结

文章目录 前言一、sdram简介1、名称解释2、发展历史3、与原先学习的RAM区别4、SDRAM分类 二、HY57V561620FTP1、描述1、内存划分2、特征3、引脚说明4、内部结构介绍5、交流特性6、可能涉及到的命令组合 2、SDRAM 具体操作流程1、整体状态图2、SDRAM指令及时序图3、芯片初始化(这…

MAML在隐式神经表示中的应用

论文 Learned Initializations for Optimizing Coordinate-Based Neural Representations &#x1f383;Abstract1. Introduction2. Related Work3. Overview ⭐4. Results5. Conclusion6. AcknowledgementsA. Implementation details Implicit Neural Representations for Ima…

基于 IntelliJ 的 IDE 将提供 Wayland 支持

导读对于使用 IntelliJ 开发环境的用户&#xff0c;JetBrains 一直致力于提供原生 Wayland 支持。 JetBrains 正在致力于为基于 IntelliJ 的 IDE 提供 Wayland 支持&#xff0c;以增强 Linux 桌面体验以及在 Windows Subsystem for Linux 下运行。 Wayland 支持功能尚未完成&…

1262. 可被三整除的最大和

1262. 可被三整除的最大和 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;方法一&#xff1a;贪心 正向思维方法二&#xff1a;贪心 逆向思维 参考代码&#xff1a;方法一&#xff1a;贪心 正向思维方法二&#xff1a;贪心 逆向思维 原题链接&#xff1a;…

实践分享:vue模块化基本用法

首先还是来看看什么是模块化。 常见的概括&#xff1a;模块化就是把单独的一个功能封装到一个模块&#xff08;文件&#xff09;中&#xff0c;模块之间相互隔离&#xff0c;但是可以通过特定的接口公开内部成员&#xff0c;也可以依赖别的模块&#xff08;方便代码的重用&…

嵌入式网络接口之MAC芯片与PHY芯片

目录 0. 参考文档 1.嵌入式网络接口简介 2.嵌入式网络硬件架构方案 2.1 SOC内未集成MAC芯片 2.2 SOC内集成MAC芯片 2.3 主流方案总结 2.3 参照实际网卡的说明 3.MII/RMII及MDIO接口 3.1 MII 3.2 RMII 3.3 MDIO 0. 参考文档 网卡构造&#xff1a;MAC与PHY的关系&…

从源码角度解读xxl-job的工作流程

剖析xxl-job的源码——了解其实现细节与优化策略 设计思想&#x1f9e0;服务端-源码探究 &#x1f50d;1. 初始化触发器线程池2. 维护注册信息3. 运行失败监视器4. 将丢失主机信息调度日志更改状态5. 统计一些失败成功报表,删除过期日志6. 执行调度器[核心] 客户端-源码探究&am…

保研复习-计算机组成原理

计算机组成原理 计算机组成冯诺依曼体系结构计算机系统的层次结构计算机的五大组成部件编译和解释的区别 CPUCPU的组成寄存器的类型指令类型指令功能指令执行过程 存储器存储器的层次结构寻址方式 输入和输出io方式有哪几种IO接口的基本结构 计算机组成 冯诺依曼体系结构 存储…

从CNN(卷积神经网络),又名CAM获取热图

一、说明 卷积神经网络&#xff08;CNN&#xff09;令人难以置信。如果你想知道它如何看待世界&#xff08;图像&#xff09;&#xff0c;有一种方法是可视化它。 这个想法是&#xff0c;我们从最后的密集层中得到权重&#xff0c;然后乘以最终的CNN层。这需要全局平均…

每日一题~二叉搜索树中的插入操作

题目链接&#xff1a;701. 二叉搜索树中的插入操作 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 思路分析&#xff1a;由题可知&#xff0c;题目的要求是给我们一个二叉搜索树和一个 val&#xff0c;将这个 val 插入到二叉搜索树中&#xff0c;并且这个树仍…

八、实时时钟

八、实时时钟 简介时钟芯片模块代码可调时钟 简介 引脚定义和应用电路 我们的开发板没有备用电池 寄存器定义 时序定义 在时钟的上升沿&#xff0c;IO口的数据被写入到芯片中&#xff0c;在下降沿&#xff0c;芯片就会将数据输出。如果是写入&#xff0c;那么在整个过程中&…

数据优化与可视化:3D开发工具HOOPS在BIM模型轻量化中的作用分析

在建筑和工程领域&#xff0c;BIM&#xff08;建筑信息建模&#xff09;是一种重要的数字化工具&#xff0c;但大型BIM模型往往需要大量的计算资源和存储空间。为了解决这一问题&#xff0c;HOOPS技术成为了一种关键工具&#xff0c;可以帮助实现BIM模型轻量化&#xff0c;提高…

面试题三:请你谈一谈Vue中的filter功能的实现

Vue中过滤器(filter)的使用 我们想一下有methods为什么要有filter的存在呢&#xff0c;因为filter的实现效率比methods要高的多。 看一下官方定义&#xff1a; Vue.js 允许你自定义过滤器&#xff0c;可被用于一些常见的文本格式化。过滤器可以用在两个地方&#xff1a;双花括号…

【完美解决】GitHub连接超时问题 Recv failure: Connection was reset

问题&#xff1a; 已经开了梯子但是在Idea中使用git&#xff08;GitHub&#xff09;还是连接超时Recv failure: Connection was reset。此时需要让git走代理。 解决方案&#xff1a; 1.对右下角网络点击右键 -> 打开网络和Internet设置 2.代理 -> 查看到地址和端口号…

论文阅读之Learning and Generalization of Motor Skills by Learning from Demonstration

论文阅读其实就是用自己的话讲一遍&#xff0c;然后理解其中的方法 0、论文基本信息 为什么阅读此篇论文&#xff1a;因为它是DMP经典论文&#xff0c;被引多次&#xff0c;学史可以明智&#xff0c;了解最初机理。 论文题目&#xff1a;Learning and Generalization of Moto…

广东白云学院《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许

广东白云学院《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许

手机机型响应式设置2

window.screen.height&#xff1a;屏幕高度 window.innerHeight&#xff1a;视口高度&#xff08;去除浏览器头尾的高度&#xff09; document.body.clientHeight&#xff1a;内容高度 vh&#xff1a;网页视口高度的1/100 vw&#xff1a;网页视口宽度的1/100 vmax&#xff…

GIF动图怎么变成jpg动图?一键分解GIF动画

GIF格式图片怎么转换成jpg格式图片&#xff1f;在日常生活中jpg、png转GIF格式非常的常见&#xff0c;那么gif转换成jpg格式应该怎么操作呢&#xff1f;很简单&#xff0c;给大家分享一款gif动态图片制作&#xff08;https://www.gif.cn/giffenjie&#xff09;工具&#xff0c;…

OpenCV实现的F矩阵+RANSAC原理与实践

1 RANSAC 筛选 1.1 大致原理 Random sample consensus (RANSAC)&#xff0c;即随机抽样一致性&#xff0c;其是一种用于估计模型参数的迭代方法&#xff0c;特别适用于处理包含离群点&#xff08;outliers&#xff09;的数据集 RANSAC 的主要思想是随机采样数据点&#xff0…