Apache Kafka的环境设置和快速入门

用VirtualBox-Vagrant-Ansible创建环境,轻松尝试搭建Kafka。

环境

    • macos 10.12.5

 

    • Vagrant 1.9.7

 

    • ansible 2.3.1.0

 

    VirtualBox 5.1.24

快速启动

尝试按照https://kafka.apache.org/quickstart中所述的步骤进行操作。

本来应该根据提供者、调解者和消费者的三个角色分别建立服务器,但快速入门中只使用一个服务器进行操作。

建立 或 构建

流浪者的Vagrantfile

    Ubuntu 16.04 LTS “Xenial Xerus”を利用する。
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"

  config.vm.provider "virtualbox" do |vb|
     vb.memory = "2048"
  end

  config.vm.provision "ansible_local" do |ansible|
    ansible.playbook = "playbook.yml"
  end
end

请执行ansible playbook.yml。

    • Kafkaの動作にはscalaとjavaが必要。

 

    20170723時点で最新バージョン(kafka_2.11-0.11.0.0.tgz)
- hosts: all
  become: yes

  vars:
    scala_version: "2.11"
    kafka_version: "0.11.0.0"

    install_dir: "/opt"
    symlink_name: "kafka"
    kafka_name: "kafka_{{ scala_version }}-{{ kafka_version }}"
    kafka_download_url: "http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/kafka/{{ kafka_version }}/{{ kafka_name }}.tgz"

  tasks:
  - name: ensure openjdk8 present
    apt:
      name: "openjdk-8-jdk"
      state: present
      update_cache: yes

  - name: ensure kafka present
    unarchive:
      remote_src: yes
      src: "{{ kafka_download_url }}"
      dest: "{{ install_dir }}"

  - name: ensure symlink present
    file:
      src: "{{ install_dir }}/{{ kafka_name }}"
      dest: "{{ install_dir }}/{{ symlink_name }}"
      mode: 0755
      state: link

尝试运行Kafka.

请转到已安装的文件夹。

$ cd /opt/kafka

文件夹的组成情况是这样的。

kafka/
    config/ #サーバの設定ファイルなどが保管
    bin/ #起動やテストのシェル類
    libs/ #libs zookeeperをはじめとるlibが保管
    site-docs/ #tgz本体を保管
    LICENSE
    NOTICE

在Kafka(Broker)的背后,需要运行一个名为Zookeeper的服务。对于大规模的分布式处理,使用ZooKeeper来实现。

启动ZooKeeper(localhost:2181)。

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

启动 Kafka(代理本地主机:9092)

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

创建主题

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

确认创建的主题

$ bin/kafka-topics.sh --list --zookeeper localhost:2181
test

通过使用Shell,可以测试生产者和消费者的操作。(实际使用时将以API形式进行,这里仅仅测试操作)

“`
$ bin/kafka-console-producer.sh –broker-list localhost:9092 –topic test
(当您完成输入消息后,请按Ctrl+C退出)
“`

这是一条测试信息
这是第二条测试信息

消息接收(消费者)

$bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
This is a test message
This is a second test message

多集群化(未完成)

尝试在同一服务器上更改端口来实现多集群。(本应在不同环境下构建,但是通过查看设置,大致可以看出需要更改的地方)

编辑 config/server.properties。

$ sudo cp config/server.properties config/server-1.properties
$ sudo cp config/server.properties config/server-2.properties

因为累了,今天就到这里吧。如果心情好了,我会写完快速入门部分。

请给出一个选项

参考意见

原文链接:https://kafka.apache.org

中文翻译:本家链接:https://kafka.apache.org

这两个网站对于解释 Kafka 很容易理解。

使用vagrant和ansible进行环境搭建时我参考过的网站:
https://github.com/eucuepo/vagrant-kafka

广告
将在 10 秒后关闭
bannerAds