資料與應用程式間通訊·UDP Socket
阿新 • • 發佈:2022-05-02
你是否想過當資料庫中發生變化時,將變化內容通知到外面的應用程式。這樣做的目的是 方便二次開發,例如你的軟體第三方產品,你沒有軟體的原始碼,無法二次開發,這是你可以使用這種方式,將資料變化及時通知到外部程式。
本文節選自《Netkiller Architect 手札》
作者:netkiller
8.4. Socket 方式
TCP 方式還不如使用現在有的訊息佇列,所以資料庫通過 Socket與應用程式通訊,我推薦 UDP 方式。
UDP 有個好處,丟出去就不管了,效能非常好。並且可以實現組播,廣播。下面是 UDP的例子
8.4.1. UDP
https://github.com/netkiller/mysql-udp-plugin
下載 mysql-udp_sendto-plugin 然後編譯安裝程式碼
# cmake .
# make && make install
安裝
create function udp_sendto returns string soname 'libudp_sendto.so';
解除安裝
drop function udp_sendto;
使用演示,首先使用nc命令監聽一個UDP埠,用來接收資料庫傳送過來的資料。資料結構請自行定義。這裡僅僅是演示,可以採用json, 逗號分隔等等方式。
# nc -luv 4000
在資料庫中使用下面SQL傳送資料給應用程式
select udp_sendto('192.168.2.1','4000','hello');