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

网站做视频在线观看怎么去推广自己的平台

网站做视频在线观看,怎么去推广自己的平台,南宁网站设计公司排名,学校培训连接RabbitMQ 1.创建ConnectionFactory,给定参数ip地址,端口号,用户名和密码等 2.创建ConnectionFactory,使用uri方式实现,创建channel。 注意: Connection可以用来创建多个channel实例,但c…

连接RabbitMQ

1.创建ConnectionFactory,给定参数ip地址,端口号,用户名和密码等

2.创建ConnectionFactory,使用uri方式实现,创建channel。

注意:

Connection可以用来创建多个channel实例,但channel实例不能在线程间共享,应用程序为每个线程开辟一个channel。多线程间共享channel实例是非线程安全的。

Channel或connection有个isOpen方法可以用来检测其是否已处于开启状态,但不推荐使用有可能会产生竞争。

在调用createxx或newxx方法后,可以认为Connection和channel已经处于开启状态,而不会使用isopen检测,如果使用channel时已经处于关闭状态,那么程序会抛出一个ShutdownSignalException,只需捕获异常即可。

使用交换器和队列

交换器和队列是amqp中high-level层面的构建模块,需确保在使用他们的时候就已经存在,在使用前需要声明他们

声明

//创建一个持久化的,非自动删除的,绑定类型为direct的交换器
//创建一个非持久化,排他的,自动删除的队列
//使用路由键将队列和交换器绑定起来
channel.exchangeDeclare(exchangeName,"direct",true);
String queueName = channel.queueDeclare().getQueue();
channel.queueBind(queueName,exchangeName,routingKey);

何时创建

rabbitmq消息存储在队列中,交换器不真正耗费服务器的性能,队列会。实际业务中,需要对所创建的队列的流量、内存占用及网卡占用有一个清晰的认知,预估其平均值和峰值。

预先创建好资源可以确保交换器和队列之间正确绑定匹配。

发送消息

使用channel类的basicPublish方法

byte[] messageBodyBytes = “Hello,world”.getBytes();

channel.basicPublish(exchangeName,routingKey,null,messageBodyBytes);

mandatory参数可以控制发送

消费消息

消费模式分为推模式和拉模式

推模式Basic.Consume

一般通过实现Consumer接口或继承DefaultConsumer类实现。当调用与Consumer相关的api方法时,不同的订阅采用不同的消费者标签来区分彼此,在同一个channel中的消费者也需要通过唯一的消费者标签作区分。

拉模式Basic.Get

通过channel.basicGet方法可以单条获取消息,返回值GetRespone。

消费端的确认与拒绝

消息确认

消费者订阅队列时,指定autoAck参数

  • autoAck==false:rabbitmq会等待消费者显式恢复确认信号才从内存中移去消息。
    • 对于rabbitmq服务端而言,队列中消息分为两部分
      • 等待投递给消费者的消息
      • 已经投递给消费者但还没有收到消费者确认信号的消息
    • 如果rabbitmq一直没有收到消费者的确认信号,并且消费此消息的消费者已经断开连接,则rabbitmq会安排该消息重新进入队列,等待投递给下一个消费者,当然也有可能还是原来的那个消费者。
    • rabbitmq不会为未确认的消息设置过期时间,他判断此消息是否需要重新投递给消费者的唯一依据是消费该消息的消费者连接是否已经断开。rabbitmq允许消费者消费一条消息的时间可以很久很久
  • autoAck==true:rabbitmq会自动把发送的消息置为确认,然后从内存中删除,不管消费者是否真正地消费到这些消息

消息拒绝

  • Basic.Reject:消费者客户端可以调用与其对应的channel.basicReject
  • Basic.Nack:reject命令一次只能拒绝一条消息,如果想批量拒绝,使用Basic.Nack
  • Basic.Reover:具备可重入队列特性,用来请求rabbitmq重新发送还未被确认的消息。
    • true:未被确认的消息会被重新加入到队列中,这样对于同一条消息来说,可能会被分配给与之前不同的消费者,默认为true
    • false:同一条消息会被分配给与之前相同的消费者。

关闭连接

channel.close();

conn.close();

Connection和Channel生命周期

  • open():开启状态,代表当前对象可以使用

  • closing():正在关闭状态,当前对象被显示地通知调用关闭方法,这样产生了一个关闭请求让其内部对象进行相应的操作,并等待这些关闭操作完成

  • closed():已经关闭状态,当前对象已经接收到所有的内部对象已完成关闭动作的通知,并且也关闭了自身。

  • getCloseReason:获取对象关闭原因

  • 当触发shutdownListener时,可以获取到ShutdownSignalException,包含了关闭的原因,可以通过调用getCloseReason获取。

    • isHardError可以知道是Connection还是Channel的错误
    • getReason可以获取cause相关的信息

参考:《RabbitMQ实战指南》

http://www.mnyf.cn/news/15612.html

相关文章:

  • 南昌网站建设方案服务中国最厉害的营销策划公司
  • 宝塔建站工具cps广告联盟
  • 软件开发能力优化关键词的步骤
  • 网站建设完整版必应搜索国际版
  • 网站为什么没有被收录百度搜索排名优化
  • 网站建设工作流程html广州市口碑seo推广外包
  • 山东 网站建设广告最多的网站
  • 快速wordpress 建网站收录网站有哪些
  • 企业电商网站备案流程百度关键词seo推广
  • 外包网站有哪些百度竞价推广公司
  • 广州企业网站找哪里网络营销推广方案
  • 已购买域名 如何做网站百度联盟怎么加入赚钱
  • 北京网站备案总局百度客服联系方式
  • 关于强化政府网站建设工作方案如何创建一个网站
  • 电子商城网站开发 pdf医院网络销售要做什么
  • 宁波网站建设多少钱一年百度服务热线
  • 凡科建站弊端竞价推广sem
  • 辽宁建设工程信息网站关键词排名什么意思
  • 手机版网站如何制作软件简述seo的基本步骤
  • 高端网站开发培训挖掘关键词爱站网
  • 继电器做网站怎么开发网站
  • 网站购物分享seo郑州网站建设价格
  • 帮忙网页设计师百度seo排名规则
  • 单站点网站天津seo诊断
  • 适合权重小的网站做的专题最常用的网页制作软件
  • 怎么做期货网站交换友情链接的要求有
  • 一个人可以做网站吗做网站的平台有哪些
  • 网站设计中遇到的问题免费网络项目资源网
  • 溧阳做网站整合营销策划方案
  • 手机网站建设咨询电话六种常见的网络广告类型