zoukankan      html  css  js  c++  java
  • Java操作队列

    Java操作队列

    常见的几种模式:

     

    1 简单队列simple

    模型:(p + 队列 + c)

    P:生产者producer,将消息发送到队列

    红色:消息队列

    C:消费者consumer,从队列消费消息

     

    生产真的速度一般大于消费者的速度(因为消费者需要和业务计算相结合)

    创建maven工程

    导入pomjar文件

     

    步骤:

    a:获取MQ链接的工具类

     

    创建生产者类发送消息:

    再回到web控制台可以看到刚才的操作:

     

    C: 创建一个消费者类消费消息

    用的是旧的版本的(3.4)队列API

     

    用最新的队列API(基于事件的监听):

     

     

     

    2 工作队列work    queue

    一个生产者对应多个消费者!

     

    轮询分发(round ribon)

    编写生产者类生产50条信息:

     

     

    消费者1消费消息:

     

    消费者2消费消息:

    修改睡眠时间为1000ms.

     

    结果会看到消费者1和2都一人一个消息,均分消费了这50条消息。

    这个是Rabbitmq的轮询分发(round-robin)。

     

     

    公平分发(fair dipatch)

    关闭自动应答asc,改为手动

     

    修改生产者代码:

     

    修改消费者代码:

     

    运行的结果会看到睡眠2000ms的消费者消费的消息明显少于睡眠1000ms的消费者

     

     

    消息应答ack,和消息持久化durable

    消息应答主要是防止消费者挂了之后丢失数据。

     

    持久化durable:

     

    消息的持久化主要是为了防止rabbitmq服务器挂了之后消息丢失。

     

     

    3 订阅模式

     

    模型

    X:交换机,路由器。需要绑定到队列。


    交换机

     

     

     

    "":匿名转发。

    Fanout:不处理路由键

     

    代码用例

    编写生产者:

    运行之后可以在web控台看到多了一个exchange:

     

    创建消费者类:

    在web控制台可以见到

     

     

     

     

     

    4 Direct:处理路由键的模式

     

    代码用例 生产者:

     

     

    消费者1(单个路由key):

     

    消费者2(多个路由key):

     

    启动消费者1和2之后,再发送key为error的消息,消费者1和2都能消费该消息

     

    5 Topics 模式    

     

    将路由键和某种主题模式匹配(采用通配符的方式)

    #:匹配一个或者多个的情况(常用)

    *:匹配一个。(少用)

     

     

     

    代码用例:发布商品的增删改查

    生产者:

    消费者1:

     

    消费者2:

     

     

     

  • 相关阅读:
    CS229 6.4 Neurons Networks Autoencoders and Sparsity
    CS229 6.3 Neurons Networks Gradient Checking
    【Leetcode】【Easy】Min Stack
    【Leetcode】【Easy】Merge Sorted Array
    【Leetcode】【Easy】ZigZag Conversion
    【Leetcode】【Easy】Valid Palindrome
    【Leetcode】【Easy】Reverse Integer
    【Leetcode】【Easy】Palindrome Number
    【Leetcode】【Easy】Length of Last Word
    【Leetcode】【Easy】Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/domi22/p/9096005.html
Copyright © 2011-2022 走看看