国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Docker快速建立一個Kafka實例

yvonne / 3204人閱讀

摘要:所以此次優先選擇這個鏡像作服務的基礎。由于的基于集群的高可用特性是建基于稱之上的,因此構建可用的鏡像,是需要依賴于基礎的。構建建立一個多個組合的服務,需要獨立的文件。

0 前言

Kafka作為近幾年十分流行,雖然它自己定位為一個分布式流結構平臺"distributed streaming platform",但是我們大部分時間還是當做是一個MQ來使用:P。

剛好最近也在研究Kafka,需要為準備一下開發環境作為研究開發測使用。

Docker也是一個十分流行的虛擬應用容器平臺,能夠將主流的開源框架以容器的方式管理起來,通過組合基礎容器,構建出更復雜的應用服務,令構建環境的成本大大降低。例如之前在機器學習的項目里面,很輕松的不影響host環境的情況下,快速的將conda+tenserflow+keras等機器學習主要的開源框架整合起來。不喜歡的話刪掉image,重新以新版本構建,也是非??旖莸?。

適應了這個思路,因此這次環境的搭建,也是以Docker+kafka作為實施的目標,其中的過程,記錄下這篇文章作為日后的參考及回顧。

1 安裝docker及docker-compose

上述官方文檔也描述的比較清晰了,這里也不在贅述。

docker安裝可以參考

docker-compose安裝可以參考

2 尋找docker鏡像

有了Docker這個平臺之后,每當需要有開源環境的的框架需要搭建,都可以第一時間去docker hub上面找一下有沒有對應的官方docker鏡像。搜索了一下發型,Kafka并沒有提供官方的鏡像,能找到的都是一些社區維護的鏡像包。如:wurstmeister/kafka等。


該鏡像雖然不是官方維護的,但是依然有25M+的docker pull,及接近700的點贊量是docker hub上同類型鏡像最高的評分。所以此次優先選擇這個鏡像作服務的基礎。

3 定義docker-compose

這里我們引入docker-compose的概念,對于docker-compose我們,可以這么理解:docker-Compose = n * docker container = a complex service。

由于Kafka的基于集群的高可用特性是建基于Zookeeper(稱zk)之上的,因此構建可用的Kafka鏡像,是需要依賴于zk基礎的。因此需要用到docker-compose,將不同的容器組合成為一個完整的的服務。

構建建立一個多個container組合的服務,需要獨立的docker-compose.yml文件。

version: "3"

services:

  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka
    
    
    depends_on: [ zookeeper ]
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 47.106.143.76
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

按照上面的docker-compose.yml文件,可以將zk和Kafka整合為一個服務包,這里的基礎思路是,能夠有基礎鏡像的,優先使用基礎鏡像,否則才使用dockerfile的重新構建方式。

docker-compose.yml的對容器進行更進一步的自定義方式,可以參考docker-compose的官方文檔。

4 打包服務

將路徑切換到與docker-compose.yml文件一致的目錄下,將定義好的服務打包:

[root@somehost kafka]# docker-compose build
zookeeper uses an image, skipping
kafka uses an image, skipping

之后就可以使用docker-compose up -d命令將啟動

[root@somehost kafka]# docker-compose up -d
Starting kafka_kafka_1     ... done
Starting kafka_zookeeper_1 ... done
[root@somehost kafka]#

類似的停止服務可以使用docker-compose stop命令。
需要注意的是,docker-compose所操作的服務,都是需要根據當前目錄下的docker-compose.yml文件所定義,沒找到這個定義,docker-compose會無法得知操作哪個服務。

5 測試服務

Docker的服務起來之后,我們就可以測試服務,這里我們可以使用docker自帶的cli工具進行基本的測試,后續有機會我們再使用API調用方式測試服務。

首先我們需要檢查已經啟動的容器

[root@somehost kafka]# docker ps -a
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                                NAMES
2c3e1aacdd56        wurstmeister/kafka       "start-kafka.sh"         2 hours ago         Up 2 minutes        0.0.0.0:9092->9092/tcp                               kafka_kafka_1
20cd04496a9c        wurstmeister/zookeeper   "/bin/sh -c "/usr/sb…"   2 days ago          Up 2 minutes        22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp   kafka_zookeeper_1
[root@somehost kafka]#

從上面可以看到Kafka的container id為2c3e1aacdd56,我們可以采用下述命令行的方式進入該容器中:

docker exec -it {container id} /bin/bash
[root@somehost kafka]# docker exec -it 2c3e1aacdd56 /bin/bash
bash-4.4#
bash-4.4# ls -al
total 72
drwxr-xr-x    1 root     root          4096 Jul 13 02:00 .
drwxr-xr-x    1 root     root          4096 Jul 13 02:00 ..
-rwxr-xr-x    1 root     root             0 Jul 13 02:00 .dockerenv
drwxr-xr-x    1 root     root          4096 Apr 15 16:03 bin
drwxr-xr-x    5 root     root           340 Jul 13 03:29 dev
drwxr-xr-x    1 root     root          4096 Jul 13 02:00 etc
drwxr-xr-x    2 root     root          4096 Jan  9  2018 home
drwxr-xr-x    5 root     root          4096 Jul 13 02:00 kafka
drwxr-xr-x    1 root     root          4096 Apr 15 16:03 lib
drwxr-xr-x    2 root     root          4096 Apr 15 16:03 lib64
drwxr-xr-x    5 root     root          4096 Jan  9  2018 media
drwxr-xr-x    2 root     root          4096 Jan  9  2018 mnt
drwxr-xr-x    1 root     root          4096 Apr 15 16:03 opt
dr-xr-xr-x  101 root     root             0 Jul 13 03:29 proc
drwx------    2 root     root          4096 Jan  9  2018 root
drwxr-xr-x    1 root     root          4096 Jul 13 02:00 run
drwxr-xr-x    1 root     root          4096 Apr 15 16:03 sbin
drwxr-xr-x    2 root     root          4096 Jan  9  2018 srv
dr-xr-xr-x   13 root     root             0 Jul 13 03:29 sys
drwxrwxrwt    1 root     root          4096 Jul 13 03:29 tmp
drwxr-xr-x    1 root     root          4096 Apr 15 16:03 usr
drwxr-xr-x    1 root     root          4096 Apr 15 16:03 var
bash-4.4#

如上,就可以看見kafka容器里面的內容了。

再執行Kafka-cli的測試工具


bash-4.4# export ZK=zookeeper:2181
bash-4.4# echo $ZK
zookeeper:2181


bash-4.4# $KAFKA_HOME/bin/kafka-topics.sh --create --topic topic --partitions 4 --zookeeper $ZK --replication-factor 1
Created topic "topic".

至此,一個docker完整的ZK+Kafka容器服務就開啟了,雖然離生產節點還有些距離,但是已經可以在上面建立完整的應用開發了。有機會再聊。

參考文獻

Kafka說明文檔
docker說明文檔
docker-compose說明文檔
wurstmeister/kafka docker鏡像說明文檔

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27381.html

相關文章

  • 海航生態科技輿情大數據平臺容器化改造

    摘要:本文轉載自微信公眾號賬號,作者為海航生態科技技術研究院大數據開發工程師高顏。文章介紹了海航生態科技輿情大數據平臺的容器化改造經驗,包括初期技術架構應用容器化架構遷移持續發布與部署。 本文轉載自微信公眾號Docker(賬號:dockerone),作者為海航生態科技技術研究院大數據開發工程師高顏。 文章介紹了海航生態科技輿情大數據平臺的容器化改造經驗,包括初期技術架構、應用容器化、架構遷...

    idealcn 評論0 收藏0
  • 基于Docker的日志分析平臺(三) 快速入門

    摘要:是一個日志收集器,支持非常多的輸入源和輸出源。這個庫支持展開文件路徑,而且會記錄一個叫的數據庫文件來跟蹤被監聽的日志文件的當前讀取位置。 1.Zookeeper 對于Zookeeper我們用一條簡單的命令來測試一下: echo ruok|nc localhost 2181 你應該可以看到: imok 2.Kafka Kafka 是由 Linked 開發并且開源的一套分布式的流平臺,它類...

    afishhhhh 評論0 收藏0
  • SpringBoot RabbitMQ 整合使用

    摘要:可以在地址看到如何使用講解下上面命令行表示控制臺端口號,可以在瀏覽器中通過控制臺來執行的相關操作。同時從控制臺可以看到發送的速率多線程測試性能開了個線程,每個線程發送條消息。 showImg(http://ww2.sinaimg.cn/large/006tNc79ly1g5jjb62t88j30u00gwdi2.jpg); 前提 上次寫了篇文章,《SpringBoot Kafka 整合...

    yuanxin 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<