使用场景,将耗时的通知业务交给消息中间件【业务逻辑进行解耦】redis
使用消息中间件的逻辑交互apache
首先消息中间件是一个异步处理浏览器
有两个关键点:①耗时;②业务的耦合度session
案例1:注册某网站会员成功,短信通知成功,这个就能够直接交给消息中间件异步
案例2:注册某网站会员,须要使用手机验证码,这个就不能使用消息中间件,业务必须使用【缘由:消息中间件是异步执行的,可能致使收不到验证码】ide
redis、ActivityMQ、RocketMQ(nameSrv)【阿里巴巴使用】、Kafka【zookeeper】、RabbitMQ、ZerOMQ网站
http://activemq.apache.org/components/classic/download/3d
在浏览器中登陆localhost:8161 初始帐号:admin,密码:admin日志
查看端口:8161;消息服务端口:61616component
自动签收、手动签收【massage.acknowledge()】、事务签收【session.commit()】、
防止信息重复消费
①消费者代码不要抛出异常,不然activeMQ默认有重试机制;
②若是代码发生异常,须要发布版本才能够解决问题,不要使用重试机制,采用日志记录方式,定时Job进行补偿;
③若是不须要发布版本解决的问题,能够采用重试机制进行补偿。