訊息佇列的使用場景之kafka
自己原文公眾號: https://mp.weixin.qq.com/s/21VyBQtwIlNORZmVjQvdhw
kafka安裝和使用其實比rabbitMQ要容易些,也舒服些。
1、防火牆關閉
2、java環境安裝完畢
3、3臺主機名修改規劃完畢
每臺機器
mkdir -p /zookeeper/data
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
mv apache-zookeeper-3.7.0-bin /zookeeper/
vim /zookeeper/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
配置檔案如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper/data/zookeeper
dataLogDir=/zookeeper/data/logs
clientPort=2181
maxClientCnxns=60
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=10.60.156.187:2888:3888
server.2=10.60.156.188:2888:3888
server.3=10.60.156.189:2888:3888
這些是關鍵步驟,即Kafka要依靠zk。如果面試的時候我會問問,大致安裝步驟是什麼?要注意什麼。最起碼zk的myid要說說吧。kafka的brokerid要說說吧。就像MySQL的serverid一個意思。這個如果都沒說出來,嚴重懷疑到底做過沒有啊?
zkServer.sh status啟動以後看看是flower還是leader。
以上是三臺的zk。
而kafka就是解壓以後直接配置
vim /root/kafka/config/server.properties
然後就啟動。不想rabbitMQ那樣有加入叢集的步驟,因為zk完成了。
kafka的主節點和非主節點的區別是這樣的:
可見任意節點都是可以的。
總體來說和rabbiMQ的套路差不多。
不過使用起來,方便一些。
下面是我從其他網站上找得到的
有人是這樣總結的:
rabbitmq
1.RabbitMQ的訊息應當儘可能的小,並且只用來處理實時且要高可靠性的訊息。
2.消費者和生產者的能力盡量對等,否則訊息堆積會嚴重影響RabbitMQ的效能。
3.叢集部署,使用熱備,保證訊息的可靠性。
kafka
1.應當有一個非常好的運維監控系統,不單單要監控Kafka本身,還要監控Zookeeper。(kafka強烈的依賴於zookeeper,如果zookeeper掛掉了,那麼Kafka也不行了)
2.對訊息順序不依賴,且不是那麼實時的系統。
3.對訊息丟失並不那麼敏感的系統。
4.從 A 到 B 的流傳輸,無需複雜的路由,最大吞吐量可達每秒 100k 以上。
我覺得總結的對。不過我經歷的不少專案不管是不是用對了,重點是都用了。問題是用了以後貌似沒有太好的效果。
當然我也經歷了不少沒有有任何一種訊息佇列。訊息佇列還有RocketMQactiveMQ等等我就不再寫了,大同小異。
其實不少時候不用也行。我之所以要寫了兩篇是為了說明他們,然後才說可以不要用,否則可能會被誤解,不會用而不用。
我是ITPUB記憶體資料庫版主,儘管如此我認為很多Redis都是用錯的。不能因為我會什麼就推薦什麼,這是不負責的。
以前看到一篇部落格說有的公司用redis存日誌。其實 基本是開發團隊喜歡什麼用什麼,沒有特別要求。就像資料庫選型一樣,大多數開發可能也是人云亦云的使用。
誰誰誰用了MySQL、誰誰誰用了PG、誰誰誰用了Oracle。當然還有誰誰誰用了SQLSERVER DB2.其實他們用了什麼是出於對他們自己業務場景進行了考量,非常瞭解什麼技術合適自己。大廠的技術選型都是結合自己,而不是開發喜好。
至少資料庫由DBA說了算,訊息佇列由SA說了算。但是現在網際網路模式下DBA和SA模糊了,更多的DBA將SA的這部分做了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847171/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 訊息佇列的使用場景之RabbitMQ佇列MQ
- PHP Kafka 訊息佇列使用PHPKafka佇列
- Kafka訊息佇列Kafka佇列
- kafka 訊息佇列Kafka佇列
- “簡單”的訊息佇列與kafka佇列Kafka
- 訊息佇列之Kafka——從架構技術重新理解Kafka佇列Kafka架構
- 建立訊息佇列(Kafka)源表佇列Kafka
- 訊息佇列的七種經典應用場景佇列
- 訊息佇列常見的 5 個應用場景佇列
- 訊息佇列常見的5個應用場景佇列
- RabbitMQ 訊息佇列之佇列模型MQ佇列模型
- 訊息佇列Kafka學習總結佇列Kafka
- 訊息佇列之RocketMQ佇列MQ
- 訊息佇列之RabbitMQ佇列MQ
- 訊息佇列之 RocketMQ佇列MQ
- 訊息佇列之 ActiveMQ佇列MQ
- KOA + egg.js 整合 kafka 訊息佇列JSKafka佇列
- 阿里雲訊息佇列 Kafka-訊息檢索實踐阿里佇列Kafka
- 訊息佇列之事務訊息,RocketMQ 和 Kafka 是如何做的?佇列MQKafka
- 訊息佇列之概論佇列
- 簡述訊息佇列在電商系統使用場景以及工作模式佇列模式
- RabbitMQ,RocketMQ,Kafka 幾種訊息佇列的對比MQKafka佇列
- 訊息佇列MQ應用場景及主流框架對比佇列MQ框架
- 技術分享| 訊息佇列Kafka群集部署佇列Kafka
- 訊息佇列Kafka「檢索元件」重磅上線!佇列Kafka元件
- Python使用RocketMQ(訊息佇列)PythonMQ佇列
- 使用Redis做訊息佇列Redis佇列
- 訊息匯流排Bus介紹及使用場景-訊息佇列和RabbitMQ介紹及安裝佇列MQ
- 訊息佇列系列一:訊息佇列應用佇列
- Java訊息佇列:RabbitMQ與Kafka的整合與應用Java佇列MQKafka
- KMQ:基於Apache Kafka的可靠性訊息佇列MQApacheKafka佇列
- 訊息佇列之-RocketMQ入門佇列MQ
- RabbitMQ 訊息佇列之 Exchange TypesMQ佇列
- 溫故之訊息佇列ActiveMQ佇列MQ
- 訊息佇列佇列
- 訊息佇列ActiveMQ的使用詳解佇列MQ
- 訊息佇列之如何保證訊息的可靠傳輸佇列
- 訊息佇列的作用以及kafka和activemq的對比佇列KafkaMQ