1. 程式人生 > 其它 >資料與應用程式間通訊·UDP Socket

資料與應用程式間通訊·UDP Socket

你是否想過當資料庫中發生變化時,將變化內容通知到外面的應用程式。這樣做的目的是 方便二次開發,例如你的軟體第三方產品,你沒有軟體的原始碼,無法二次開發,這是你可以使用這種方式,將資料變化及時通知到外部程式。

本文節選自《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');