十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
rabbitMq 是什么?
专业从事成都网站建设、网站设计,高端网站制作设计,小程序制作,网站推广的成都做网站的公司。优秀技术团队竭力真诚服务,采用H5技术+CSS3前端渲染技术,响应式网站设计,让网站在手机、平板、PC、微信下都能呈现。建站过程建立专项小组,与您实时在线互动,随时提供解决方案,畅聊想法和感受。RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
rabbitMq 可以做什么?
消息系统允许软件、应用相互连接和扩展.这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接.消息系统通过将消息的发送和接收分离来实现应用程序的异步和解偶.
或许你正在考虑进行数据投递,非阻塞操作或推送通知。或许你想要实现发布/订阅,异步处理,或者工作队列。所有这些都可以通过消息系统实现。
RabbitMQ是一个消息代理 - 一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。
如何使用:
spring boot 使用消息队列
pom 引入依赖
org.springframework.boot
spring-boot-starter-amqp
org.springframework.boot
spring-boot-starter-web
application.yml
spring:
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
配置queue
@Configuration
public class RabbitConfig {
//queue
@Bean
public Queue helloQueue() {
return new Queue("hello");
}
@Bean
public Queue topicMessage() {
return new Queue("topic.message");
}
@Bean
public Queue fanoutQueue() {
return new Queue("fanout.A");
}
//exchange
@Bean
TopicExchange exchange() {
return new TopicExchange("exchange");
}
@Bean
FanoutExchange fanoutExchange() {
return new FanoutExchange("fanoutExchange");
}
//bind
//绑定单个topicExchange
@Bean
Binding bindingExchangeMessage(Queue topicMessage, TopicExchange exchange) {
return BindingBuilder.bind(topicMessage).to(exchange).with("topic.message");
}
//绑定多个topicExchange
@Bean
Binding bindingExchangeMessages(Queue topicMessage, TopicExchange exchange) {
return BindingBuilder.bind(topicMessage).to(exchange).with("topic.#");
}
//绑定单个 fanoutExchange
@Bean
Binding bindingFanoutExchange(Queue fanoutQueue ,FanoutExchange fanoutExchange) {
return BindingBuilder.bind(fanoutQueue).to(fanoutExchange);
}
}
3.配置消费者
@Component
@RabbitListener(queues= {"hello"})
public class HelloReceive {
@RabbitHandler
public void helloProcess(String message){
System.out.println(message);
}
}
配置生生产者
@Component
public class HelloSender {
@Autowired
AmqpTemplate amqpTemplate;
public void sendHello(String message){
amqpTemplate.convertAndSend("hello",message);
}
}
5 .测试接口
@RestController
@RequestMapping("/rabbit")
public class RabbitController {
@Autowired
HelloSender helloSender;
@RequestMapping("/hello")
public Object helloRabbit(String message){
helloSender.sendHello(message);
return "success";
}
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。