Kafka是由Apache软件基金会开发的一个高吞吐量的分布式发布订阅消息系统,由Scala和Java编写。官网地址:http://kafka.apache.org

0.基本概念

  Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker。
  Topic:每条发布到Kafka集群的消息都有一个主题名称,这个主题名称就被称为Topic。
  Partition:Partition是物理上的概念,每个Topic包含一个或多个Partition。
  Producer:消息生产者,负责发布消息到Kafka broker。
  Consumer:消息消费者,向Kafka broker读取消息的客户端。
  Consumer Group:每个Consumer属于一个特定的Consumer Group,group name可单独设定,若不设定则属于默认的group。

1.安装步骤

  系统:Centos7.2

  JDK:   java1.8

  另外需要安装zookeeper,可以使用已有的zookeeper服务,新版的kafka已内置了一个zookeeper环境,也可以直接使用。

  (1)下载

  kafka安装包下载地址:http://mirrors.shu.edu.cn/apache/kafka/2.1.0/kafka_2.11-2.1.0.tgz

  /bin 可执行脚本目录

  /config 配置文件目录

tar -xzf kafka_2.-2.1..tgz
cd kafka_2.-2.1.

  (2)启动zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties

  (3)配置kafka相关属性

broker.id=   //唯一标识
listeners=PLAINTEXT://:9092 指定服务的端口
advertised.listeners=PLAINTEXT://192.168.31.222:9092 如果要提供外网访问 必须配置此项
log.dirs=/tmp/kafka-logs- //日志目录

  (4)启动服务

bin/kafka-server-start.sh config/server.properties &

  (5)检查服务

[root@localhost config]# netstat -tunlp|egrep "(2181|9092)"
tcp6 ::: :::* LISTEN /java
tcp6 ::: :::* LISTEN /java

2.集群配置

  所谓的kafka集群就是指多个broker组成的集群,通过zookeeper来进行管理。以下在本机部署三个broker组成的集群。

  首先将config/server.properties的复制三份,分别命名为server-0.properties、server-1.properties、server-2.properties,分别配置如下:

  server-0.properties:

broker.id=
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.31.222:9092
log.dirs=/tmp/kafka-logs-

  server-1.properties:

broker.id=
listeners=PLAINTEXT://:9093
advertised.listeners=PLAINTEXT://192.168.31.222:9093
log.dirs=/tmp/kafka-logs-

  server-2.properties:

broker.id=
listeners=PLAINTEXT://:9094
advertised.listeners=PLAINTEXT://192.168.31.222:9094
log.dirs=/tmp/kafka-logs-

  然后分别都启动就可以了:

bin/kafka-server-start.sh config/server-.properties &
bin/kafka-server-start.sh config/server-.properties &
bin/kafka-server-start.sh config/server-.properties &

  查看是否启动了:

[root@localhost ~]# netstat -tunlp|egrep "(2181|9092|9093|9094)"
tcp6 ::: :::* LISTEN /java
tcp6 ::: :::* LISTEN /java
tcp6 ::: :::* LISTEN /java
tcp6 ::: :::* LISTEN /java

3.客户端调用

  客户端使用.net core测试,使用官网推荐的confluent-kafka-dotnet类库

  生产者代码:通过192.168.31.222:9092发布消息

public static void Main(string[] args)
{
var conf = new ProducerConfig { BootstrapServers = "192.168.31.222:9092" };
Action<DeliveryReportResult<Null, string>> handler = r =>
Console.WriteLine(!r.Error.IsError
? $"Delivered message to {r.TopicPartitionOffset}"
: $"Delivery Error: {r.Error.Reason}"); using (var p = new Producer<Null, string>(conf))
{
for (int i=; i<; ++i){
p.BeginProduce("my-topic", new Message<Null, string> { Value = i.ToString() }, handler);
}
p.Flush(TimeSpan.FromSeconds());
}
}

  消费者代码:通过192.168.31.222:9093订阅接收消息

public static void Main(string[] args)
{
var conf = new ConsumerConfig
{
GroupId = "test-consumer-group",
BootstrapServers = "192.168.31.222:9093",
AutoOffsetReset = AutoOffsetResetType.Earliest
};
using (var c = new Consumer<Ignore, string>(conf))
{
c.Subscribe("my-topic");
bool consuming = true;
c.OnError += (_, e) => consuming = !e.IsFatal;
while (consuming)
{
try{
var cr = c.Consume();
Console.WriteLine($"Consumed message '{cr.Value}' at: '{cr.TopicPartitionOffset}'.");
}
catch (ConsumeException e){
Console.WriteLine($"Error occured: {e.Error.Reason}");
}
}
c.Close();
}
}

Kafka安装配置的更多相关文章

  1. Kafka 安装配置 windows 下

    Kafka 安装配置 windows 下 标签(空格分隔): Kafka Kafka 内核部分需要安装jdk, zookeeper. 安装JDK 安装JDK就不需要讲解了,安装完配置下JAVA_HOM ...

  2. 一、kafka 安装配置

    Kafka是什么 Kafka最初是由LinkedIn公司采用Scala语言开发的一个分布式.多分区.多副本且基于ZooKeeper协调的内部基础设置,现已捐献给Apache基金会.Kafka是一个流平 ...

  3. 3.kafka安装配置

    kafka安装配置 ### 1.集群规划 hadoop102 hadoop103 hadoop104 zk zk zk kafka kafka kafka jar包下载 http://kafka.ap ...

  4. Kafka 安装配置

    1. 下载安装kafka 下载地址:http://apache.fayea.com/kafka/ 解压安装包 tar zxvf kafka_版本号.tgz 2. 配置 修改kafka的config/s ...

  5. kafka安装配置及操作(官方文档)http://kafka.apache.org/documentation/(有单节点多代理配置)

    https://www.cnblogs.com/biehongli/p/7767710.html w3school https://www.w3cschool.cn/apache_kafka/apac ...

  6. 消息队列集群kafka安装配置

    1. 下载wget http://mirror.rise.ph/apache/kafka/0.11.0.0/kafka_2.12-0.11.0.0.tgz2. 安装tar xf kafka_2.12- ...

  7. Kafka 安装配置 及 简单实验记录

    1. 下载二进制文件并解压,并修改 broker.id 的值 wget http://apache.fayea.com/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz - ...

  8. KAFKA安装+配置详解+常用操作+监控

    http://blog.csdn.net/hadas_wang/article/details/50056381 http://qiyishi.blog.51cto.com/5731577/18575 ...

  9. kafka系列一、kafka安装及部署、集群搭建

    一.环境准备 操作系统:Cent OS 7 Kafka版本:kafka_2.10 Kafka官网下载:请点击 JDK版本:1.8.0_171 zookeeper-3.4.10 二.kafka安装配置 ...

随机推荐

  1. 【导航】FPGA相关

    [博客索引] FPGA相关 数字电路实现上,较多的经验是基于Xilinx/Altera的FPGA,使用Verilog语言,实现光传输SDH.OTN通信协议,DDR3控制器应用,以及视频分割.合并.sc ...

  2. 013_针对单个pid的cpu/内存/io的资源占用统计

    #!/usr/bin/env python import sys import os import subprocess from decimal import Decimal from decima ...

  3. springmvc源码分析——入门看springmvc的加载过程

    本文将分析springmvc是如何在容器启动的时候将各个模块加载完成容器的创建的. 我知道在web.xml文件中我们是这样配置springmvc的: 可以看到,springmvc的核心控制器就是Dis ...

  4. dump文件解析之探索.Net的内存

    前言: 对于需要长时间运行的.net程序,有时需要我们查看内存的使用有没有内存泄露问题. 我们可以从dump文件中找到答案. Dump的看点 用dump文件来分析内存,到底我们需要关心哪些点呢? 内存 ...

  5. Python----逻辑回归

    逻辑回归 1.逻辑函数 sigmoid函数就出现了.这个函数的定义如下: sigmoid函数具有我们需要的一切优美特性,其定义域在全体实数,值域在[0, 1]之间,并且在0点值为0.5. 那么,如何将 ...

  6. springboot项目从硬盘指定位置读取文件(获取静态资源)

    方法一:继承WebMvcConfigurerAdapter类 package com.imooc.demo.config; import org.springframework.context.ann ...

  7. SpringBoot自动装配源码解析

    序:众所周知spring-boot入门容易精通难,说到底spring-boot是对spring已有的各种技术的整合封装,因为封装了所以使用简单,也因为封装了所以越来越多的"拿来主义" ...

  8. 【THUSC2017】【LOJ2982】宇宙广播 计算几何 高斯消元

    题目大意 有 \(n\) 个 \(n\) 维空间中的球,求这些球的所有公切面. 保证不会无解或有无穷多组解. \(n\leq 10\) 题解 你可以认为这是一道传统题. 记公切面为 \(a_1x_1+ ...

  9. python学习日记(正则表达式)

    定义 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Pyth ...

  10. pt-show-grants的用法

    pt-show-grants的用法 1.先查找所有用户和Host 2.然后逐个执行show grants pt-show-grants的功能是格式化打印输出MySQL上的赋权,以便你可以有效地复制.比 ...