TDEngine2.0在Docker集群網(wǎng)絡(luò)環(huán)境中的使用

背景場(chǎng)景

自TDEngine從1.0開(kāi)始我們就一直試圖使TDEngine容器化來(lái)適配我們現(xiàn)有的微服務(wù)場(chǎng)景扁耐。TDEngine容器化之后有諸多好處:①方便部署升級(jí)運(yùn)維不依賴宿主環(huán)境情況 ?②安全,在容器網(wǎng)絡(luò)中用踩,不做端口映射外部無(wú)法獲取數(shù)據(jù) ③方便遷移和備份。在1.0版本由于諸多原因沒(méi)有利用容器化的方式使用TDEngine忙迁,這次2.0升級(jí)通過(guò)我們多方共同努力脐彩,最終使TDEngine2.0不僅可以滿足于生產(chǎn)集群化部署,也方便本地調(diào)試和測(cè)試姊扔。

Docker集群創(chuàng)建

Docker集群網(wǎng)絡(luò)這一塊惠奸,我們使用的是Docker Swarm來(lái)作為網(wǎng)絡(luò)搭建的基礎(chǔ)。先創(chuàng)建Docker集群恰梢。

docker?swarm?init

docker?swarm?join-token?manager


集群創(chuàng)建示意

其他Docker節(jié)點(diǎn)根據(jù)令牌加入Docker集群佛南。

已經(jīng)創(chuàng)建的集群

這個(gè)節(jié)點(diǎn)全部加入集群后的效果梗掰。我們的方案是在集群網(wǎng)絡(luò)的3臺(tái)云主機(jī)上部署TDEngine以及配套的服務(wù)。

集群網(wǎng)絡(luò)搭建

預(yù)先創(chuàng)建集群網(wǎng)絡(luò)嗅回,使TDEngine各個(gè)Docker節(jié)點(diǎn)能夠跨主機(jī)組網(wǎng)及穗。

docker?network?create?-d?overlay?--attachable?--subnet?10.10.68.0/24??tdengine_v2_net


創(chuàng)建后的集群網(wǎng)絡(luò)

TDEngine數(shù)據(jù)庫(kù)集群創(chuàng)建

創(chuàng)建TDEngine數(shù)據(jù)庫(kù)集群之前我們需要先做幾個(gè)準(zhǔn)備工作:

① 構(gòu)造TDEngine版本鏡像。(目前官方提供了開(kāi)源版的鏡像绵载,企業(yè)版需要自己編譯)

② 確定各個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)信息(包括IP分配埂陆、主機(jī)名稱等)。

③ 創(chuàng)建TDEngine各個(gè)節(jié)點(diǎn)的配置文件信息娃豹。

④ 節(jié)點(diǎn)docker-compose.yml啟動(dòng)信息焚虱。

針對(duì)①的鏡像構(gòu)造Dockerfile:

FROM?centos:8?as?builder

ARG?PACKAGE=TDengine-enterprise-server-1.6.5.10-Linux-x64.tar.gz

ARG?EXTRACTDIR=TDengine-enterprise-server

ARG?CONTENT=taos.tar.gz

WORKDIR?/root

COPY?${PACKAGE}?.

RUN?tar?-zxf?${PACKAGE}?&&?\

mv?${EXTRACTDIR}/driver?./lib?&&?\

tar?-zxf?${EXTRACTDIR}/${CONTENT}


FROM?centos:8

WORKDIR?/root

RUN?yum?install?-y?glibc-langpack-en?dmidecode?gdb

COPY?--from=builder?/root/bin/taosd?/usr/bin

COPY?--from=builder?/root/bin/taos?/usr/bin

COPY?--from=builder?/root/cfg/taos.cfg?/etc/taos/

COPY?--from=builder?/root/lib/libtaos.so.*?/usr/lib/libtaos.so.1

ENV?LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib"

ENV?LC_CTYPE=en_US.UTF-8

ENV?LANG=en_US.UTF-8

EXPOSE?6030-6041/tcp?6060/tcp?6030-6039/udp

VOLUME?[?"/var/lib/taos",?"/var/log/taos",?"/etc/taos"?]

CMD?[?"taosd"?]

針對(duì)②網(wǎng)絡(luò)信息:

tdengine_v2_node1 -> 10.10.68.10

tdengine_v2_node2?-> 10.10.68.11

tdengine_v2_node3 -> 10.10.68.12

針對(duì)③各節(jié)點(diǎn)配置信息:

taos1.cfg

firstEp??10.10.68.10:6030

secondEp?10.10.68.11:6030

fqdn?????10.10.68.10

balance??0

taos2.cfg

firstEp??10.10.68.10:6030

secondEp?10.10.68.11:6030

fqdn?????10.10.68.11

balance??0?

taos3.cfg

firstEp??10.10.68.10:6030

secondEp?10.10.68.11:6030

fqdn?????10.10.68.11

balance??0??

針對(duì)④的啟動(dòng)信息

version:?'3.7'

networks:

??tdengine_v2_net:

????external:?true

services:?

??tdengine-node1:

????build:

??????context:?.

??????args:

????????-?PACKAGE=TDengine-enterprise-server-2.0.3.1-Linux-x64.tar.gz

????image:?tdengine_ee

????container_name:?tdengine_v2_node1

????hostname:?tdengine_v2_node1

????cap_add:

??????-?ALL

????stdin_open:?true

????tty:?true

????environment:

??????TZ:?"Asia/Shanghai"

????command:?>

??????sh?-c?"ln?-snf?/usr/share/zoneinfo/$TZ?/etc/localtime?&&?

??????echo?$TZ?>?/etc/timezone?&&

??????exec?my-main-application"

????volumes:?

??????#?bind?data?directory

???-?type:?bind

????????source:?/mydata/node1/data

????????target:?/var/lib/taos

??????#?bind?log?directory

??????-?type:?bind

????????source:?/mydata/node1/log

????????target:?/var/log/taos

??????#?bind?configuration

??????-?type:?bind

????????source:?/mydata/node1/cfg

????????target:?/etc/taos

??????-?type:?bind

????????source:?/root/tdengine

????????target:?/root/tdengine

????networks:

????????tdengine_v2_net:

????????????ipv4_address:?10.10.68.10

????restart:?always

????command:?taosd

其他幾個(gè)節(jié)點(diǎn)配置信息和上述節(jié)點(diǎn)類似,修改對(duì)應(yīng)的名稱即可培愁。

TDEngine集群?jiǎn)?dòng)以及動(dòng)態(tài)配置

集群中的每個(gè)節(jié)點(diǎn)分別啟動(dòng)之后著摔,需要進(jìn)入主節(jié)點(diǎn)中打開(kāi)taos shell,在里面手動(dòng)創(chuàng)建集群節(jié)點(diǎn)定续。使用命令

?create dnode “tdengine_v2_node2”;?

create dnode “tdengine_v2_node3”;


創(chuàng)建集群節(jié)點(diǎn)


從上圖演示實(shí)例中可以看出集群已經(jīng)成功創(chuàng)建并且運(yùn)行了


業(yè)務(wù)服務(wù)訪問(wèn)TDEngine數(shù)據(jù)庫(kù)以及使用

目前TDEngine數(shù)據(jù)庫(kù)已經(jīng)正式支持了JDBC和MyBatis谍咆,利用SpringBoot框架可以很輕松的訪問(wèn)。目前服務(wù)也都是容器化私股,需要容器做3出修改就可以訪問(wèn)TDEngine集群:

① 使業(yè)務(wù)服務(wù)和TDEngine處于同一docker網(wǎng)絡(luò)摹察。就是之前配置的:tdengine_v2_net

② 配置taos.cfg到/etc/taos/taos.cfg(從主節(jié)點(diǎn)復(fù)制一份即可)

③ 配置與服務(wù)端配套的libtaos.so到/usr/lib/libtaos.so(一定得是相同版本,否則會(huì)無(wú)法訪問(wèn))


數(shù)據(jù)庫(kù)連接狀態(tài)

通過(guò)show connections;客戶端已經(jīng)成功連接倡鲸!至此本次分享已經(jīng)都結(jié)束了供嚎,當(dāng)然通過(guò)這個(gè)案例讀者還可以將集成程度做的更高,最終思想和流程就是以上分享中所描述的峭状。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末克滴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子优床,更是在濱河造成了極大的恐慌劝赔,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胆敞,死亡現(xiàn)場(chǎng)離奇詭異着帽,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)移层,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門仍翰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人观话,你說(shuō)我怎么就攤上這事予借。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵蕾羊,是天一觀的道長(zhǎng)喧笔。 經(jīng)常有香客問(wèn)我帽驯,道長(zhǎng)龟再,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任尼变,我火速辦了婚禮利凑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嫌术。我一直安慰自己哀澈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布度气。 她就那樣靜靜地躺著割按,像睡著了一般。 火紅的嫁衣襯著肌膚如雪磷籍。 梳的紋絲不亂的頭發(fā)上适荣,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音院领,去河邊找鬼弛矛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛比然,可吹牛的內(nèi)容都是我干的丈氓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼强法,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼万俗!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起饮怯,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤闰歪,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后硕淑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體课竣,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年置媳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了于樟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拇囊,死狀恐怖迂曲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寥袭,我是刑警寧澤路捧,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布关霸,位于F島的核電站,受9級(jí)特大地震影響杰扫,放射性物質(zhì)發(fā)生泄漏队寇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一章姓、第九天 我趴在偏房一處隱蔽的房頂上張望佳遣。 院中可真熱鬧,春花似錦凡伊、人聲如沸零渐。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)诵盼。三九已至,卻和暖如春银还,著一層夾襖步出監(jiān)牢的瞬間风宁,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工见剩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杀糯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓苍苞,卻偏偏與公主長(zhǎng)得像固翰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羹呵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359