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

怎么给网站做https/成品网站源码在线看

怎么给网站做https,成品网站源码在线看,施工企业年度工作计划红头文件,做网站外包的公司好干嘛讲AMQP之前,先讲下传统的JMS的消息模型,JMS中主要有三个参与者:消息的生产者、消费者、传递消息的通道(队列或者主题),两种消息模型如下:通道是队列: 通道是队列: 通道是…

讲AMQP之前,先讲下传统的JMS的消息模型,JMS中主要有三个参与者:消息的生产者、消费者、传递消息的通道(队列或者主题),两种消息模型如下:
通道是队列:

通道是队列:

通道是主题:

在JMS中,虽然通道有助于解耦消息的生产者和消费者,但这两者依然会与通道相耦合。生产者会将消息发布到一个特定的队列或主题上,消费者从特定的队列或主题上接收这些消息,通道具有双重责任,就是传递数据和确定这些消息该发送到什么地方,队列的话会使用点对点算法发送,主题的话就使用发布-订阅方式。
而使用AMQP的话,生产者并不会直接将消息发布到队列中,AMQP的消息的生产者以及传递消息的队列之间引入间接机制Exchange,Exchange再与队列绑定。关系图如下:

从图可以看出Exchange收到消息后,Exchange会将信息路由到队列上,消费者再从队列中取数据并处理。这里Exchange不是简单地把消息传递到队列中,AMQP定义了四种不同类型的Exchange,每种都有不同的路由算法,以此决定是否将信息放到队列中。根据Exchange算法的不同,它可能会使用消息的routing key和/或参数,并将其与Exchange和队列之间的binding和routing key和参数进行对比,如果对比结果满足相应的算法,那么消息就路由到该队列上。

AMQP中定义的四种不同类型的Exchange:

Direct:如果消息的routing key与binding的routing key直接匹配的话,消息将会路由到该队列上;
Topic:如果消息的routing key与binding的routing key符合通配符匹配的话,消息将会路由到该队列上;
Headers:如果消息参数表中的头信息和值都与binding参数表相匹配,消息将会路由到该队列上;
Fanout:不管消息的routing key和参数表的头信息/值是什么,消息将会路由到所有队列上。
这里要深入了解AMQP的到www.amqp.org查看,下面使用Spring、AMQP实现发送、接收消息。

先配置Spring支持AMQP消息

使用Spring AMQP前要先配置一个连接工厂,具体来讲,这里选择配置RabbitMQ连接工厂。RabbitMQ实现了AMQP,也是目前较常用的消息代理。使用RabbitMQ发送接收消息前,要先安装RabbitMQ,具体安装步骤可以在www.rabbitmq.com/download.html上找到安装指南,这里就不详细展开。

配置RabbitMQ连接工厂最简单的方式是使用Spring AMQP所提供的rabbit配置命名空间,要使用该功能,首先要确保Spring配置文件中声明了该模式:

<?xml version="1.0" encoding="UTF-8"?>  
<beans:beans xmlns="http://www.springframework.org/schema/beans"  xmlns:rabbit="http://www.springframework.org/schema/rabbit"  xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans.xsd  http://www.springframework.org/schema/rabbit  http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd"> 
...
</beans:beans>

这个配置不是必须的,这里选择将rabbit作为首选命名空间,将beans作为第二的命名空间,因为在这个配置中,会更多的声明rabbit而不是bean,这样的话,只会有少量的bean元素使用“beans:”前缀,而rabbit元素就能避免使用前缀了。

rabbit命名空间包含了多个在Spring中配置RabbitMQ的元素,用得最多的就是<connection-factory>,使用时最好给其设置一个bean ID,不然就难将连接工厂装配到需要它的bean中了。

<connectioin-factory id="connectionFactory">

连接工厂默认情况下会设置RabbitMQ服务器监听localhost的5672端口,用户名密码都为guest,一般在开发环境可以不作修改,在生产环境的修改方式如下 :

<connectioin-factory id="connectionFactory" host="${rabbitmq.host}"post="${rabbitmq.post}"username="${rabbitmq.username}"password="${rabbitmq.password}" 
/>

这样设置的好处是具体值可以到属性文件中配置。

接下来看看如何创建队列、Exchange、binding

在传统的JMS中,队列和主题的路由行为是通过规范建立的,而AMQP依赖于如何定义队列和Exchange以及如何将它们绑定在一起。声明队列、Exchange和binding的一种方式是使用RabbitMQ Channel接口的各种方法,不过这里使用rabbit命名空间更加方便,它包含了多个元素,可以帮我们声明队列、Exchange以及将它们结合在一起的binding。元素如下:

这些配置元素要与<admin>元素一起使用,<admin>元素会创建一个RabbitMQ管理组件,如果上述表格中的元素在RabbitMQ代理中尚未存在的话,<admin>会自动创建它们。
比如现在想声明名为spittle.test.queue的队列,只需要在Spring配置中添加如下配置即可:

<admin connection-factory="connectionFactory" />
<queue id="spittleTestQueue" name="spittle.test" />

当如此配置时,Exchange默认是一个没有名称的direct Exchange,所有队列都会绑定到这个Exchange中,并且routing key与队列的名称相同。在这样的配置下,我们可以将消息发送到这个没有名称的Exchange上,并将routing key设定为spittle.test.queue,这样消息就会路由到这个队列中(其实这里就类似于JMS的点对点模型)。
其他有意思的路由需要我们自行声明一个或更多的Exchange,并将其绑定到队列上,比如不管routing key是什么, 要将消息路由到多个队列上,可以按照如下方式配置一个fanout以及多个队列:

<admin connection-factory="connectionFactory" />
<queue  name="spittle.test.queue.1" >
<queue  name="spittle.test.queue.2" >
<queue  name="spittle.test.queue.3" >
<fanout-exchange name="spittle.fanout"><bindings><binding queue="spittle.test.queue.1" /><binding queue="spittle.test.queue.2" /><binding queue="spittle.test.queue.3" /></bindings>
</fanout-exchange>

其他类型的Exchange读者可以根据上面的表格自行尝试,下一篇将继续写如何发送消息。

 

转载于:https://www.cnblogs.com/weknow619/p/6538493.html

http://www.lbrq.cn/news/1289683.html

相关文章:

  • 南京网站设计制作/企业培训有哪些方面
  • 中英文网站后台/电子商务与网络营销教案
  • 青海个人旅游网站建设/爱站官网
  • 集约化网站群建设内容/百度指数关键词工具
  • 龙岗网站建设技术/营业推广方案
  • 解析网站怎么做/站长工具日本
  • 旅游类网站设计/重庆网站优化公司
  • 深圳建设局网站/武汉seo网站
  • 网站域名密码忘了/百度云登录
  • 建设网站需要申请什么/百度如何免费打广告
  • 厦门网站建设哪家便宜/网络推广公司是干嘛的
  • 网站域名备案办理拍照/网络营销策划方案模板范文
  • 东阳网站制作/推广网上国网
  • 建安证查询网站/百度关键词优化送网站
  • 长沙移动网站建设/营销策划公司收费明细
  • 深圳房产 网站建设/seo免费推广软件
  • 做AE视频素材在哪些网站上可以找/国内重大新闻10条
  • 男人和女人做性的网站/灰色关键词排名代做
  • 零售客户电商网站登录/电脑培训班电脑培训学校
  • wordpress插件头像/seo搜索引擎优化推荐
  • 做网页去哪些网站找素材较好/广州百度推广客服电话多少
  • 电商是干什么的/关键词优化排名首页
  • 音乐制作网站/老铁外链
  • 手机网站 wordpress/优化网站价格
  • 帮我写一篇网站/深圳互联网推广公司
  • 做二手车有哪些网站有哪些手续/怎么找到精准客户资源
  • 北京营销型网站建设方案/seo入门书籍
  • 宜宾建设网站/甘肃百度推广电话
  • 北京手机网站开发公司/百度搜索排名靠前
  • 武汉企业做网站找哪家好/友情链接站长平台
  • io_uring:Linux异步I/O的革命性突破
  • 深度学习(鱼书)day01--感知机
  • 期待更好的发展
  • 微服务-springcloud-springboot-Skywalking详解(下载安装)
  • Kubernetes服务发布基础
  • 学生信息管理系统 - HTML实现增删改查