1.docker
docker build -t:使用當(dāng)前目錄的 Dockerfile 創(chuàng)建鏡像
docker push:將本地的鏡像上傳到鏡像倉庫
2.linux
ps aux | grep name:查看程序運(yùn)行的進(jìn)程號(hào)
kill:殺死進(jìn)程
nohup:?jiǎn)?dòng)jar包螟加,設(shè)置啟動(dòng)參數(shù)
cd、ll、rm、vi揩环、rpm翘单、yum
3.mqtt和rabbitmq
參見:https://blog.csdn.net/wang20010104/article/details/124011952
1)關(guān)鍵詞解析:
Broker:rabbitMQ服務(wù)器
producer:消息生產(chǎn)者
Connect:生產(chǎn)者/消費(fèi)者和服務(wù)端之間進(jìn)行TCP連接
Channel:channel是在connection 內(nèi)部建立的邏輯連接圃庭,如果應(yīng)用程序支持多線程,通常每個(gè)thread創(chuàng)建單獨(dú)的channel進(jìn)行通訊灰伟,channel之間相互隔離栈源,又避免了建connection的開銷
Routing Key:生產(chǎn)者將消息發(fā)送到交換機(jī)時(shí)會(huì)攜帶一個(gè)key,來指定路由規(guī)則
binding Key:在綁定Exchange和Queue時(shí),會(huì)指定一個(gè)BindingKey,生產(chǎn)者發(fā)送消息攜帶的RoutingKey會(huì)和bindingKey對(duì)比,若一致就將消息分發(fā)至這個(gè)隊(duì)列
Exchange: message 到達(dá) broker 的第一站调俘,根據(jù)分發(fā)規(guī)則,匹配查詢表中的 routing key骇钦,分發(fā)消息到queue 中去业岁。常用的類型有: direct (point-to-point), topic(publish-subscribe) and fanout
vHost 虛擬主機(jī):每一個(gè)RabbitMQ服務(wù)器可以開設(shè)多個(gè)虛擬主機(jī)每一個(gè)vhost本質(zhì)上是一個(gè)mini版的RabbitMQ服務(wù)器,擁有自己的 "交換機(jī)exchange扒怖、綁定Binding盼忌、隊(duì)列Queue",更重要的是每一個(gè)vhost擁有獨(dú)立的權(quán)限機(jī)制,這樣就能安全地使用一個(gè)RabbitMQ服務(wù)器來服務(wù)多個(gè)應(yīng)用程序,其中每個(gè)vhost服務(wù)一個(gè)應(yīng)用程序。
2)交換機(jī)類型
直接交換機(jī):路由鍵完全匹配,才發(fā)送
扇出交換機(jī):所有隊(duì)列都發(fā)送
主題交換機(jī):可以模糊匹配汛聚,#一對(duì)多
3)工作模式:略
4)保證消息的穩(wěn)定性:
a)消息持久化
RabbitMQ的消息默認(rèn)存在內(nèi)存中的,一旦服務(wù)器意外掛掉,消息就會(huì)丟失
消息持久化需做到三點(diǎn)
Exchange設(shè)置持久化
Queue設(shè)置持久化
Message持久化發(fā)送:發(fā)送消息設(shè)置發(fā)送模式deliveryMode=2乳讥,代表持久化消息
b)ACK確認(rèn)機(jī)制
多個(gè)消費(fèi)者同時(shí)收取消息汹忠,收取消息到一半,突然某個(gè)消費(fèi)者掛掉,要保證此條消息不丟失,就需要acknowledgement機(jī)制济瓢,就是消費(fèi)者消費(fèi)完要通知服務(wù)端蔑鹦,服務(wù)端才將數(shù)據(jù)刪除
這樣就解決了雕崩,及時(shí)一個(gè)消費(fèi)者出了問題鹏控,沒有同步消息給服務(wù)端义桂,還有其他的消費(fèi)端去消費(fèi),保證了消息不丟的case攒岛。
c)消息補(bǔ)償機(jī)制
持久化的消息胞锰,保存到硬盤過程中赦肋,當(dāng)前隊(duì)列節(jié)點(diǎn)掛了佃乘,存儲(chǔ)節(jié)點(diǎn)硬盤又壞了趣避,消息丟了骆捧,怎么辦枫攀?
產(chǎn)線網(wǎng)絡(luò)環(huán)境太復(fù)雜藤滥,所以不知數(shù)太多嗜傅,消息補(bǔ)償機(jī)制需要建立在消息要寫入DB日志金句,發(fā)送日志,接受日志吕嘀,兩者的狀態(tài)必須記錄违寞。
然后根據(jù)DB日志記錄check 消息發(fā)送消費(fèi)是否成功,不成功币他,進(jìn)行消息補(bǔ)償措施坞靶,重新發(fā)送消息處理憔狞。
5)實(shí)現(xiàn)延遲隊(duì)列:
對(duì)queue設(shè)置TTL
對(duì)消息設(shè)置TTL
4.Cassandra
是一套開源分布式NoSQL數(shù)據(jù)庫系統(tǒng)
主要特點(diǎn)就是它不是一個(gè)數(shù)據(jù)庫蝴悉,而是由一堆數(shù)據(jù)庫節(jié)點(diǎn)共同構(gòu)成的一個(gè)分布式網(wǎng)絡(luò)服務(wù),對(duì)Cassandra 的一個(gè)寫操作瘾敢,會(huì)被復(fù)制到其他節(jié)點(diǎn)上去拍冠,對(duì)Cassandra的讀操作尿这,也會(huì)被路由到某個(gè)節(jié)點(diǎn)上面去讀取。對(duì)于一個(gè)Cassandra集群來說庆杜,擴(kuò)展性能是比較簡(jiǎn)單的事情射众,只管在群集里面添加節(jié)點(diǎn)就可以了。
5.Clickhouse
ClickHouse?一個(gè)極具 " 戰(zhàn)斗力 " 的實(shí)時(shí)數(shù)據(jù)分析數(shù)據(jù)庫晃财,支持大數(shù)據(jù)分析