Order 启动后RabbitMQ上没有创建新的队列

来源:6-5 Spring Cloud Bus实操.mp4

厚积薄发

2018-12-11

按照教程给Order项目添加了mq的依赖,项目启动成功但是MQ上没Order的队列

写回答

2回答

廖师兄

2018-12-14

windows对docker支持不好,建议使用linux虚拟机安装docker.

springcloud版本保持一致

0
0

厚积薄发

提问者

2018-12-11

找到问题Order没有配置MQ的相关连接信息

环境

  1. 一台虚拟机作为开发环境在跑 eureka, order, product

  2. 一台虚拟机装了docker在跑rabbitmq(跑项目的虚拟机windows怎么都装不上docker)

解决步骤

   1. 在Order 上配置了mq的连接信息

   2. Order的启动类上修改了注解 @CompnentScan("com.imooc") --> @ComponentScan("com.imooc.product")

        - 如果不改 Order 启动会注入不了 ProductClient 这个bean 

        - 这算是非常奇怪了,撤销pom的修改使用@ComponentScan("com.imooc") 又能正常启动

 3. 我修改了 @ComponentScan("com.imooc.product") 的目的是为了让 spring 扫描到 Product,但是又引发新的问题因为没有扫描 com.imooc.order 直接导致了 Order的相关bean 没有被注入。

    - 只能灵机一动先把 productClient 使用 @Autowired(required = false)
private ProductClient productClient; 忽略掉它的检查    

    - 在调整注解@ComponentScan(basePackages = {"com.imooc.product", "com.imooc.order"})  让它同时扫描 product和order (这个操作本来就不合理因为 com.imooc就应该同时扫描到 product 和 order)

 完成了上面几步,这时 order的使用到productClient的部分无法使用(因为productClient为空只是我忽略了它的注入),然后可以继续关注本章mq的学习了。

个人猜测是按照视频上使用了开发的快照版因为快照修改不会有新版本发布导致我使用的jar其实和视频上使用的jar就不是同一个版本导致

1
0

SpringCloud Finchley(M2+RELEASE+SR2)微服务实战

SpringCloud组件实现微服务,【已升级Finchley.Release】

5668 学习 · 2489 问题

查看课程