We don’t allow questions seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
查看 Apache 的 Active MQ。 它实现了 Java 消息服务 1.1 规范,位于 servlet API 之上,并具有大量可以满足您的需求的功能。 您还可以在 Camel 上分层,它添加了许多 企业集成模式。
通常,JMS 消息保存在事务数据库中,可以将其配置为提供极高程度的容错能力(例如,RAID、主备数据库机器对、事务日志文件的多个副本)。 数据库之上可以有多个运行 Active MQ 的负载平衡应用服务器计算机,为您提供可扩展性和高可用性。 我认为,如果您使用 Active MQ 作为公共消息总线,您会发现可以以非常解耦的方式编写组件。
在 JMS 中,当消费者将消息从队列中取出时,消费进程必须稍后确认该消息已成功处理。 如果确认未及时到达,JMS 系统将恢复该消息,以便另一个消费进程可以尝试处理该消息。 这意味着您可以运行应用程序的多个副本以获得可靠性和容错能力。
看一下 O'Reilly 的 Java 消息服务,第二版,它本周刚刚发布。
另一种途径是研究BPEL(业务流程执行语言)。
编辑:我对 Microsoft 产品不是很熟悉,但是 MSMQ 看起来相当于 JMS。
您应该能够在Microsoft 环境中使用ActiveMQ。 他们声称支持“跨语言客户端”,例如“C# 和 .NET” 。 即使这会出现问题,由于 ActiveMQ 有一个基于 Java servlet 的 API 用于对消息进行排队和出队,因此外界只需能够向 ActiveMQ 服务器发出 HTTP 请求即可。 这应该会限制您的团队必须进行的学习量。 祝你好运,这听起来是一个很棒的项目!
Check out Apache's Active MQ. It implements the Java Message Service 1.1 specification, layers on a servlet API, and has tons of features that should address your requirements. You can also layer on Camel, which adds a rich implementation of many enterprise integration patterns.
Typically, JMS messages are persisted in a transactional database, which can be configured to give you extremely high degrees of fault tolerance (eg, RAID, master-backup database machine pairs, multiple copies of transaction log files). On top of the database can go multiple, load-balanced app server machines running Active MQ, to give you scalability and high-availability. I think you'll find that you can write your components in a very decoupled fashion if you use Active MQ as your common message bus.
In JMS, when a message is de-queued by a consumer, the consuming process must later confirm that the message was successfully handled. If a confirmation does not come in in time, the JMS system will revive the message so another consuming process can attempt to handle it. This means you can run multiple copies of your application to gain reliability and fault tolerance.
Take a look at O'Reilly's Java Message Service, 2nd Edition, which just came out this week.
A different avenue would be to look into BPEL (Business Process Execution Languge).
Edit: I'm not very familiar with Microsoft offerings, but MSMQ seems like the equivalent to JMS.
You should be able to use ActiveMQ in a Microsoft environment. They claim to support "cross language clients" like "C# and .NET". And even if that should be problematic, since ActiveMQ has a Java servlet-based API for queueing and de-queuing messages, the outside world only has to be able to make HTTP requests to the ActiveMQ server. That should limit the amount of learning your team would have to do. Good luck, this sounds like an awesome project!
SharePoint 有一个运行良好的工作流引擎。 您可以使用 SharePoint 设计器或 Visual Studio 2008 构建工作流。它使用 Windows Workflow,它与 BizTalk 类似(如果不是相同的引擎),但没有您的应用程序可能不需要的 BizTalk 的其他服务。
SharePoint has a workflow engine that works very well. You can build your workflow using SharePoint designer or Visual Studio 2008. It uses Windows Workflow, which is similar to BizTalk (if not the same engine), but without BizTalk's other services that may not be necessary for your application.