前面我分享了一篇有關於訊息佇列的部落格, 這裡附上我寫的一段訊息佇列的程式:
\ send.c(傳送端)
#include
#include
#include
#include
#include
#include
struct msgbuf
;int main()
int msgid = msgget(key, ipc_creat); //建立訊息佇列,msgid為訊息佇列的描述字
if (-1 == msgid)
struct msgbuf buffer;
memset(buffer.mtext, 0, 1024);
int type = 1;
char text[1024] = ;
while (1)
memset(text, 0, 1024);
if (0 == strcmp(buffer.mtext, "exit")) //退出
memset(text, 0, 1024);
memset(buffer.mtext, 0, 1024);
}return
0;}
recv.c(接收端)
#include
#include
#include
#include
#include
#include
struct msgbuf
;int main()
int msgid = msgget(key, ipc_creat);
if (-1 == msgid)
struct msgbuf buffer;
memset(buffer.mtext, 0, 1024);
int type = 0;
scanf("%d", &type);
// buffer.mtype = type;
while (1)
if (0 == strcmp(buffer.mtext, "exit")) //退出
printf("recv: mtype = %d mtext = %s\n", buffer.mtype, buffer.mtext);
memset(buffer.mtext, 0, 1024);
}return
0;}
訊息佇列 訊息佇列
輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...
訊息佇列的小程式
proto.h ifndef proto h define proto h define keypath etc hosts define keyproj a define namesize 32 define msg stu 1 struct msg st endif snder.c includ...
訊息佇列 訊息佇列 kafka
kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要用於大資料實時處理領域。要理解kafka首先要有分布式的概念,要有訊息佇列的概念。分布式系統最大的優勢就是解耦和削峰,這種情況下,a系統生成了乙個訊息,b系統非同步獲取,那麼就需要乙個存放訊息的訊息佇列 mq 相比較傳統的訊息佇列,訊息被消費...