中间件一般指软件层面的,硬件和上位机一般使用缓冲区交互
宕机指服务器挂掉无法访问,宕机后消息就无法同步了,所以为了高可用,就需要提供多台服务器,比如 A 服务器宕机了,B 服务器接上继续保证服务可使用。
可能将连接关闭了,监听器还没有来得急消费,程序就结束了
2.第二种可能是程序还在执行,但是断点位置不对,断点位置需打到方法里面,如你问题中打的断点位置只会执行一次
消费者回复一个对应消息消费完成给生产者
这个是老师ide自动加上的,其实这个final可以去掉。加上final修饰后messge变得不可更改,如果你不想sendMessga方法里修改到messge,可以加上final。
javax.jms是Java定义消息中间件统一的一个规范,Spring和MQ都实现了该规范,Spring只不过是多做了一层封装而已。
你交于spring管理的对象(如@Autowired @Resource 引入的对象 )所需的对象需要纳入spring管理。如此项目中的ProducerService对象交于spring管理,那么他所需的 jmsTemplate,destination对象 需要交于spring管理,由spring的依赖传递可知道jmsTemplate和destination对象 所需的connectionFactory,targetConnectionFactory 也需交于spring管理
你看一下在你的ProducerServiceImpl中有没有注入
@Resource(name = "topicDestination")
消息队列中有多个消息,每个消息只能被某个消费者消费。你可以理解为这条消息被一个消费者消费了,队列里就没有了。
比如视频中消息队列中有M1M2M3M4M5M6,M3和M6被应用4消费了,队列里就没有了,所有应用3就消费不到了
没有在路径下找打producer.xml文件
如果写http://localhost:8161会报另一个异常,改成tcp://localhost:61616就好了
o(1) 其实说的是复杂度,复杂度包括时间复杂度和空间复杂度,这里应该是时间复杂度,表示在取消息时就像数组一样,根据下标直接就获取到了,这就是o(1),当然还有其他的o(lg(n)),o(n), o(n2)等其他复杂度,你可以去看看数据结构或者百度一下
版本变更,旧有的api废弃,请使用合适的版本。
估计你的jar包仍然没有下载下来,我开始使用的5.9.0这个版本,没有下载下来,pom.xml中version这行会抛红,如果你和我的错误一样,建议换个版本,我用5.7.0可以。另外检查一下idea对maven的配置,使用阿里云镜像还是比较快的。
master和slave是为了提高可用性
没有这个没有分享出来
目的地哪里写错了吧
消息处理是一个异步过程,不能直接在点击“提交订单”后拿到结果的,需要有异步通知;你这种场景应该是点击“提交订单”直接返回提交订单成功,跳转到一个中间状态页面,再根据异步结果确定后续操作。
这样就可以了
多次去执行main方法就可以啦。
你是想问怎样启动多个消费者吧?
我也是这样认为的,还有,我按照他的方法去配置A、B、C节点,跟着程序步骤如下:
1、生产程序生产消息推送到B或者C节点。
2、消费程序就单独监听A节点。
结果:消费程序不能消费到任何消息,A节点在这里做不到消费的负载均衡
(不知道是不是我配置是否有问题,但我已经看了好多遍视频再次重新进行配置了)