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

相关文章

来自专栏性能与架构

实时通信框架 Socket.IO

主要内容: 1. Socket.IO 是什么?有什么特点 2. 实际应用的案例 3. 动手开发一个小示例 Socket.IO 简介 Socket.IO 可以实现...

3055
来自专栏玄魂工作室

Python3实现TCP端口扫描器

在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤。通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能...

34413
来自专栏FreeBuf

一次与缓冲区溢出的亲密接触

这是一个简单的缓冲区溢出的漏洞,今天没事,来分析一下看看他溢出的原因,最后通过平衡堆栈的方式,让目标程序执行shellcode使程序不crash。只是用来研究和...

1100
来自专栏枕边书

用C写一个web服务器(四) CGI协议

前言 时隔一个多月,终于又有时间来更新我的服务器了,这次更新主要实现一下 CGI 协议。 先放上GitHub链接 tinyServer-GitHub-枕边书 作...

2526
来自专栏IMWeb前端团队

http cache笔记

本文作者:IMWeb devinran 原文出处:IMWeb社区 未经同意,禁止转载 Last-Modified 与 If-Modified-Si...

1796
来自专栏云瓣

HTTP相关整理(上)

这次整理HTTP相关知识点的初衷是因为项目中有大量与网络请求相关的知识细节点,所以这次整理的更多的是日常中用得到的点(参考图解HTTP),另外给打算做FE的新人...

3186
来自专栏大内老A

[WCF安全系列]服务凭证(Service Credential)与服务身份(Service Identity)

在采用TLS/SSL实现Transport安全的情况下,客户端对服务证书实施认证。但是在默认情况下,这种认证仅仅是确保服务证书的合法性(通过数字签名确保证书确实...

1827
来自专栏程序员互动联盟

【专业技术】8大你不得不知的Android调试工具

1. 查看当前堆栈 1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系 2) 方法: new Exception(“print ...

35013
来自专栏北京马哥教育

面试被问http协议?这篇文章足够覆盖所有相关问题!

? HTTP超文本传输协议 http使用面向连接的TCP作为传输层协议。http本身无连接。 请求报文 CRLF是回车换行 ? 方法为GET的请求报...

2697
来自专栏PhpZendo

Laravel 服务提供者指南

如果你使用过 Laravel 框架的话,那么,你不可能没听说过服务容器和服务提供者。事实上,它们是 Lavavel 框架核心,它们完成 Larvel 应用中服务...

190

扫描关注云+社区