docker 初體驗(yàn) Emqtt分布式百萬消息并發(fā)

環(huán)境centos 7

1.docker 安裝與基本操作

1).安裝
# 通過yum源安裝docker
yum -y install docker
# 啟動(dòng)docker
systemctl start docker
# 開機(jī)自啟
sudo systemctl enable docker

可能會(huì)遇到以下問題
/usr/bin/docker-current: Error response from daemon: Conflict. The container name "/gogs" is already in use by container 84f0d9ee2534e62de3602d65f4bbcc158fde5328a38bc2203a2486671483720b. You have to remove (or rename) that container to be able to reuse that name..
See '/usr/bin/docker-current run --help'.

2).查詢所有容器
docker ps -a
3).移除容器
docker rm e3274a72e8d6

2.應(yīng)用實(shí)例:emqtt

通過 Docker Hub 獲取

docker pull emqx/emqx:v4.0.0

啟動(dòng) docker 容器

$ docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.0.0

啟動(dòng)后課訪問后臺(tái)
http://localhost:18083/

docker run -tid --name emq20 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18084:18083 emqttd-docker-v2.x

docker start emq20
docker stop emq20

EMQ 消息服務(wù)器默認(rèn)占用的 TCP 端口包括:

1883 MQTT 協(xié)議端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
8080 HTTP API 端口
18083 Dashboard 管理控制臺(tái)端口

EMQ 占用的上述端口做葵,可通過 etc/emq.conf 配置文件的 ‘listener’ 段落設(shè)置:

TCP Listener: 1883, 127.0.0.1:1883, ::1:1883

listener.tcp.external = 0.0.0.0:1883

SSL Listener: 8883, 127.0.0.1:8883, ::1:8883

listener.ssl.external = 8883

External MQTT/WebSocket

Listenerlistener.ws.external = 8083

HTTP Management API

Listenerlistener.api.mgmt = 127.0.0.1:8080

通過注釋或刪除相關(guān)段落艺智,可禁用相關(guān) TCP 服務(wù)啟動(dòng)缰犁。
18083端口是 Web 管理控制占用自赔,該端口由 emq_dashboard 插件啟用成黄。
控制臺(tái) URL: http:://localhost:18083/,默認(rèn)登錄用戶名: admin, 密碼: public

作者:書簡(jiǎn)的花果山
鏈接:http://www.reibang.com/p/2f55b668e5a9
來源:簡(jiǎn)書
著作權(quán)歸作者所有介牙。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)壮虫,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

使用 docker-compose 創(chuàng)建簡(jiǎn)單的 static 集群

創(chuàng)建 docker-compose.yaml 文件
version: '3'

services:
  emqx1:
    image: emqx/emqx:v4.0.0
    environment:
    - "EMQX_NAME=emqx"
    - "EMQX_HOST=node1.emqx.io"
    - "EMQX_CLUSTER__DISCOVERY=static"
    - "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"
    - "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s"
    - "EMQX_MQTT__MAX_TOPIC_ALIAS=10"
    volumes:
        - ./tmp/emqx.lic:/opt/emqx/etc/emqx.lic
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    networks:
      emqx-bridge:
        aliases:
        - node1.emqx.io

  emqx2:
    image: ${IMAGE}
    environment:
    - "EMQX_NAME=emqx"
    - "EMQX_HOST=node2.emqx.io"
    - "EMQX_CLUSTER__DISCOVERY=static"
    - "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"
    - "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s"
    - "EMQX_MQTT__MAX_TOPIC_ALIAS=10"
    volumes:
        - ./tmp/emqx.lic:/opt/emqx/etc/emqx.lic
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    networks:
      emqx-bridge:
        aliases:
        - node2.emqx.io

  client:
    image: python:3.7.2-alpine3.9
    depends_on:
      - emqx1
      - emqx2
    tty: true
    networks:
        emqx-bridge:

networks:
  emqx-bridge:
    driver: bridge

啟動(dòng) docker-compose 集群

$ docker-compose -p my_emqx up -d

查看集群

$ docker exec -it my_emqx_emqx1_1 sh -c "emqx_ctl cluster status"
Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'],
                  stopped_nodes => []}

3.實(shí)例nodejs

##下載鏡像
docker pull node
##裝載鏡像
docker images

進(jìn)入docker 環(huán)境

docker run -i -t node /bin/bash
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市线得,隨后出現(xiàn)的幾起案子饶唤,更是在濱河造成了極大的恐慌,老刑警劉巖贯钩,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件募狂,死亡現(xiàn)場(chǎng)離奇詭異办素,居然都是意外死亡祸穷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門雷滚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祈远,你說我怎么就攤上這事〕捣荩” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵躬充,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我充甚,道長(zhǎng),這世上最難降的妖魔是什么伴找? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮抖誉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘衰倦。我一直安慰自己,他們只是感情好樊零,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夺艰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪郁副。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天存谎,我揣著相機(jī)與錄音,去河邊找鬼既荚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛固以,可吹牛的內(nèi)容都是我干的嘱巾。 我是一名探鬼主播憨琳,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼旬昭,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了问拘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤骤坐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后纽绍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僧著,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年障簿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盹愚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片站故。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖世蔗,靈堂內(nèi)的尸體忽然破棺而出端逼,到底是詐尸還是另有隱情污淋,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布寸爆,位于F島的核電站盐欺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冗美。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一粉洼、第九天 我趴在偏房一處隱蔽的房頂上張望叶摄。 院中可真熱鬧属韧,春花似錦蛤吓、人聲如沸宵喂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)淌山。三九已至裸燎,卻和暖如春泼疑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背王浴。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氓辣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓钞啸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親体斩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350