中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

直播系統(tǒng)平臺搭建佛山網(wǎng)站設(shè)計實力樂云seo

直播系統(tǒng)平臺搭建,佛山網(wǎng)站設(shè)計實力樂云seo,專業(yè)團(tuán)隊高清圖片,微信開發(fā)人Spring-amqp是對AMQP的一些概念的一些抽象,Spring-rabbit是對RabbitMQ操作的封裝實現(xiàn)。 主要有幾個核心類RabbitAdmin、RabbitTemplate、SimpleMessageListenerContainer等 RabbitAdmin類完成對Exchange、Queue、Binding的操作,在容器中管理 了RabbitA…

Spring-amqp是對AMQP的一些概念的一些抽象,Spring-rabbit是對RabbitMQ操作的封裝實現(xiàn)。

主要有幾個核心類RabbitAdminRabbitTemplate、SimpleMessageListenerContainer

RabbitAdmin類完成對Exchange、Queue、Binding的操作,在容器中管理 了RabbitAdmin類的時候,可以對Exchange、Queue、Binding進(jìn)行自動聲明。

RabbitTemplate類是發(fā)送和接收消息的工具類。

SimpleMessageListenerContainer是消費消息的容器。

目前一些比較新的項目會使用基于注解的方式,而比較老的一些項目可能還是基于配制文件的方式。

此處使用的Spring依賴為:

            <dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit</artifactId><version>2.2.7.RELEASE</version></dependency>

消息的生產(chǎn)者

import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.amqp.core.MessagePropertiesBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Product {public static void main(String[] args) throws Exception {AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring-rabbit.xml");RabbitTemplate template = context.getBean(RabbitTemplate.class);MessagePropertiesBuilder propertiesBuilder = MessagePropertiesBuilder.newInstance();propertiesBuilder.setContentEncoding("gbk");propertiesBuilder.setContentType(MessageProperties.CONTENT_TYPE_TEXT_PLAIN);Message msg = MessageBuilder.withBody("hello world".getBytes("gbk")).andProperties(propertiesBuilder.build()).build();template.convertAndSend("ex.direct", "routing.q1", msg);context.close();}
}

spring-rabbit.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:rabbit="http://www.springframework.org/schema/rabbit"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/rabbithttp://www.springframework.org/schema/rabbit/spring-rabbit.xsd"><!--配制連接工廠--><rabbit:connection-factory id="connectFactory"host="node1" virtual-host="/"username="root" password="123456"port="5672"></rabbit:connection-factory><!--用于自動向RabbitMQ聲明隊列、交換器、綁定 等操作工具類--><rabbit:admin id="rabbitAdmin" connection-factory="connectFactory"></rabbit:admin><!--用于簡化操作的模板類--><rabbit:template connection-factory="connectFactory" id="rabbitTemplate" /><!--聲明隊列隊列--><rabbit:queue id="msg1" name="queue.msg" durable="false" exclusive="false" auto-delete="false" ></rabbit:queue><!--聲明交換器--><rabbit:direct-exchange name="ex.direct" durable="false" auto-delete="false" id="directExchange" ><rabbit:bindings><!--key表示綁定鍵--><!--queue表示將交換器綁定到哪個消息隊列,使用隊列換id,不要使用Bean的name--><!--exchange表示交接交換器綁定到哪個交換器。--><rabbit:binding queue="msg1" key="routing.q1" ></rabbit:binding></rabbit:bindings></rabbit:direct-exchange></beans>

運行生產(chǎn)者的代碼,便可查看數(shù)據(jù)已經(jīng)發(fā)送成功

[root@nullnull-os ~]# rabbitmqctl list_exchanges --formatter pretty_table
Listing exchanges for vhost / ...
┌────────────────────┬─────────┐
│ name               │ type    │
├────────────────────┼─────────┤
│ amq.fanout         │ fanout  │
├────────────────────┼─────────┤
│ ex.busi.topic      │ topic   │
├────────────────────┼─────────┤
│ amq.rabbitmq.trace │ topic   │
├────────────────────┼─────────┤
│ amq.headers        │ headers │
├────────────────────┼─────────┤
│ amq.topic          │ topic   │
├────────────────────┼─────────┤
│ amq.direct         │ direct  │
├────────────────────┼─────────┤
│ ex.direct          │ direct  │
├────────────────────┼─────────┤
│                    │ direct  │
├────────────────────┼─────────┤
│ ex.routing         │ direct  │
├────────────────────┼─────────┤
│ amq.match          │ headers │
└────────────────────┴─────────┘
[root@nullnull-os ~]# rabbitmqctl list_bindings --formatter pretty_table
Listing bindings for vhost /...
┌─────────────┬─────────────┬──────────────────┬──────────────────┬─────────────┬───────────┐
│ source_name │ source_kind │ destination_name │ destination_kind │ routing_key │ arguments │
├─────────────┼─────────────┼──────────────────┼──────────────────┼─────────────┼───────────┤
│             │ exchange    │ queue.msg        │ queue            │ queue.msg   │           │
├─────────────┼─────────────┼──────────────────┼──────────────────┼─────────────┼───────────┤
│ ex.direct   │ exchange    │ queue.msg        │ queue            │ routing.q1  │           │
└─────────────┴─────────────┴──────────────────┴──────────────────┴─────────────┴───────────┘
[root@nullnull-os ~]# rabbitmqctl list_queues --formatter pretty_table
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
┌───────────┬──────────┐
│ name      │ messages │
├───────────┼──────────┤
│ queue.msg │ 1        │
└───────────┴──────────┘
[root@nullnull-os ~]# 

可以觀察到數(shù)據(jù)已經(jīng)成功的發(fā)送了。

遇到的問題:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.amqp.rabbit.config.BindingFactoryBean#0': Cannot resolve reference to bean 'queue.msg' while setting bean property 'destinationQueue'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'queue.msg' availableat org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1699)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1444)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:876)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)at com.nullnull.learn.Product.main(Product.java:18)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'queue.msg' availableat org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:814)at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1282)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:297)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330)... 15 more

問題原因:

    <rabbit:direct-exchange name="ex.direct" durable="false" auto-delete="false" id="directExchange" ><rabbit:bindings><rabbit:binding queue="queue.msg" key="routing.q1" ></rabbit:binding></rabbit:bindings></rabbit:direct-exchange>

此處要配制的是隊列的id,而不是隊列的名稱。

修改后:

 <!--聲明交換器--><rabbit:direct-exchange name="ex.direct" durable="false" auto-delete="false" id="directExchange" ><rabbit:bindings><!--key表示綁定鍵--><!--queue表示將交換器綁定到哪個消息隊列,使用隊列換id,不要使用Bean的name--><!--exchange表示交接交換器綁定到哪個交換器。--><rabbit:binding queue="msg1" key="routing.q1" ></rabbit:binding></rabbit:bindings></rabbit:direct-exchange>
http://www.risenshineclean.com/news/37891.html

相關(guān)文章:

  • 杭州螞蟻 做網(wǎng)站的公司鄭州今日頭條
  • 家具公司網(wǎng)頁設(shè)計搜索引擎優(yōu)化的策略主要有
  • centos7裝wordpressseo站內(nèi)優(yōu)化和站外優(yōu)化
  • 0元試用網(wǎng)站開發(fā)廈門網(wǎng)站建設(shè)公司哪家好
  • 找網(wǎng)站開發(fā)公司成品視頻直播軟件推薦哪個好用
  • 做圍棋題最好的網(wǎng)站域名解析ip138在線查詢
  • 長春市做網(wǎng)站推廣成人速成班有哪些專業(yè)
  • 網(wǎng)站首頁如何做浮動窗口自學(xué)seo大概需要多久
  • 大慶公司做網(wǎng)站效果好的關(guān)鍵詞如何優(yōu)化
  • 廈門哪里做網(wǎng)站網(wǎng)上競價平臺
  • 網(wǎng)站一級目錄seo自然搜索優(yōu)化排名
  • dw做網(wǎng)站背景圖片設(shè)置鋪平網(wǎng)頁怎么搜索關(guān)鍵詞
  • 惠州有做網(wǎng)站的嗎免費個人自助建站
  • 南昌專業(yè)做網(wǎng)站公司有哪些電腦優(yōu)化工具
  • 黃驊烈士網(wǎng)奇seo培訓(xùn)官網(wǎng)
  • 建設(shè)網(wǎng)站預(yù)算廣州seo營銷培訓(xùn)
  • 17網(wǎng)店貨源網(wǎng)seo綜合查詢系統(tǒng)
  • 深圳定制網(wǎng)站公司免費seo關(guān)鍵詞優(yōu)化排名
  • 江門網(wǎng)站推廣軟件關(guān)鍵詞排名提高
  • 網(wǎng)頁設(shè)計配色時可以用關(guān)鍵詞是網(wǎng)站seo的核心工作
  • 云臺山旅游景區(qū)網(wǎng)站建設(shè)內(nèi)容業(yè)務(wù)推廣方式有哪些
  • wordpress source安卓優(yōu)化大師手機版下載
  • boostrop怎么做網(wǎng)站網(wǎng)絡(luò)推廣理實一體化軟件
  • 網(wǎng)站開發(fā)設(shè)計各部門職責(zé)寧德市疫情
  • 商標(biāo)注冊核名查詢系統(tǒng)成都百度快照優(yōu)化排名
  • 做電力 公司網(wǎng)站seo網(wǎng)絡(luò)推廣是什么意思
  • 公司網(wǎng)站注意事項產(chǎn)品推廣詞
  • 南昌網(wǎng)站建設(shè)基本流程上海網(wǎng)絡(luò)推廣公司
  • 移動版網(wǎng)站怎么做如何自己創(chuàng)建一個網(wǎng)站
  • 12306網(wǎng)站為什么做那么差如何進(jìn)行線上推廣