美文网首页
springcloudbus-rabbitmq

springcloudbus-rabbitmq

作者: 白敏鸢 | 来源:发表于2017-10-31 21:59 被阅读0次

    书接前文,言归正转,前面说道springcloud在分布式下的配置问题,
    ok,接下来说说消息队列的问题,就和相亲一样,我知道你的基本信息,我们还得见个面谈谈是吧,=-=,这样才知道我们合适不,
    springcloud做消息队列的有两个东西rabbitmq和kafka,这里我说一下rabbitmq,kafka再说,哈哈,最近加班加疯了。

    rabbitmq:兔子妈其,
    
    怎么用?
    step1:
    安装erlang与rabbitmq,具体就百度好了。
    安装完了执行:rabitmq-plugins enable rabbitmq_management;
    访问:localhost:15672/可以看到我们的rabbitma_manager了
              默认user:guest passwd:guest   
                我们配置一个user:springcloud,密码123456好了,测试使用
      其中有:exchange,queue等东西
    
    step2:
    rabbitmq-product
    配置文件
    spring.application.name=rabbitmq-hello
    spring.rabbitmq.host=localhost
    spring.rabbitmq.port=5672
    spring.rabbitmq.username=springcloud
    spring.rabbitmq.password=123456
    
    config:配置rabbitmq的配置信息,以前博客有写,哈哈,就不多说啦
    package com.example.rabbitmqserver.rabbittmq;
    import org.springframework.amqp.core.Queue;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    @Configuration
    public class RabbitConfig {
    
        @Bean
        public Queue helloQueue() {
            return new Queue("hello");
        }
    
    }
    
    product:搞一个hello队列出来,把一个字符串放进去
    package com.example.rabbitmqserver.rabbittmq;
    import org.springframework.amqp.core.AmqpTemplate;
    import org.springframework.amqp.rabbit.core.RabbitTemplate;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    import java.util.Date;
    @Component
    public class Sender {
    
        @Autowired
        private AmqpTemplate rabbitTemplate;
    
        public void send() {
            String context = "hello " + new Date();
            System.out.println("Sender : " + context);
            this.rabbitTemplate.convertAndSend("hello", context);
        }
    
    }
    customer:使用rabbit的监听器监听helllo的队列,然后取东西出来
    package com.example.rabbitmqserver.rabbittmq;
    import org.springframework.amqp.rabbit.annotation.RabbitHandler;
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    import org.springframework.cache.annotation.Cacheable;
    import org.springframework.stereotype.Component;
    import java.util.Date;
    @Component
    @RabbitListener(queues = "hello")
    public class Receiver {
    
        @RabbitHandler
        public void process(String hello) {
            System.out.println("Receiver : " + hello);
        }
    
    }
    
    app:最后是我们的Application.java
    package com.example.rabbitmqserver;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class RabbitmqServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(RabbitmqServerApplication.class, args);
        }
    }
    
    step3:跑起来吧。去rabbitmq manager中可以看到多出来链接条目
          console中也显示啦helo队列的东西,脑补!!!!=-=
    step$:rabbitmq可以和erukayuconfig结合起来。做到动态刷新,这个有时间再研究吧,哈哈
    
    
    1:rabbit mq的安装:先去安装erlanng,再去apt-get install 安装一下rabbitma就成
    2:rabbitmq的创建流程与组件:
    以前的博客写了,就不说啦
            http://www.jianshu.com/p/c9d52f07eda6
    3:rabbit server与rabbit client是异步的,可以在demo里面进行测试server与client分别关闭之后的情况,rabbitserver与rabbitclient的demo
    4:eureka与rabbitmq,config的结合,在eureka client中有bus/refresh接口用于同步信息
    5:使用bus/refresh接口实现所有的刷新,/bus/refresh?destinaation=*:*;用于指定刷新特殊的应用
    6:架构优化:
            method1:把configserver加入消息总线,
            method2:bus/refresh不是发送到某个springboot而是发送到config server
    

    相关文章

      网友评论

          本文标题:springcloudbus-rabbitmq

          本文链接:https://www.haomeiwen.com/subject/iweipxtx.html