訊息佇列的設定

2021-08-19 00:00:08 字數 1515 閱讀 9337

/etc/sysctl.conf

修改kernel.msgmni=1000

kernel.msgmax=81920

kernel.msgmnb=163840

msgmnb

每個訊息佇列的最大位元組限制。該檔案指定乙個訊息佇列的最大長度(bytes)。

msgmni 

整個系統的最大數量的訊息佇列。該檔案指定訊息佇列標識的最大數目,即系統範圍內最大多少個訊息佇列。

msggsz 

訊息片斷的大小(位元組)。大於該值的訊息被分割成多個片斷。

msgseg 

在單個佇列裡能存在的最大數量的訊息片斷。

msgtql 

整個系統的最大數量的訊息。

msgmax 

單個訊息的最大size。在某些作業系統例如bsd中,你不必設定這個。bsd自動設定它為msgssz * msgseg。其他作業系統中,你也許需要改變這個引數的預設值,你可以設定它與msgmnb相同。該檔案指定了從乙個程序傳送到另乙個程序的訊息的最大長度(bytes)。程序間的訊息傳遞是在核心的記憶體中進行的,不會交換到磁碟上,所以如果增加該值,則將增加作業系統所使用的記憶體數量。

shmseg 

每個程序的最大數量的共享記憶體片斷。

shmmni 

共享記憶體片斷數量的系統級的限制。

shmmax 

單個共享記憶體片斷的最大size。

shmall 

可分配的共享記憶體數量的系統級限制。在某些系統上,shmall可能表示成頁數量,而不是位元組數量

[root@www ~]# ipcs -l 

------ shared memory limits --------

max number of segments = 4096

max seg size (kbytes) = 67108864

max total shared memory (kbytes) = 17179869184

min seg size (bytes) = 1

------ semaphore limits --------

max number of arrays = 128

max semaphores per array = 250

max semaphores system wide = 32000

max ops per semop call = 32

semaphore max value = 32767

------ messages: limits --------

max queues system wide = 900000            *****====msgmni //整個系統的最大數量的訊息佇列。

max size of message (bytes) = 65536        *****====msgmax //單個訊息的最大size。

default max size of queue (bytes) = 655360000  *****msgmnb //每個訊息佇列的最大位元組限制。

訊息佇列 訊息佇列

輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...

訊息佇列 訊息佇列 kafka

kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要用於大資料實時處理領域。要理解kafka首先要有分布式的概念,要有訊息佇列的概念。分布式系統最大的優勢就是解耦和削峰,這種情況下,a系統生成了乙個訊息,b系統非同步獲取,那麼就需要乙個存放訊息的訊息佇列 mq 相比較傳統的訊息佇列,訊息被消費...

IPC通訊 Posix訊息佇列的屬性設定

posix訊息佇列的屬性使用如下結構存放 struct mq attr 佇列可以在建立時由mq open 函式的第四個引數指定mq maxmsg,mq msgsize。如建立時沒有指定則使用預設值,一旦建立,則不可再改變。佇列可以在建立後由mq setattr 函式設定mq flags includ...