1.安装zookeeper

zookeeper下载:http://zookeeper.apache.org/releases.html
从3.5.5开始,带有bin名称的包才是要下载的包可以直接使用

解压压缩包
进入conf目录
拷贝一份zoo_sample.cfg文件改名为zoo.cfg
更改zoo.cfg配置信息 :
data和dataLog 数据和数据日志存储路径
dataDir=/apache-zookeeper-3.7.1-bin/data
dataLogDir=/apache-zookeeper-3.7.1-bin/dataLog
进入\bin目录
window: 双击zkServer.cmd启动
linux: zkServer.sh

一个zookeeper图形化工具ZooInspector

下载地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
直接解压zip进入\zooInspector\build目录jar包启动
执行成功,会弹出client
然后进行连接 zoo默认端口为 2181
可查看zoo节点信息

2.安装kafka
下载:https://kafka.apache.org/downloads.html下载binary版本的

解压安装包
进入config目录下,找到server.properties
编辑 log.dirs为 path+\logs (path为kafka路径)
Zookeeper地址和端口,Kafka支持内置的Zookeeper和引用外部的Zookeeper
内置zookeeper配置在zookeeper.properties里面默认配置是单机版
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183(默认就是localhost:2181)
在windows系统启动 脚本都在\bin\windows路径下面
启动
.\bin\windows\kafka-server-start.bat .\config\server.properties
创建主题
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic nowTest
查看主题命令
.\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181
创建生产者
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic nowTest
创建消费者
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic nowTest --from-beginning

kafka可视化工具 https://www.kafkatool.com/download.html 下载安装使用即可

3. springboot配置kafka
依赖

  <dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<!--内嵌的zookeeper和kafka 开发期间,不用准备相关环境了-->
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
</dependency>

kafka配置文件KafkaConfig

    /**
* @return
* @Description 主要业务的Kafka生产者配置
*/
public Map<String, Object> producerConfigs(){
Map<String, Object> props = new HashMap<>();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");
props.put(ProducerConfig.RETRIES_CONFIG, 0);
props.put(ProducerConfig.BATCH_SIZE_CONFIG, 16384);
props.put(ProducerConfig.BUFFER_MEMORY_CONFIG, 33554432);
props.put(ProducerConfig.ACKS_CONFIG, "1");
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
return props;
}
/**
* @return
* @Description 主要业务的Kafka生产者配置工厂
*/
public ProducerFactory<String, Object> producerFactory(){
return new DefaultKafkaProducerFactory<>(producerConfigs());
}
/**
* @return
* @Description 主要业务的Kafka消费者配置
*/
public Map<String, Object> consumerConfigs(){
Map<String, Object> propsMap = new HashMap<>();
propsMap.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");
propsMap.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,true);
propsMap.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, 5000);
propsMap.put(ConsumerConfig.GROUP_ID_CONFIG,"FLOWAC_0_DEV_WXD");
propsMap.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,"FALSE");
propsMap.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "latest");
propsMap.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
propsMap.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
return propsMap;
}
/**
* @return
* @Description 主要业务的Kafka消费者工厂
*/
public ConsumerFactory<String, String> consumerFactory(){
return new DefaultKafkaConsumerFactory<>(consumerConfigs());
}
@Bean(name = "kafkaOneListenerFactory")
public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<String, String>> kafkaListenerFactory(){
ConcurrentKafkaListenerContainerFactory<String, String> factory =
new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(consumerFactory());
factory.getContainerProperties().setPollTimeout(1500);
return factory;
}
@Bean(name = "kafkaOneTemplate")
public KafkaTemplate<String, Object> kafkaTemplate(){
return new KafkaTemplate<>(producerFactory());
}

发送消息

  private KafkaTemplate<String, String> kafkaTemplate;
String message = String.format("%s","Test");
kafkaTemplate.send("nowTest", message);

接收消息

@KafkaListener(topics="nowTest",containerFactory = "kafkaOneListenerFactory")
public void kafkaCustomer(String msg){
log.info("收到消息通知: {}",msg);
}

安装kafka和zookeeper以及使用的更多相关文章

  1. kubernetes(k8s) helm安装kafka、zookeeper

    通过helm在k8s上部署kafka.zookeeper 通过helm方法安装 k8s上安装kafka,可以使用helm,将kafka作为一个应用安装.当然这首先要你的k8s支持使用helm安装.he ...

  2. centOS7安装kafka和zookeeper

    wget http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz tar zxvf kafka_2.-.tgz cd ka ...

  3. 使用docker-compose一起安装kafka(zookeeper)

    要先安装docker-compose Linux安装docker-compose 参考:https://www.cnblogs.com/pxblog/p/15049362.html 创建docker- ...

  4. Helm 安装Kafka

    helm镜像库配置 helm repo add stable http://mirror.azure.cn/kubernetes/charts helm repo add incubator http ...

  5. kafka及zookeeper安装

    kafka_2.9.2-0.8.1.tgzzookeeper-3.4.8.tar.gz 安装 zookeeper1 export PATH=$PATH:/usr/local/zookeeper/bin ...

  6. Redis安装,mongodb安装,hbase安装,cassandra安装,mysql安装,zookeeper安装,kafka安装,storm安装大数据软件安装部署百科全书

    伟大的程序员版权所有,转载请注明:http://www.lenggirl.com/bigdata/server-sofeware-install.html 一.安装mongodb 官网下载包mongo ...

  7. linux 安装 kafka&zookeeper

    安装kafka 1,下载kafka. #cd /usr/local #wget wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.1 ...

  8. Ubuntu下安装和使用zookeeper和kafka

    1.在清华镜像站下载kafka_2.10-0.10.0.0.tgz 和 zookeeper-3.4.10.tar.gz 分别解压到/usr/local目录下 2.进入zookeeper目录,在conf ...

  9. 安装kafka + zookeeper集群

    系统:centos 7.4 要求:jdk :1.8.x kafka_2.11-1.1.0 1.绑定/etc/hosts 10.10.10.xxx      online-ops-xxx-0110.10 ...

  10. 附录E 安装Kafka

    E.1   安装Kafka E.1.1    下载Kafka Kafka是由LinkedIn设计的一个高吞吐量.分布式.基于发布订阅模式的消息系统,使用Scala编写,它以可水平扩展.可靠性.异步通信 ...

随机推荐

  1. Java新手问题:输出结果的地方出现红色字体 请问是什么原因?

    英文不是红色但中文是红色 请问各路大佬看一下是不是我代码出现了问题还是怎么滴.

  2. mergehex tools安装

    (1)nRF5x command line tools包括Jlink驱动以及Nordic自己开发的一些命令行工具,具体包括Jlink驱动,nrfjprog,nrfutil以及mergehex等. 下载 ...

  3. 使用scrollIntoView 使某元素滚动到指定位置

    var el = document.getElementById('A'); el.scrollIntoView('true'); 知识: element.scrollIntoView(); // 使 ...

  4. Python第一次作业(20220909)

    实例01:根据身高.体重计算BMI指数 ①:分别定义两个变量"height"和"weight",用于储存身高(单位:米)和体重(单位:千克).使用内置的prin ...

  5. (Winform程序带源码) 弹出输入框和获取输入框的值

    弹出输入框和获取输入框的值: private void button1_Click(object sender, EventArgs e) { string returnValue = Microso ...

  6. gorm操作sqlite3,高并发读写如何避免锁库?

    1. 场景 这两天一直被这个sqlit3困扰,起因是项目中需要有这样一个中间,中间件承担着API角色和流量转发的角色,需要接收来自至少300个agent的请求数据,和健康检测的请求. 所以当即想到用g ...

  7. hydra暴力破解各种服务

    hydra 在爆破工具中,hydra可是数一数二的存在,是著名黑客组织thc开发的一款开源的暴力密码破解工具,可以在线破解多种密码 参数 作用 -l 指定用户名 -p 指定密码 -L 指定用户字典 - ...

  8. JavaWeb学习笔记第二弹

    (续集)DQL:查询操作 1.排序查询 排序方式:(仅有一个排序参照时) 1.升序:ASC(默认) 命令:**select * from 表名 order by 列名 (asc);** 2.降序:DE ...

  9. Javaweb项目和Maven项目的相关导包

    Javaweb项目的学习大致需要一下几个导包: 以上几个包需要导入到WEB-INF目录下的lib文件夹里面,主要操作如下: 1.新建一个lib文件夹(在WEB-INF目录下) 2.右键lib文件夹,选 ...

  10. Android笔记--选择按钮

    复选框CheckBox 具体实现: 注意: 开关按钮switch 具体实现: 单选按钮RadioButton 需要放到radioGroup里面写单选按钮 具体实现: