java – 如何创建一个通知服务器,在数据库发生变化时通知Delphi应用程序?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何创建一个通知服务器,在数据库发生变化时通知Delphi应用程序?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2168字,纯文字阅读大概需要4分钟。
内容图文
我们需要能够通知Delphi应用程序,以防MySQL中的某些表发生变化.
Delphi客户端位于防火墙后面的Internet中,在连接到我们需要实现的通知服务器之前,必须对它们进行身份验证.服务器可以使用例如Java,PHP或Python进行编程,并且必须支持数千个客户端.
通常,数据库中的一个更改只需要通知单个客户端,我不认为性能会成为瓶颈.当影响特定客户端的更改发生时,必须能够通知数千个客户端中的任何一个.
我一直在考虑一个解决方案:
> MySQL触发器将通知通知服务器
> Delphi客户端连接到消息传递队列并使用它获取通知
我的问题:
>从触发器向外部服务器通知更改的最佳方法是什么
>选择哪种消息队列解决方案?
解决方法:
回答第一个问题:
在Stack Overflow上查看此问题和答案:
When a new row in database is added, an external command line program must be invoked
理论上,可以使用简单的用户定义函数将“行更改”消息触发到消息代理/队列.但这涉及可能失败的外部系统(至少是一个网络子系统) – 并且可能发生坏事.
不需要对数据库系统进行危险修改的不同解决方案将是应用程序的多层设计.然后,托管业务逻辑的服务器应用程序需要生成“数据库内容已更改”事件,将它们发布到消息代理上的发布和订阅消息通道(也称为“主题”),以便每个客户端立即收到此消息的副本或者如果客户重新连接(使用’durable subscriptions‘).
我在这里写了一篇关于这个主题的相关博客文章:Firebird Database Events and Message-oriented Middleware
回答第二个问题:
Second Life的创建者评估了几个消息代理并发布了他们的结果 – 对于某些产品,Delphi客户端库存在或可以使用标准协议实现:Message Queue Evaluation Notes
从那时起,其他产品已经发布,其中一些产品也可以通过非Java协议与Delphi客户端集成,例如:
> Open Message Queue (OpenMQ) 4.4,这是Sun GlassFish v3应用程序服务器中的默认JMS提供程序代理
> JBoss HornetQ 2.1将是JBoss应用程序服务器6中的默认JMS提供程序.在相同的服务器硬件和操作系统设置上,HornetQ 2.0.GA获得的分数比先前发布的SPECjms2007基准测试结果高出307%.
一个非常流行的开源消息代理,可以从Delphi,Java,PHP,C#(和其他)客户端使用
> Apache ActiveMQ 5.4.1 – Bruce Snyder,Dejan Bosanac和Rob Davies的“ActiveMQ in Action”免费introduction chapter
所有代理都是为数千个并发客户端和每秒数万条消息而设计的.它们通常也支持群集和故障转移,但这不是JMS规范的一部分.
如果速度不是那么重要,但您需要高可用性(即使内部系统已关闭),Amazon Simple Queue Service (Amazon SQS)也是基于云的服务,可以使用REST和Soap样式接口进行访问.
内容总结
以上是互联网集市为您收集整理的java – 如何创建一个通知服务器,在数据库发生变化时通知Delphi应用程序?全部内容,希望文章能够帮你解决java – 如何创建一个通知服务器,在数据库发生变化时通知Delphi应用程序?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。