Sud*_*kar 8 activemq-classic jms setup-deployment java-ee
我要求设计一个通知/发布,其子系统发送电子邮件的应用程序.我计划使用jms发布/订阅(主题)消息来做到这一点
现在的可见性,将有20到30个订阅者,并且将要发布的消息数量将在每天30000到50000个消息的范围内.
我计划使用ActiveMQ JMS + Spring 3 + Tomcat 6实现 问题
我是JMS的新手,我想知道上面的负载是否很高?
我们真的需要在服务器上部署单独的ActiveMQ,还是我们在Webapp中使用嵌入式ActiveMQ就足够了?
单独的ActiveMQ服务器/嵌入式服务器有哪些优点/缺点?
首先请注意,随着时间的推移,您的消息量非常小.你可以真正使用其中任何最容易维护的东西可能会决定你的选择.
扩展Petter对重启的评论要考虑的一件事是将连接到代理的其他机器的数量.
如果你有100台机器连接到代理,那么每次重启Tomcat w/embedded ActiveMQ都会破坏所有需要重新连接的100个连接.ActiveMQ支持重新连接,因此可以很好地工作,但它可以为每个人重新连接时添加一些不必要的消息流延迟,有时一些客户端将无法重新连接,您必须手动将它们付诸行动.
使用独立代理并说100个客户端,您可以根据需要随时重新启动Tomcat服务器,并且只能断开从代理到Tomcat的一个连接.这可能非常好.
如果您只有一个客户端 - Tomcat服务器本身 - 那么请放下嵌入式并使用in-vm传输.
另一个因素是记忆.我们在t1micro的Amazon EC2中使用ActiveMQ,它只有613MB的内存,非常小.运行两个t1.micros(一个用于ActiveMQ,一个用于Tomcat)比一个m1.small同时运行两个更便宜.
但同样,客户数量也是一个因素.如果除了Tomcat之外没有其他客户端,运行一个m1.small并将所有内容保存在同一个vm中可能会更好.
如果Tomcat和ActiveMQ是您的主要目标,您应该考虑Apache TomEE Plus,它是已集成ActiveMQ的Tomcat.
所有的罐子都在那里,默认情况下使用Petter谈论的本地传输嵌入式ActiveMQ代理进行设置.您可以轻松地将其配置为使用独立的ActiveMQ代理.它还内置了JavaMail,听起来它可能对您有用.
因此,您可以跳过设置部分,直接编写您的应用程序.例如,如果您要创建此单个Servlet并将其置于没有其他jar或类的战争中,它将起作用:
@WebServlet("/hello-world")
public class MyServet extends HttpServlet {
@Resource(name = "foo")
private Topic fooTopic;
@Resource(name = "bar")
private Queue barQueue;
@Resource
private ConnectionFactory connectionFactory;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//...
Connection connection = connectionFactory.createConnection();
connection.start();
// Create a Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create a MessageProducer from the Session to the Topic or Queue
MessageProducer producer = session.createProducer(fooTopic);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// Create a message
TextMessage message = session.createTextMessage("Hello World!");
// Tell the producer to send the message
producer.send(message);
//...
}
}
Run Code Online (Sandbox Code Playgroud)
这里还有一个入门视频,它显示了通过Tomcat适配器在Eclipse中进行设置.
归档时间: |
|
查看次数: |
4596 次 |
最近记录: |