Kafka的安装及与Spring Boot的集成
- 安装JDK
- 下载jdk-8u202-ea-bin-b03-linux-x64-07_nov_2018.tar.gz
- 解压
- 配置
- $ vi /etc/profile,在最后加入下面两行
export JAVA_HOME=/usr/local/bigdata/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH - 重新登录执行 java,验证JDK配置成功
- 安装Kafka
- 下载kafka_2.11-1.0.2.tgz,这里主要1.0.2这个Kafka Server的 版本需要和客户端Spring-Kafka的版本对应,具体对应关系请看https://spring.io/projects/spring-kafka
- 解压 tar -xzvf kafka_2.11-1.0.2.tgz
- 配置 vi config/server.properties,host.name 非常非常关键,否则你讲无法远程连接到Kafka
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
#advertised.listeners=PLAINTEXT://your.host.name:9092
host.name=192.168.198.128 - 启动 Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties - 启动 Kafka
bin/kafka-server-start.sh config/server.properties
- 创建一个Topic并查看是否创建成功
bin/kafka-topics.sh --create --zookeeper 192.168.198.128:2181 --replication-factor 1 --partitions 1 --topictest
- 查看Topic是否创建成功
bin/kafka-topics.sh --list --zookeeper192.168.198.128:2181- 本地Producer及Consumer演示
- 创建一个本地消息消费者
bin/kafka-console-consumer.sh --bootstrap-server:9092 --topic192.168.198.128test--from-beginning - 创建一个本地消息生产者
bin/kafka-console-producer.sh --broker-list:9092 --topic192.168.198.128test - 在生产者端输入消息,消费者端将会打印此消息
- 远程Consumer演示(Windows 平台)
- 下载kafka_2.11-1.0.2.tgz解压并进入bin/windows
- 创建一个远程消费者
kafka-console-consumer.bat --bootstrap-server:9092 --topic192.168.198.128test--from-beginning - 在Linux平台生成者端输入消息,检查windows端远程消费者是否打印此消息
- Spring Boot集成配置
在Maven中添加依赖
<!--kafka-->
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
- KafkaProducer.java
@Component
public class KafkaProducer { Logger logger = LoggerFactory.getLogger(KafkaProducer.class); @Autowired
private KafkaTemplate kafkaTemplate; @Scheduled(fixedRateString = "1000") //per second
public void send(){
logger.info("Start to send message to Kakfa with topic name 'test'");
String message = UUID.randomUUID().toString();
ListenableFuture future = kafkaTemplate.send("test", message);
future.addCallback(o -> System.out.println("message sent successfully: " + message), throwable -> System.out.println("message sent failed: " + message));
}
} - KafkaConsumer.java
@Component
public class KafkaConsumer { @KafkaListener(topics = {"test"})
public void receive(String message){
System.out.println("test-message:" + message);
}
}
Kafka的安装及与Spring Boot的集成的更多相关文章
- Spring Boot快速集成kaptcha生成验证码
Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码,以图片的形式显示,从而无法进行复制粘贴:下面将详细介绍下Spring Boot快速集成kaptcha生成验证码的过程. 本 ...
- [转帖]spring boot项目集成jacoco
小试牛刀:spring boot项目集成jacoco 2019-03-28 20:14:36 zyq23333 阅读数 509 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议, ...
- Spring Boot:集成Druid数据源
综合概述 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据 ...
- shiro 和 spring boot 的集成
1 添加依赖 使用 shiro-spring-boot-web-starter 在 spring boot 中集成 shiro 只需要再添加一个依赖 <dependency> <gr ...
- Java | Spring Boot Swagger2 集成REST ful API 生成接口文档
Spring Boot Swagger2 集成REST ful API 生成接口文档 原文 简介 由于Spring Boot 的特性,用来开发 REST ful 变得非常容易,并且结合 Swagg ...
- Spring Boot 项目集成 Alibaba Druid
Druid 是一个非常好用的数据库连接池,但是他的好并不止体现在作为一个连接池加快数据访问性能上和连接管理上,他带有一个强大的监控工具:Druid Monitor.不仅可以监控数据源和慢查询,还可以监 ...
- Spring Boot Redis 集成配置(转)
Spring Boot Redis 集成配置 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px #ede ...
- spring boot 2 集成JWT实现api接口认证
JSON Web Token(JWT)是目前流行的跨域身份验证解决方案.官网:https://jwt.io/本文使用spring boot 2 集成JWT实现api接口验证. 一.JWT的数据结构 J ...
- elasticsearch 的安装配置与spring boot的整合应用
linux上的elasticsearch安装 一.下载elasticsearch 直接进入elasticsearch的官网,下载最新的安装包:https://www.elastic.co/downlo ...
随机推荐
- 记一次bond引起的网络故障
本案中3个关键服务器 物理服务器:192.168.6.63,简称P,(Physical server) KVM-VM:192.168.6.150,是物理服务器P上的一个KVM虚机,简称VM NAS:外 ...
- Postman runner参数化
按照下面图片的顺序操作吧~ lets go 1.把要做参数化的字段的value用花括号标识起来,如:{{phone}} 2.准备一个csv的文件,把每次请求接口的参数按下图填写好,第一行写字段名称(p ...
- python slenium 中CSS定位
以百度为例 一.通过id.class定位 1.#id:python:driver.find_element_by_css_selector('input#kw') 2..class:python:dr ...
- MySQL实现分组取组内特定数据的功能
需求:在MySQL5.7环境下,查询下面表中,各个学科前两名的学生的成绩: 1.准备数据 窗机表以及向表中插入数据 创建一张表: DROP TABLE IF EXISTS `grade`; CREAT ...
- loadrunner参数化使用mysql数据源失败解决方法
操作系统:win7 在64位的操作系统上,如果你想要连接32位mysql,避免安装mysql connector/odbc 64位,否则即使配置ODBC数据源连接正常,但loadrunner无法正常调 ...
- 啊哈算法第四章第三节 层层递进-广度优先搜索 java实现
package corejava; public class FourThree { static int [][]a=new int[50][50]; static int [][]b=new in ...
- 如何才能成为一个合格的web前端工程师
转载原文地址:https://juejin.im/post/5cc1da82f265da036023b628 开篇前端开发是一个非常特殊的行业,它的历史实际上不是很长,但是知识之繁杂,技术迭代速度之快 ...
- jmeter(一)
jmeter简介 Apache jmeter是Apache组织开发的基于java的压力测试工具 与LR功能基本相同,根据用户数来选择用哪个更合适 为什么要做压力测试? 了解被测系统一般 ...
- Ceph 集群整体迁移方案(转)
场景介绍:在我们的IDC中,存在着运行了3-6年的Ceph集群的服务器,这些服务器性能和容量等都已经无法满足当前业务的需求,在购入一批高性能机器后,希望将旧机器上的集群整体迁移到新机器上,当然,是保证 ...
- javascript中的map和reduce
今天在看“廖雪峰官方网站”的js教程时,看到了map和reduce.其中有一个练习题是:不使用js内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数(先将 ...