无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(消息中间件使用场景) 消息中间件的使用场景有哪些 消息中间件简介 全网首发(图文详解1)

前沿技术 Micheal 4个月前 (05-19) 62次浏览 已收录 扫描二维码

(消息中间件使用场景) 消息中间件的使用场景有哪些

消息中间件,正如其名,就是在整个系统架构中扮演着“信息传递”的角色。它可以将不同地点,不同应用,不同时间的需求和信息进行合理的收集、排队和分发。消息中间件常用的包括RabbitMQ, ActiveMQ, Kafka, RocketMQ等。

消息中间件主要的使用场景如下:

  • 应用程序解耦:如果应用程序直接与其它应用程序通信,那么一个应用程序的任何改动都可能影响其它应用程序。消息中间件在这种情况下可以作为应用程序之间的一个媒介。
  • 松耦合系统:它允许系统与系统之间的通讯,无论它们是否正在运行,都不会影响系统的调用。只要发送者发送了消息,不论接受者是否在线,都能接受到消息。
  • 流量消峰:在高并发场景,直接访问数据库可能会导致数据库连接异常,此时可以通过消息中间件进行流量的削峰。
  • 重复消费及顺序消费:对于一些需要重复处理的业务,或者说一些需要顺序处理的业务,使用消息中间件能够很好的解决这个问题。

使用步骤如下:

  • 安装消息中间件软件。例如安装RabbitMQ。
  • 配置消息中间件。在管理界面中,添加需要的交换机类型,绑定相应的队列,设置路由键等。
  • 代码层面的开发。

以RabbitMQ为例,对于Java开发来说,需要在pom.xml添加相关的依赖。

<dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>5.1.2</version>
</dependency>

然后在代码中创建连接工厂,获取连接。

ConnectionFactory factory = new ConnectionFactory();
//设置RabbitMQ地址
factory.setHost("localhost");
//设置RabbitMQ相关信息
factory.setPort(5672);
factory.setUsername("guest");
factory.setPassword("guest");
//创建一个新的连接
Connection connection = factory.newConnection();
//创建一个通道
Channel channel = connection.createChannel();

接着,我们可以根据需求来进行数据的发送和接收。如发送消息。

// 发送消息
String message = "Hello World!";
channel.basicPublish("", "QUEUE_NAME", null, message.getBytes("UTF-8"));

接收消息则需要定义一个消费者来进行消息的消费。

// 定义消费者
Consumer consumer = new DefaultConsumer(channel) {
    @Override
    public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
      String message = new String(body, "UTF-8");
      System.out.println("Received Message '" + message + "'");
    }
};
// 绑定消费者
channel.basicConsume("QUEUE_NAME", true, consumer);
  1. 测试:去生产者的界面生产消息,然后在消费者的界面看是否收到消息,从而完成整个消息的发送及接收。

这只是简单的消息中间件的使用示例,实际应用中,还需要考虑的东西更多,包括错误的处理,消息确认,持久化等一系列问题。
(去除) 详解pandas.DataFrame.drop_duplicates()(删除重复行)函数使用方法 pandas.DataFrame.drop_duplicates 主要作用是删除重复行 全网首发(图文详解1)
(安装过程) 如何在新电脑上安装Ghost Win10操作系统 Windows 10 Ghost 安装指南(准备安装完成) 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝