数据库 – 消息系统中的表排队[封闭]
我在实际生产环境中遇到了消息传递系统的良好和不利的一面,我必须承认,组织良好的表或表格模式每次都可以在任何其他形式的消息队列中跳动,因为:
>数据永久存储在表上.我已经看到这么多的java(jms)应用程序丢失或消失消息的方式来捕获未捕获的异常或其他错误. 你对每种方法有什么看法? 解决方法每次敲打这个词完全取决于你的要求是什么.当然,它不会每个人都打败每个人.如果您正在构建一个已经使用数据库的单一系统,则您的性能吞吐量要求不高,您不必与任何其他团队或系统进行通信,那么您可能是对的. 对于简单,低通量,大多数单线程的东西,数据库是消息队列的完美替代品. 消息队列发光的地方在何处 >您想要一个高性能,高度并发和可扩展的负载平衡器,因此您可以在许多服务器/进程中同时处理数以万计的消息(使用数据库表,您将很幸运处理几百秒,并处理多线程很难,因为一个进程会倾向于锁定消息队列表) 对于具有单个数据库的简单系统,团队和相当适度的性能要求 – 一定要使用数据库.使用正确的工具等等 然而,在大型组织中,消息队列闪耀的地方有很多系统需要彼此通信(因此您不希望商业数据库成为故障的中心点或版本地狱的地方),或者当您有高性能要求. 在性能方面,消息队列将始终击败数据库表,因为消息队列是专为该作业设计的,并且不依赖于悲观的表锁(这是队列的数据库实现所必需的)进行负载平衡)和good message queues will perform eager loading of messages to queues to avoid the network overhead of a database. 同样,您绝对不会使用数据库来对Web服务器之间的HTTP请求进行负载平衡,因为它太慢了 – 如果您对不使用数据库的负载平衡器有很高的性能要求. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何把sqlserver中的列转换成行,行转换成列,显示。
- sql-server – 确定架构更改的发生方式?
- SQLServerToSQLite 程序代码的分析翻译及学习(一、SQLServe
- sql-server – SQL RESTORE WITH RECOVERY;挂起率为100%
- sql-server – 在SQL Server中创建索引的最佳做法和反模式?
- sql-server – 如何检查DBCC SHRINKFILE的进度?
- SQL Server 指定字段编号sql语句
- 数据库 – Oracle – 创建索引或添加列后需要计算统计信息吗
- SQLSERVER维护常用命令
- sql-server – 避免使用SQL Server的默认端口仍然是最佳做法