个人简介

Echo Blog


江湖无名 安心练剑
  • 竞争消费模式
    竞争消费模式 使多个并发的消费者来处理同一消息收发信道接收到的消息。 这种模式使系统能够同时处理多个消息以优化吞吐量,提高扩展性和可用性,并且以平衡的工作量。 背景与问题 在云中运行的应用程序可以预期处理大量的请求。而不是过程中的每个请求的同步,常用的技术是应用程序通过消息系统来处理这些异步其它服务(消费者服务)来传递他们。 这种策略有助于确保当请求正在处理中的应用程序的业务逻辑没...
    2018-09-17 08:36:54 | Pattern
  • RabbitMQ 实战入门-06-远程调用
    RPC 在第二个教程中,我们学习了如何使用工作队列在多个工作者之间分配耗时的任务。 但是,如果我们需要在远程计算机上运行一个函数并等待结果呢? 那是另一回事了。这种模式通常称为远程过程调用或RPC。 在本教程中,我们将使用RabbitMQ构建RPC系统: 客户机和可伸缩RPC服务器。 由于我们没有任何值得分发的耗时任务,我们将创建一个返回斐波那契数的虚拟RPC服务。 Client...
    2018-09-17 05:43:16 | MQ
  • RabbitMQ 实战入门-05-Topics
    Topics 在前面的教程中,我们改进了日志系统。我们没有使用只能进行虚拟广播的扇出(fanout)交换,而是使用了直接(direct)交换,并获得了选择性地接收日志的可能性。 虽然使用 direct exchange 改进了我们的系统,但是它仍然有局限性——它不能基于多个标准进行路由。 在我们的日志系统中,我们可能不仅要根据严重性订阅日志,还要根据发出日志的源订阅日志。 您可能从 ...
    2018-09-17 05:43:16 | MQ
  • RabbitMQ 实战入门-04-路由
    Routing 在前面的教程中,我们构建了一个简单的日志系统。我们能够向许多接收器广播日志消息。 在本教程中,我们将为它添加一个特性——我们将使订阅消息的一个子集成为可能。 例如,我们将能够仅将关键错误消息直接指向日志文件(以节省磁盘空间),同时仍然能够在控制台打印所有日志消息。 Bindings 前面的例子绑定如下: channel.queueBind(queueName, E...
    2018-09-17 05:43:16 | MQ
  • RabbitMQ 实战入门-03-发布/订阅模式
    Publish/Subscribe 在前面的教程中,我们创建了一个工作队列。工作队列后面的假设是,每个任务只交付给一个工作者。在这一部分中,我们将做一些完全不同的事情——我们将向多个消费者传递消息。这种模式称为“发布/订阅”。 为了说明这个模式,我们将构建一个简单的日志系统。它将由两个程序组成——第一个程序将发出日志消息,第二个程序将接收并打印它们。 在我们的日志系统中,接收程序的每个...
    2018-09-17 05:43:16 | MQ
  • RabbitMQ 实战入门-02-工作队列
    Worker Queue 拓展阅读 竞争消费模式 工作队列 工作队列(又名:任务队列)背后的主要思想是避免立即执行占用大量资源的任务,并且必须等待它完成。相反,我们把任务安排在以后完成。我们将任务封装为消息并将其发送到队列。在后台运行的worker进程将弹出任务并最终执行作业。当您运行许多工作者时,任务将在他们之间共享。 这个概念在web应用程序中尤其有用,在web应用程序中,...
    2018-09-17 05:43:16 | MQ
  • RabbitMQ 实战入门-01-Hello World
    准备工作 测试环境 jdk 1.8 mac 系统 前期准备 保证 maven 正确配置。 保证 rabbitmq 服务已经启动。 基本元素介绍 生产者 生产就是发送。发送消息的程序是生产者。 队列 队列是位于RabbitMQ内的邮箱的名称。 尽管消息流经RabbitMQ和您的应用程序,但它们只能存储在队列中。 队列只受主机的内存和磁盘限制,它本质上是一个大的消息缓冲...
    2018-09-17 05:43:16 | MQ
  • Spring AMQP
    Spring AMQP Spring AMQP项目将核心Spring概念应用于基于AMQP的消息传递解决方案的开发。 它提供了一个“模板”,作为发送和接收消息的高级抽象。 它还提供了对带有“侦听器容器”的消息驱动pojo的支持。 这些库有助于管理AMQP资源,同时促进依赖注入和声明性配置的使用。在所有这些情况下,您将看到与Spring框架中的JMS支持的相似之处。 项目由两部分组成...
    2018-09-17 03:54:23 | MQ