//訊息佇列:資料通訊
// 點對多,離線通訊。
// ftok();索取key值
//// msgget();建立
// msgctl();刪除
// msgsnd();傳送
// msqrcv();接收
#include
#include
#include
#include
#include
#include
#include "proto.h"
int main()
//int msgget(key_t key, int msg***);
//引數msg***為:訊息佇列的建立標誌和訪問許可權
msgid = msgget(key,0);
//success 返回佇列標識,failed ,return -1;
if(msgid < 0)
//mtype :從訊息佇列內讀取的訊息形態。(0:訊息佇列中所有訊息都會被
//讀取)
sbuf.mtype = 1; /*!!*/
strcpy(sbuf.name,"alan");
sbuf.math = rand()%100;
sbuf.chinese = rand()%100;
if(msgsnd(msgid,&sbuf,sizeof(sbuf)-sizeof(long),0) < 0)
puts("ok!");
exit(0);
}// 訊息佇列
#include
#include
#include
#include
#include
#include
#include "proto.h"
int main()
msgid = msgget(key,ipc_creat|0600);
if(msgid < 0)
while(1)
printf("name:%s\n",rbuf.name);
printf("math:%d\n",rbuf.math);
printf("chinese:%d\n",rbuf.chinese);
}msgctl(msgid,ipc_rmid,null);
exit(0);
}#ifndef proto_h__
#define proto_h__
#define keypath "/etc/services"
#define keyproj 's'
#define namesize 32
struct msg_st
;#endif
訊息佇列 訊息佇列
輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...
訊息佇列 訊息佇列 kafka
kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要用於大資料實時處理領域。要理解kafka首先要有分布式的概念,要有訊息佇列的概念。分布式系統最大的優勢就是解耦和削峰,這種情況下,a系統生成了乙個訊息,b系統非同步獲取,那麼就需要乙個存放訊息的訊息佇列 mq 相比較傳統的訊息佇列,訊息被消費...
linux訊息佇列 Linux訊息佇列
訊息佇列,unix的通訊機制之一,可以理解為是乙個存放訊息 資料 容器。將訊息寫入訊息佇列,然後再從訊息佇列中取訊息,一般來說是先進先出的順序。可以解決兩個程序的讀寫速度不同 處理資料速度不同 系統耦合等問題,而且訊息佇列裡的訊息哪怕程序崩潰了也不會消失。最簡單的訊息記憶體的使用流程 ftok函式生...