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. Core官方DI解析(5)-ServiceProviderEngine

    最后来看看前面一直说的Engine(工作引擎),工作引擎接口是IServiceProviderEngine在ServiceProvider的构造函数中看到了根据指定的Mode创建了不同的实现类,下面先 ...

  2. 【深色模式】macOS Mojave+Visual Studio for Mac+FineUICore多图赏析!

    全面开启深色模式,今早成功升级到 macOS Mojave,下面就来欣赏一下吧. 点击图片,查看大图 1. 下载 macOS Mojave 2. 安装成功,开启深色模式 3. 来一张桌面截图 4. 开 ...

  3. EntityFramework Core进行读写分离最佳实践方式,了解一下(二)?

    前言 写过上一篇关于EF Core中读写分离最佳实践方式后,虽然在一定程度上改善了问题,但是在评论中有的指出更换到从数据库,那么接下来要进行插入此时又要切换到主数据库,同时有的指出是否可以进行底层无感 ...

  4. Fuck me

    know how to deal with \(\sum_i\binom{n}{i}a^i\)??

  5. JS 设计模式七 -- 模板方法模式

    概念 模板方法模式是一直昂只需使用继承就可以实现的非常简单的模式. 模板方法模式由两部分结构组成,第一部分是抽象父类,第二部分是具体实现的子类. 实现 模板方法模式一般的实现方式为继承. // 体育运 ...

  6. keras02 - hello convolution neural network 搭建第一个卷积神经网络

    本项目参考: https://www.bilibili.com/video/av31500120?t=4657 训练代码 # coding: utf-8 # Learning from Mofan a ...

  7. Java 静态内部类的加载时机

    参考文章:[https://www.cnblogs.com/maohuidong/p/7843807.html] 前言: 在看单例模式的时候,在网上找帖子看见其中有一种(IoDH) 实现单例的方式,其 ...

  8. Quill 富文本编辑器

    Quill 富文本编辑器 https://quilljs.com/ https://github.com/quilljs/quill https://github.com/quilljs/awesom ...

  9. 搭建Eureka注册中心

    创建一个Spring Boot工程,命名为eureka-server,并在pom.xml中引入必要的依赖,代码如下. <parent> <groupId>org.springf ...

  10. vue cli使用融云实现聊天

    公司有个项目要实现一个聊天功能,需求如下图,略显随意 公司最终选择融云这个吊炸天的即时通信,文档详细的一匹,刚开始看文档感觉很详细实现起来也不麻烦,有很多开源的demo可以在线演示和下载 不过我们的项 ...