• 安装JDK
  1. 下载jdk-8u202-ea-bin-b03-linux-x64-07_nov_2018.tar.gz
  2. 解压
  3. 配置
  4. $ vi /etc/profile,在最后加入下面两行
      export JAVA_HOME=/usr/local/bigdata/jdk1.8.0_202
      export PATH=$JAVA_HOME/bin:$PATH
  5. 重新登录执行 java,验证JDK配置成功
  • 安装Kafka
  1. 下载kafka_2.11-1.0.2.tgz,这里主要1.0.2这个Kafka Server的 版本需要和客户端Spring-Kafka的版本对应,具体对应关系请看https://spring.io/projects/spring-kafka
  2. 解压 tar -xzvf kafka_2.11-1.0.2.tgz
  3. 配置 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
  4. 启动 Zookeeper
    bin/zookeeper-server-start.sh config/zookeeper.properties
  5. 启动 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 --topic test  
  • 查看Topic是否创建成功
  • bin/kafka-topics.sh --list --zookeeper 192.168.198.128:2181
  • 本地Producer及Consumer演示
  1. 创建一个本地消息消费者
    bin/kafka-console-consumer.sh --bootstrap-server 192.168.198.128:9092 --topic test --from-beginning
  2. 创建一个本地消息生产者
    bin/kafka-console-producer.sh --broker-list 192.168.198.128:9092 --topic test
  3. 在生产者端输入消息,消费者端将会打印此消息
  • 远程Consumer演示(Windows 平台)
  1. 下载kafka_2.11-1.0.2.tgz解压并进入bin/windows
  2. 创建一个远程消费者
    kafka-console-consumer.bat --bootstrap-server 192.168.198.128:9092 --topic test --from-beginning
  3. 在Linux平台生成者端输入消息,检查windows端远程消费者是否打印此消息
  • Spring Boot集成配置

    在Maven中添加依赖

    <!--kafka-->
    <dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
    <version>1.3.8.RELEASE</version>
    </dependency>
    关于依赖版本及Kafka Server的版本的对应关系,查看https://spring.io/projects/spring-kafka
  • 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的集成的更多相关文章

  1. Spring Boot快速集成kaptcha生成验证码

    Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码,以图片的形式显示,从而无法进行复制粘贴:下面将详细介绍下Spring Boot快速集成kaptcha生成验证码的过程. 本 ...

  2. [转帖]spring boot项目集成jacoco

    小试牛刀:spring boot项目集成jacoco 2019-03-28 20:14:36 zyq23333 阅读数 509   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议, ...

  3. Spring Boot:集成Druid数据源

    综合概述 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据 ...

  4. shiro 和 spring boot 的集成

    1 添加依赖 使用 shiro-spring-boot-web-starter 在 spring boot 中集成 shiro 只需要再添加一个依赖 <dependency> <gr ...

  5. Java | Spring Boot Swagger2 集成REST ful API 生成接口文档

      Spring Boot Swagger2 集成REST ful API 生成接口文档 原文 简介 由于Spring Boot 的特性,用来开发 REST ful 变得非常容易,并且结合 Swagg ...

  6. Spring Boot 项目集成 Alibaba Druid

    Druid 是一个非常好用的数据库连接池,但是他的好并不止体现在作为一个连接池加快数据访问性能上和连接管理上,他带有一个强大的监控工具:Druid Monitor.不仅可以监控数据源和慢查询,还可以监 ...

  7. Spring Boot Redis 集成配置(转)

    Spring Boot Redis 集成配置 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px #ede ...

  8. spring boot 2 集成JWT实现api接口认证

    JSON Web Token(JWT)是目前流行的跨域身份验证解决方案.官网:https://jwt.io/本文使用spring boot 2 集成JWT实现api接口验证. 一.JWT的数据结构 J ...

  9. elasticsearch 的安装配置与spring boot的整合应用

    linux上的elasticsearch安装 一.下载elasticsearch 直接进入elasticsearch的官网,下载最新的安装包:https://www.elastic.co/downlo ...

随机推荐

  1. Flask即插视图与tornado比较

    由于公司使用了Tornado框架和Flask框架,之前一直使用的都是Flask框架,已经对url下面紧跟着视图的写法很固执.刚开始接触Tornado框架,对于其url和视图分开的写法思想上无法转变.今 ...

  2. C# 使用缓存数据模拟抢购

      在所有的电商网站中,不乏大量的抢购,比如双十一,双十二等等,作为一名开发人员考虑最多的就是多并发以及高并发 废话少说,开始写代码.我用了C#的MemoryCache代替试下流行的各种缓存 商品测试 ...

  3. Linux 修改zabbix server的web访问端口

    在安装zabbix server的时候默认就安装了apache,zabbix依靠apache提供的web服务,修改Zabbix的浏览器访问端口,就是修改apache的服务端口(默认端口:80) 1.编 ...

  4. 记一次使用getRequestDispatcher遇到的坑。。响应页面出现新建下载任务

    getRequestDispatcher RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是 ...

  5. HTTPS 基本流程2

    Https在真正请求数据前,先会与服务有几次握手验证,以证明相互的身份,以下图为例 2.1  验证流程 注:文中所写的序号与图不对应但流程是对应的 1 客户端发起一个https的请求,把自身支持的一系 ...

  6. java web复习(二)

    三.四种属性范围及应用 setAttribute(String name,Object o)设置属性 getAttribute(String name)根据属性名取得属性 removeAttribut ...

  7. shell脚本中获取当前所在目录地址

    shell脚本中获取当前所在目录如下 #!/bin/bash work_path=$() cd ${work_path} work_path=$(pwd) cd ${work_path}/src

  8. 自学PHP的正确方法与经验

    我是2015年开始接触认识到PHP编程方面的知识,2012年我还是一名刚毕业的大学生开始踏入社会从事自己一份学校推荐的自动化职业,自动化工作枯燥无味,每天基本上3点一线,食堂-公司机器-宿舍,做了3年 ...

  9. MongoDB主从复制和副本集

    MongoDB有主从复制和副本集两种主从复制模式,主从复制最大的问题就是无法自动故障转移,MongoDB副本集解决了主从模式无法自动故障转义的特点,因此是复制的首选.对于简单的主从复制无法自动故障转移 ...

  10. 【C++】纯C++实现http打开网页下载内容的功能

    #include "stdafx.h" #include <windows.h> #include <iostream> #include "Wi ...