消息队列的应用场景:
消息队列应用场景
异步处理,应用解耦,流量削锋和消息通讯四个场景
异步处理:
场景说明:用户注册后,需要发注册邮件和注册短信
应用解耦:
场景说明:用户下单后,订单系统需要通知库存系统
流量削锋:
应用场景:秒杀活动,一般会因为流量过大,导致流量暴增,应用容易挂掉.1、用户的请求,服务器接收后,首先写入消息队列。假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面2、秒杀业务根据消息队列中的请求信息,再做后续处理
日志处理:
应用场景:日志处理是指将消息队列用在日志处理中,比如Kafka的应用,解决大量日志传输的问题
1、在安装ActiveMQ
http://activemq.apache.org/activemq-5158-release.html
2、解压启动服务
tar -zxvf apache-activemq-5.15.8-bin.tar.gz
进入目录,运行./bin/activemq start
3、网页查看
网址:http://139.199.64.189:8161/
点击:Manage ActiveMQ broker输入默认用户和密码都为:admin
4、创建maven工程,在pom.xml文件中添加
org.apache.activemq
activemq-core
5.7.0
/****************************************************消息队列***************************************************************/
注意:消息队列模式,当生产者生产消息后,会将消息放入消息队列中,一旦消费者启动了,立马回读取到。
5、创建JMSConsumer.java文件,这是一个消费者
packagecom.activemq.demo.method1;importjavax.jms.Connection;importjavax.jms.ConnectionFactory;importjavax.jms.Destination;importjavax.jms.MessageConsumer;importjavax.jms.Session;importjavax.jms.TextMessage;importorg.apache.activemq.ActiveMQConnectionFactory;public classJMSConsumer {//默认连接用户名
private static final String USERNAME = "admin";//ActiveMQConnection.DEFAULT_USER;//默认连接密码
private static final String PASSWORD = "admin";//ActiveMQConnection.DEFAULT_PASSWORD;//默认连接地址,默认端口为61616
private static final String BROKERURL = "tcp://ip:61616";//ActiveMQConnection.DEFAULT_BROKER_URL;
public static voidmain(String[] args) {//连接工厂
ConnectionFactory connectionFactory;//连接
Connection connection = null;//会话,接收或者发送消息的线程
Session session;//消息目的地
Destination destination;//消息的消费者
MessageConsumer messageConsumer;//实例化连接工厂
connectionFactory = newActiveMQConnectionFactory(JMSConsumer.USERNAME, JMSConsumer.PASSWORD, JMSCo