数据与应用程序间通信·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');		

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2016-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HansBug's Lab

【前端】Ubuntu16下nodejs+npm+vue环境配置

笔者最近在学习vue.js,不过一直都是在runoob上面各种尝试。今天笔者在本机(Ubuntu16.04)尝试部署了nodejs+npm+vue开发环境,接下...

3585
来自专栏SDNLAB

P4入门教程(2):P4程序的编译、运行验证与分析

在前面《P4入门教程:搭建开发和实验环境》一文中,梳理了P4实验的大致流程。P4程序只需要经过一次编译过程,生成数据平面的JSON格式描述文件,最后在启动软件交...

3585
来自专栏技术之路

Http概述(一)

Http使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,也能够确保数据在传输过程中不会被损坏或产生混乱。 这样用户在访问信息时就不用担心其完整性了。 ...

1945
来自专栏LanceToBigData

linux(九)之网络基础

一、ping命令   1.1、作用      用于检测主机。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就...

2147
来自专栏xingoo, 一个梦想做发明家的程序员

【AngularJS】—— 7 模块化

AngularJS有几大特性,比如:   1 MVC 2 模块化   3 指令系统   4 双向数据绑定 那么本篇就来看看AngularJS的模块...

1985
来自专栏鸿的学习笔记

计算机网络整理

应用层(Application Layer) 传输层(Transport Layer) 网络层(Network Layer) 链接层(Link Layer) 实...

1031
来自专栏运维一切

ETCD的基本使用 转

原文地址: http://www.csdn.net/article/2015-01-22/2823659

1353
来自专栏蘑菇先生的技术笔记

浅谈C#网络编程(一)

在现今软件开发中,网络编程是非常重要的一部分,本文简要介绍下网络编程的概念和实践。 Socket是一种网络编程接口,它是对传输层TCP、UDP通信协议的一层封...

1043
来自专栏Jackie技术随笔

基本TCP套接口编程

为了执行网络I/O,一个进程(无论是服务端还是客户端)必须做的第一件事情就是调用socket函数。

3566
来自专栏日常工作总结

Redis运维总结

【持久化设置】 对于redis,有两种持久化方式:rdb和aof rdb:后台定期生成一个dump文件,保存当前redis内存中所有的数据 aof:类似日志,记...

1824

扫码关注云+社区