数据与应用程序间通信·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 条评论
登录 后参与评论

相关文章

来自专栏腾讯云容器服务团队的专栏

容器健康检查详解

容器集群内核基于 kubernetes ,kubernetes 支持对容器进行周期性的探测,根据探测结果来决定判断容器的健康状态,并执行额外的操作。当我们创建服...

5170
来自专栏加米谷大数据

技术干货 | hadoop之hdfs安全模式

namenode启动时,首先将映像文件(fsimage)载入内存,并中兴编辑日志中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsima...

3456
来自专栏北京马哥教育

原创投稿 | nginx的日志配置

? 1. nginx中日志的种类 nginx中可以记录的日志主要有access日志、error日志和rewrite日志。前两种由ngx_http_log_mo...

26910
来自专栏从零开始学自动化测试

appium+python自动化40-adb offline(5037端口被占)

adb连手机的时候经常会出现offline的情况,一般杀掉adb,然后重启adb可以解决。 如果发现不管怎么重启adb都连不上,一直出现offlie的情况,这个...

771
来自专栏性能与架构

nginx 负载均衡

例如目前有两台服务器,一个nginx服务器,一个web服务器(例如tomcat),nginx负责把所有请求转发到web服务器 ? 配置如下 server { ...

3693
来自专栏一名合格java开发的自我修养

redis持久化快速回忆手册

  1). RDB持久化:该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。

833
来自专栏Ryan Miao

redis学习之三配置文件redis.conf 的含义

摘自http://www.runoob.com/redis/redis-conf.html 安装redis之后的第一件事,我就开始配置密码,结果总是不生效,而我...

2595
来自专栏木子昭的博客

TCP套接字绑定双端口传输文件(python)

服务端代码 import socket # 创建tcp服务套接字 def main(): tcp_server_socket = socket.so...

27110
来自专栏行者悟空

Nginx 启用upstream模块后,location块中的相关参数说明

522
来自专栏码字搬砖

CDH Disk Balancer 磁盘数据均衡

由于数据量过多,磁盘大小太小,导致磁盘使用率高达90%以上,于是新增磁盘,可问题来了,如何将这两块磁盘上的数据进行均衡呢? hadoop在2.X中已经有相应...

991

扫码关注云+社区