• 安装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. rest_framework目录

    一  REST API规范 二  rest framework框架的基本使用

  2. openstack创建虚拟流程、各组件介绍

    登录界面或命令行通过RESTful API向keystone获取认证信息. keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求. 界面或命令行通过RESTful AP ...

  3. sentry的安装和使用以及各种问题处理

    官方的git地址:https://github.com/getsentry/onpremise 需要先安装docker 1.10版本以上 假设你已经安装完docker,那么接下来 安装docker-c ...

  4. 10Linux_firewalld-Linux就该这么学

    firewalld: runtime:当前生效,重启后失效(默认) permanent:当前不生效,重启后永久生效. A:重启,B:执行firewall-cmd --reload 数据链路层:ipta ...

  5. WPF 自定义控件缩放

    方式一: 自定义控件使用固定大小绘制:控件内的各个子控件大小设定固定值 优点:控件绘制简单.快捷. 缺点:使用时如需缩放,需在自定义控件的外面加一个 ViewBox . 使用示例如下(将 UserCo ...

  6. 关于Ajax异步请求(实时刷新)

    1.需求:想要做成动态实时刷新获取数据库的值 2.例子 3.代码逻辑: <script type="text/javascript"> var Seconds=1000 ...

  7. 富文本编辑器 kindeditor

    下载 在页面中添加JS代码,用于初始化kindeditor <script type="text/javascript"> var editor; KindEditor ...

  8. springCloud面试题

    1.SpringCloud和Dubbo SpringCloud和Dubbo都是现在主流的微服务架构SpringCloud是Apache旗下的Spring体系下的微服务解决方案Dubbo是阿里系的分布式 ...

  9. json,json对象以及js对象字面量的区别

    从定义看: json:一种数据交换格式 json对象:js的一个内置对象,拥有JSON.stringify()和JSON.parse()两个方法 js对象字面量:封闭在花括号对({})中的一个对象的零 ...

  10. java api 批量数据库操作

    Statement.class:executeBatch() implement interface: PreparedStatement implement class: JdbcOdbcPrepa ...