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

企业网站功能对比分析微信网站制作软件

企业网站功能对比分析,微信网站制作软件,如何提升网站pr值,深圳p2p网站开发RabbitMQ 知识详解#xff08;Java版#xff09; RabbitMQ 是一个开源的消息代理#xff0c;实现了高级消息队列协议#xff08;AMQP#xff09;。它用于在分布式系统中实现应用解耦、异步通信和流量削峰。 核心概念 生产者(Producer)#xff1a;发送消息的应用消费者(…RabbitMQ 知识详解Java版 RabbitMQ 是一个开源的消息代理实现了高级消息队列协议AMQP。它用于在分布式系统中实现应用解耦、异步通信和流量削峰。 核心概念 生产者(Producer)发送消息的应用消费者(Consumer)接收消息的应用队列(Queue)消息存储的缓冲区交换机(Exchange)接收消息并路由到队列绑定(Binding)连接交换机和队列的规则路由键(Routing Key)消息的路由标识 交换机类型 类型路由规则典型用途Direct精确匹配Routing Key点对点通信Topic模式匹配支持通配符多条件路由Fanout广播到所有绑定队列发布/订阅Headers消息头键值对匹配复杂路由 Java 示例使用官方客户端 依赖 dependencygroupIdcom.rabbitmq/groupIdartifactIdamqp-client/artifactIdversion5.9.0/version /dependency dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-nop/artifactIdversion1.7.30/version /dependency示例1基本发送/接收点对点 // 生产者 public class Producer {private final static String QUEUE_NAME hello;public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setHost(localhost);try (Connection connection factory.newConnection();Channel channel connection.createChannel()) {// 创建队列持久化/非持久化channel.queueDeclare(QUEUE_NAME, false, false, false, null);String message Hello RabbitMQ!;channel.basicPublish(, QUEUE_NAME, null, message.getBytes());System.out.println( [x] Sent message );}} }// 消费者 public class Consumer {private final static String QUEUE_NAME hello;public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setHost(localhost);Connection connection factory.newConnection();Channel channel connection.createChannel();channel.queueDeclare(QUEUE_NAME, false, false, false, null);System.out.println( [*] Waiting for messages...);DeliverCallback deliverCallback (consumerTag, delivery) - {String message new String(delivery.getBody(), UTF-8);System.out.println( [x] Received message );};channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag - { });} }示例2发布/订阅模式Fanout交换机 // 发布者 public class Publisher {private static final String EXCHANGE_NAME logs;public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setHost(localhost);try (Connection connection factory.newConnection();Channel channel connection.createChannel()) {// 声明fanout类型交换机channel.exchangeDeclare(EXCHANGE_NAME, fanout);String message Broadcast message!;channel.basicPublish(EXCHANGE_NAME, , null, message.getBytes());System.out.println( [x] Sent message );}} }// 订阅者 public class Subscriber {private static final String EXCHANGE_NAME logs;public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setHost(localhost);Connection connection factory.newConnection();Channel channel connection.createChannel();channel.exchangeDeclare(EXCHANGE_NAME, fanout);// 创建临时队列String queueName channel.queueDeclare().getQueue();channel.queueBind(queueName, EXCHANGE_NAME, );System.out.println( [*] Waiting for messages...);DeliverCallback deliverCallback (consumerTag, delivery) - {String message new String(delivery.getBody(), UTF-8);System.out.println( [x] Received message );};channel.basicConsume(queueName, true, deliverCallback, consumerTag - { });} }示例3主题路由Topic交换机 // 生产者主题发布 public class TopicProducer {private static final String EXCHANGE_NAME topic_logs;public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setHost(localhost);try (Connection connection factory.newConnection();Channel channel connection.createChannel()) {// 声明topic类型交换机channel.exchangeDeclare(EXCHANGE_NAME, topic);String routingKey order.error;String message Order processing error;channel.basicPublish(EXCHANGE_NAME, routingKey, null, message.getBytes());System.out.println( [x] Sent routingKey : message );}} }// 消费者主题订阅 public class TopicConsumer {private static final String EXCHANGE_NAME topic_logs;public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setHost(localhost);Connection connection factory.newConnection();Channel channel connection.createChannel();channel.exchangeDeclare(EXCHANGE_NAME, topic);String queueName channel.queueDeclare().getQueue();// 绑定多个路由键使用通配符channel.queueBind(queueName, EXCHANGE_NAME, *.error);channel.queueBind(queueName, EXCHANGE_NAME, order.*);System.out.println( [*] Waiting for messages...);DeliverCallback deliverCallback (consumerTag, delivery) - {String message new String(delivery.getBody(), UTF-8);String routingKey delivery.getEnvelope().getRoutingKey();System.out.println( [x] Received routingKey : message );};channel.basicConsume(queueName, true, deliverCallback, consumerTag - { });} }关键特性Java实现 1. 消息持久化 // 声明持久化队列 boolean durable true; channel.queueDeclare(task_queue, durable, false, false, null);// 发送持久化消息 channel.basicPublish(, task_queue, MessageProperties.PERSISTENT_TEXT_PLAIN,message.getBytes());2. 公平分发Prefetch // 每次只分发一条消息 int prefetchCount 1; channel.basicQos(prefetchCount);3. 消息确认ACK // 消费者关闭自动ACK boolean autoAck false; channel.basicConsume(queueName, autoAck, deliverCallback, consumerTag - {});// 处理完成后手动ACK channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);4. 持久化消费者 // 重启后自动恢复的消费者 MapString, Object args new HashMap(); args.put(x-queue-type, quorum); channel.queueDeclare(persistent_queue, true, false, false, args);使用场景 服务解耦订单系统与库存系统分离异步处理耗时操作如邮件发送流量削峰突发请求缓冲秒杀系统分布式事务最终一致性实现日志收集多系统日志聚合 最佳实践 连接管理使用连接池如Spring AMQP的CachingConnectionFactory异常处理实现Consumer和Connection的监听器死信队列处理失败消息集群部署保证高可用性监控管理使用RabbitMQ Management Plugin 提示生产环境推荐使用Spring AMQP简化开发它提供了RabbitTemplate和RabbitListener等便捷工具。
http://www.w-s-a.com/news/936990/

相关文章:

  • 做网站有的浏览器怎么做网站网站赚钱
  • 织梦 做网站 教程百度登录个人中心官网
  • ftp怎么修改网站wordpress分享积分
  • 营销策划方案的步骤西安关键词优化软件
  • 南宁自己的网站移动互联网技术学什么
  • 2017湖北建设教育协会网站自己接单做网站
  • 定制网站建设制作h5网站要多久
  • 泰安中呼网站建设有限公司 概况个人网站的设计与实现参考文献
  • 圣诞节网站怎么做怎么获取网站的图片
  • 想找个人做网站音乐网站建设教程视频教程
  • 网站收录一键提交阿里巴巴做网站多少钱
  • 怎么做网站投放广告商务网站建设实训报告
  • 服装代销的网站源码国内电子商务网站有哪些
  • qq空间怎么做网站做企业平台的网站有哪些
  • 网站的优缺点wordpress手机适配模板中文
  • 福州网站建设H5广告公司简介简短
  • 网站404页面的作用app开发郑州
  • 亚马逊中国网站建设目标网站建设的策划
  • 林州网站建设服务徐州网站建设
  • 如何检测网站死链景德镇网站建设哪家好
  • 旅游网站开发目标天津专业做网站公司
  • 名者观看网站快手小程序
  • 网络架构扁平化windows优化大师好不好
  • 安康养老院收费价格表兰州seo整站优化服务商
  • 网站开发技术方案模板无锡网站建设推荐
  • 自助建站系统注册三维家3d设计软件免费
  • 做seo网站标题重要吗郑州众诚建设监理有限公司网站
  • 建设网站南沙区百度关键词推广怎么做
  • 网站建设公司做销售前景好不好石家庄外贸网站制作
  • windows2008做网站网站首页打开速度