当前位置: 首页 > wzjs >正文

网站开发和网站建设wordpress下载后放哪

网站开发和网站建设,wordpress下载后放哪,网站结构设计的内容,低价网站制作rabbitmq官网地址&#xff1a;https://www.rabbitmq.com/tutorials 下面介绍rabbitmq官网中七种使用方式在spring boot中如何使用 下面是基于 Spring Boot 使用 RabbitMQ 实现这七种模式的示例代码。假设已经引入了以下依赖&#xff1a; Maven 依赖 <dependency><g…

rabbitmq官网地址:https://www.rabbitmq.com/tutorials

下面介绍rabbitmq官网中七种使用方式在spring boot中如何使用

下面是基于 Spring Boot 使用 RabbitMQ 实现这七种模式的示例代码。假设已经引入了以下依赖:

Maven 依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

 

1. Hello World! 模式

生产者和消费者直接发送和接收消息。

配置类

@Configuration
public class RabbitConfig {public static final String QUEUE_NAME = "hello";@Beanpublic Queue helloQueue() {return new Queue(QUEUE_NAME);}
}

生产者

@RestController
@RequestMapping("/hello")
public class HelloProducer {@Autowiredprivate AmqpTemplate rabbitTemplate;@GetMapping("/send")public String send() {rabbitTemplate.convertAndSend(RabbitConfig.QUEUE_NAME, "Hello RabbitMQ!");return "Message sent!";}
}

消费者

@Component
public class HelloConsumer {@RabbitListener(queues = RabbitConfig.QUEUE_NAME)public void receive(String message) {System.out.println("Received: " + message);}
}

2. Work Queues(工作队列)

多个消费者从同一个队列中获取任务,进行任务分发。

配置类

@Configuration
public class WorkQueueConfig {public static final String WORK_QUEUE = "work_queue";@Beanpublic Queue workQueue() {return new Queue(WORK_QUEUE);}
}

生产者

@RestController
@RequestMapping("/work")
public class WorkQueueProducer {@Autowiredprivate AmqpTemplate rabbitTemplate;@GetMapping("/send/{msg}")public String send(@PathVariable String msg) {rabbitTemplate.convertAndSend(WorkQueueConfig.WORK_QUEUE, msg);return "Work message sent!";}
}

消费者(多个)

@Component
public class WorkConsumer {@RabbitListener(queues = WorkQueueConfig.WORK_QUEUE)public void receive(String message) throws InterruptedException {System.out.println("Worker received: " + message);Thread.sleep(1000);  // 模拟任务耗时}
}

3. Publish/Subscribe(发布/订阅)

使用 Fanout Exchange 实现广播。

配置类

@Configuration
public class FanoutConfig {public static final String FANOUT_EXCHANGE = "fanout_exchange";@Beanpublic FanoutExchange fanoutExchange() {return new FanoutExchange(FANOUT_EXCHANGE);}@Beanpublic Queue queue1() {return new Queue("fanout.queue1");}@Beanpublic Queue queue2() {return new Queue("fanout.queue2");}@Beanpublic Binding binding1() {return BindingBuilder.bind(queue1()).to(fanoutExchange());}@Beanpublic Binding binding2() {return BindingBuilder.bind(queue2()).to(fanoutExchange());}
}

生产者

@RestController
@RequestMapping("/fanout")
public class FanoutProducer {@Autowiredprivate AmqpTemplate rabbitTemplate;@GetMapping("/send")public String send() {rabbitTemplate.convertAndSend(FanoutConfig.FANOUT_EXCHANGE, "", "Fanout message!");return "Fanout message sent!";}
}

4. Routing(路由模式)

使用 Direct Exchange 和路由键实现定向投递。

配置类

@Configuration
public class DirectConfig {public static final String DIRECT_EXCHANGE = "direct_exchange";@Beanpublic DirectExchange directExchange() {return new DirectExchange(DIRECT_EXCHANGE);}@Beanpublic Queue errorQueue() {return new Queue("direct.error");}@Beanpublic Queue infoQueue() {return new Queue("direct.info");}@Beanpublic Binding errorBinding() {return BindingBuilder.bind(errorQueue()).to(directExchange()).with("error");}@Beanpublic Binding infoBinding() {return BindingBuilder.bind(infoQueue()).to(directExchange()).with("info");}
}

5. Topics(主题模式)

使用 Topic Exchange 实现多级路由。

配置类

@Configuration
public class TopicConfig {public static final String TOPIC_EXCHANGE = "topic_exchange";@Beanpublic TopicExchange topicExchange() {return new TopicExchange(TOPIC_EXCHANGE);}@Beanpublic Queue topicQueue1() {return new Queue("topic.queue1");}@Beanpublic Queue topicQueue2() {return new Queue("topic.queue2");}@Beanpublic Binding binding1() {return BindingBuilder.bind(topicQueue1()).to(topicExchange()).with("*.error");}@Beanpublic Binding binding2() {return BindingBuilder.bind(topicQueue2()).to(topicExchange()).with("log.#");}
}

6. RPC(远程过程调用)

生产者发送请求,消费者处理后返回响应。

RPC 服务端

@Component
public class RpcServer {@RabbitListener(queues = "rpc_queue")public String process(String message) {return "Processed: " + message;}
}

RPC 客户端

@RestController
@RequestMapping("/rpc")
public class RpcClient {@Autowiredprivate AmqpTemplate rabbitTemplate;@GetMapping("/send/{msg}")public String send(@PathVariable String msg) {Object response = rabbitTemplate.convertSendAndReceive("rpc_queue", msg);return "RPC response: " + response;}
}

7. Publisher Confirms(发布者确认)

确保消息成功发送到 RabbitMQ 服务器。

配置类

@Configuration
public class ConfirmConfig {@Beanpublic CachingConnectionFactory connectionFactory() {CachingConnectionFactory factory = new CachingConnectionFactory("localhost");factory.setPublisherConfirms(true);return factory;}@Beanpublic RabbitTemplate rabbitTemplate(CachingConnectionFactory connectionFactory) {RabbitTemplate template = new RabbitTemplate(connectionFactory);template.setConfirmCallback((correlationData, ack, cause) -> {if (ack) {System.out.println("Message confirmed");} else {System.err.println("Message failed: " + cause);}});return template;}
}

http://www.dtcms.com/wzjs/612025.html

相关文章:

  • 网站安全管理制度建设电脑微信公众号登录入口
  • 档案网站建设文献综述凡科网站做网站多少钱
  • 企业建站电话多少网页设计简单教程
  • 动力无限网站效果好不好微信模板素材
  • 做音乐网站是不是侵权河南建设信息网站
  • 网站建设行业发展趋势东营信息网
  • 网站制作语言wordpress用户登录地址
  • 平湖网站建设公司克建立网站谁给你钱
  • 东莞网上推广怎么做seo做的比较好的网站的几个特征
  • 呼和浩特网站建设哪家最便宜建e
  • 网站备案添加域名绍兴seo计费管理
  • 公司注册网站多少钱网站建设如何把更改内容
  • 哪家企业做网站好中国咖啡网站建设方案
  • 做计算机网站有哪些功能网站建设可行性方案
  • 如何做网站公司名seowordpress转盘抽奖源码
  • 网站加载慢图片做延时加载有用合肥做网站的公司有哪些
  • 网站开发进入腾信职位做ipo尽调需要用到的网站
  • 商用图片的网站做返利网站能赚钱
  • 深圳专业做网站和seo的公司免费做app的软件有哪些
  • 企业网站设计的重要性网络系统建设方案
  • 番禺网站建设部招标网站
  • 万江网站制作python安装wordpress
  • 哪个地方旅游网站做的比较好微信公众号里的小网站怎么做的
  • 网站模块顺序调整做任务的网站有哪些
  • wordpress做小程序灯塔seo
  • 海南省建设考试网站首页广州网站推广平台
  • 北京微信网站制作电话做视频网站推广
  • 国内优秀的设计网站推荐有利于seo的网站底部
  • 诸城网站建设费用电商卖货平台
  • 有了域名后怎么做网站百度公司推广电话