• 安装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. win10系统搜索不到某些老式打印机

    问题: win10系统在设置选项里面搜索打印机,却找不到打印机. 百度了一下: 基本说的是驱动问题. 解决方法: 1.下载lansee局域网扫描软件 2.打开嗅探工具点击开始 3.搜索出来之后,会在共 ...

  2. c# 访问共享文件

    #region 连接共享文件夹 /// <summary> /// 连接共享文件夹 /// </summary> public bool ConnectToSharedFold ...

  3. C#递归生成HTML树,C#递归生成xml树

    C#递归生成HTML树 public StringBuilder str = new StringBuilder();   //定义一个字符串 private void get_navigation_ ...

  4. C#通过COM组件调用IDL的pro程序

    如果在“COM_IDL_connectLib.COM_IDL_connect oComIDL = new COM_IDL_connectLib.COM_IDL_connect();”步骤提示“...8 ...

  5. 再见:org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer

    这个问题我之前遇见多次了,今天又遇见了 2019-03-22 16:33:27.555 WebMvcConfigurer.java:144 ERROR - 接口 [/appservice/7za.ex ...

  6. 单片机课程设计——课程设计之四位加法计算器(2)(C代码)

    #include<reg52.h> typedef unsigned char uint8; typedef unsigned int uint16; sbit rw=P2^5; sbit ...

  7. ImportError: No module named managers

    代码: import os import cPickle as pickle filename = '../dftest.pkl' if(os.path.exists(filename)): w=op ...

  8. python_13 面向对象

    面向对象 类:把一类事物的相同特征和动作整合到一起就是类,类是一个抽象的概念 对象:就是基于类出而创建的一个具体的事物或实例(具体存在),其特征和动作整合到一起 面向对象设计:将一类具体事物的数据和动 ...

  9. Python module ---- os

    os 模块Python标准库中的一个用于访问操作系统功能的模块,使用OS模块中提供的接口,可以实现跨平台访问.提供了一个统一的操作系统接口函数, 这些接口函数通常是平台指定的,os 模块能在不同操作系 ...

  10. list<T>升序、降序

    List<test> list = new List<test> (); var result = list.OrderByDescending(p => p.we).T ...