導航:首頁 > 源碼編譯 > 源碼包安裝rabbitmq

源碼包安裝rabbitmq

發布時間:2022-11-17 22:14:19

⑴ RabbitMQ詳解1.安裝及使用

brew install rabbitmq

Homebrew是Mac的軟體包管理器,如果電腦上沒有Homebrew可以通過下面的指令安裝,官網地址 Homebrew 。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

/usr/local/etc/rabbitmq

前台啟動 :rabbitmq-server
後台啟動 :rabbitmq-server -detached

rabbitmqctl status

前台關閉 :control c
後台關閉 :rabbitmqctl stop

可以通過rabbitmqctl命令來進行創建、刪除、查看用戶、分配用戶許可權等操作,更詳細的操作列表可以查閱官方文檔 rabbitmqctl官方文檔 ,或通過 rabbitmqctl --help 來查看。

RabbitMQ為了控制用戶的許可權,一共為用戶分配了五種角色,如下所示

RabbitMQ的許可權控制是以vhost為單元的,可以把vhost暫時理解為一個許可權控制組,後面會進行詳細解釋,詳細的許可權管理可以查閱官方文檔 Access Control in RabbitMQ 。

linux下RabbitMQ詳細安裝流程

本文章選取的伺服器操作系統:CentOS 7版本;

在 /etc/yum.repos.d/ 目錄下添加 .repo 文件(例如:rabbitmq-erlang.repo),因發行版的不同,文件內容也有區別,以下是Centos 7 的配置:

在 /etc/yum.repos.d/ 目錄下添加 .repo 文件(例如:rabbitmq.repo),因發行版的不同,文件內容也有區別,以下是Centos 7 的配置:

進入 /etc/systemd/system 或者/usr/lib/systemd/system,並創建rabbitmq-server.service 文件。
注意:通過 yum 安裝的,已經在 /usr/lib/systemd/system 目錄下存在rabbitmq-server.service 文件。

⑶ Spring整合rabbitmq實踐(一):基礎

Spring整合rabbitmq實踐(二):擴展
Spring整合rabbitmq實踐(三):源碼

procer:消息生產者;

consumer:消息消費者;

queue:消息隊列;

exchange:接收procer發送的消息按照binding規則轉發給相應的queue;

binding:exchange與queue之間的關系;

virtualHost:每個virtualHost持有自己的exchange、queue、binding,用戶只能在virtualHost粒度控制許可權。

fanout:

群發到所有綁定的queue;

direct:

根據routing key routing到相應的queue,routing不到任何queue的消息扔掉;可以不同的key綁到同一個queue,也可以同一個key綁到不同的queue;

topic:

類似direct,區別是routing key是由一組以「.」分隔的單片語成,可以有通配符,「*」匹配一個單詞,「#」匹配0個或多個單詞;

headers:

根據arguments來routing。

arguments為一組key-value對,任意設置。

「x-match」是一個特殊的key,值為「all」時必須匹配所有argument,值為「any」時只需匹配任意一個argument,不設置默認為「all」。

通過以下配置,可以獲得最基礎的發送消息到queue,以及從queue接收消息的功能。

這個包同時包含了一些其它的包:spring-context、spring-tx、spring-web、spring-messaging、spring-retry、spring-amqp、amqp-client,如果想單純一點,可以單獨引入。

最主要的是以下幾個包,

spring-amqp:

spring-rabbit:

amqp-client:

個人理解就是,spring-amqp是spring整合的amqp,spring-rabbit是spring整合的rabbitmq(rabbitmq是amqp的一個實現,所以可能spring-rabbit也是類似關系),amqp-client提供操作rabbitmq的java api。

目前最新的是2.0.5.RELEASE版本。如果編譯報錯,以下信息或許能有所幫助:

(1)

解決方案:spring-amqp版本改為2.0.5.RELEASE。

(2)

解決方案:spring-context版本改為5.0.7.RELEASE。

(3)

解決方案:spring-core版本改為5.0.7.RELEASE。

(4)

解決方案:spring-beans版本改為5.0.7.RELEASE。

(5)

解決方案:spring-aop版本改為5.0.7.RELEASE。

總之,需要5.0.7.RELEASE版本的spring,及相匹配版本的amqp-client。

後面所講的這些bean配置,spring-amqp中都有默認配置,如果不需要修改默認配置,則不用人為配置這些bean。後面這些配置也沒有涉及到所有的屬性。

這里的ConnectionFactory指的是spring-rabbit包下面的ConnectionFactory介面,不是amqp-client包下面的ConnectionFactory類。

上面這個bean是spring-amqp的核心,不論是發送消息還是接收消息都需要這個bean,下面描述一下裡面這些配置的含義。

setAddresses :設置了rabbitmq的地址、埠,集群部署的情況下可填寫多個,「,」分隔。

setUsername :設置rabbitmq的用戶名。

setPassword :設置rabbitmq的用戶密碼。

setVirtualHost :設置virtualHost。

setCacheMode :設置緩存模式,共有兩種, CHANNEL 和 CONNECTION 模式。

CHANNEL 模式,程序運行期間ConnectionFactory會維護著一個Connection,所有的操作都會使用這個Connection,但一個Connection中可以有多個Channel,操作rabbitmq之前都必須先獲取到一個Channel,否則就會阻塞(可以通過setChannelCheckoutTimeout()設置等待時間),這些Channel會被緩存(緩存的數量可以通過setChannelCacheSize()設置);

CONNECTION 模式,這個模式下允許創建多個Connection,會緩存一定數量的Connection,每個Connection中同樣會緩存一些Channel,除了可以有多個Connection,其它都跟CHANNEL模式一樣。

這里的Connection和Channel是spring-amqp中的概念,並非rabbitmq中的概念,官方文檔對Connection和Channel有這樣的描述:

關於 CONNECTION 模式中,可以存在多個Connection的使用場景,官方文檔的描述:

setChannelCacheSize :設置每個Connection中(注意是每個Connection)可以緩存的Channel數量,注意只是緩存的Channel數量,不是Channel的數量上限,操作rabbitmq之前(send/receive message等)要先獲取到一個Channel,獲取Channel時會先從緩存中找閑置的Channel,如果沒有則創建新的Channel,當Channel數量大於緩存數量時,多出來沒法放進緩存的會被關閉。

注意,改變這個值不會影響已經存在的Connection,隻影響之後創建的Connection。

setChannelCheckoutTimeout :當這個值大於0時, channelCacheSize 不僅是緩存數量,同時也會變成數量上限,從緩存獲取不到可用的Channel時,不會創建新的Channel,會等待這個值設置的毫秒數,到時間仍然獲取不到可用的Channel會拋出AmqpTimeoutException異常。

同時,在 CONNECTION 模式,這個值也會影響獲取Connection的等待時間,超時獲取不到Connection也會拋出AmqpTimeoutException異常。

setPublisherReturns、setPublisherConfirms :procer端的消息確認機制(confirm和return),設為true後開啟相應的機制,後文詳述。

官方文檔描述publisherReturns設為true打開return機制,publisherComfirms設為true打開confirm機制,但測試結果(2.0.5.RELEASE版本)是,任意一個設為true,兩個都會打開。

addConnectionListener、addChannelListener、setRecoveryListener :添加或設置相應的Listener,後文詳述。

setConnectionCacheSize :僅在 CONNECTION 模式使用,設置Connection的緩存數量。

setConnectionLimit :僅在 CONNECTION 模式使用,設置Connection的數量上限。

上面的bean配置,除了需要注入的幾個listener bean以外,其它設置的都是其默認值(2.0.5.RELEASE版本),後面的bean示例配置也是一樣,部分屬性不同版本的默認值可能有所不同。

一般不用配置這個bean,這里簡單提一下。

這個ConnectionFactory是rabbit api中的ConnectionFactory類,這裡面是連接rabbitmq節點的Connection配置。

如果想修改這些配置,可以按如下方式配置:

consumer端如果通過@RabbitListener註解的方式接收消息,不需要這個bean。

不建議直接通過ConnectionFactory獲取Channel操作rabbitmq,建議通過amqpTemplate操作。

setConnectionFactory :設置spring-amqp的ConnectionFactory。

setRetryTemplate :設置重試機制,詳情見後文。

setMessageConverter :設置MessageConverter,用於java對象與Message對象(實際發送和接收的消息對象)之間的相互轉換,詳情見後文。

setChannelTransacted :打開或關閉Channel的事務,關於amqp的事務後文描述。

setReturnCallback、setConfirmCallback :return和confirm機制的回調介面,後文詳述。

setMandatory :設為true使ReturnCallback生效。

這個bean僅在consumer端通過@RabbitListener註解的方式接收消息時使用,每一個@RabbitListener註解的方法都會由這個創建一個MessageListenerContainer,負責接收消息。

setConnectionFactory :設置spring-amqp的ConnectionFactory。

setMessageConverter :對於consumer端,MessageConverter也可以在這里配置。

setAcknowledgeMode :設置consumer端的應答模式,共有三種:NONE、AUTO、MANUAL。

NONE,無應答,這種模式下rabbitmq默認consumer能正確處理所有發出的消息,所以不管消息有沒有被consumer收到,有沒有正確處理都不會恢復;

AUTO,由Container自動應答,正確處理發出ack信息,處理失敗發出nack信息,rabbitmq發出消息後將會等待consumer端的應答,只有收到ack確認信息才會把消息清除掉,收到nack信息的處理辦法由setDefaultRequeueRejected()方法設置,所以在這種模式下,發生錯誤的消息是可以恢復的。

MANUAL,基本同AUTO模式,區別是需要人為調用方法給應答。

setConcurrentConsumers :設置每個MessageListenerContainer將會創建的Consumer的最小數量,默認是1個。

setMaxConcurrentConsumers :設置每個MessageListenerContainer將會創建的Consumer的最大數量,默認等於最小數量。

setPrefetchCount :設置每次請求發送給每個Consumer的消息數量。

setChannelTransacted :設置Channel的事務。

setTxSize :設置事務當中可以處理的消息數量。

setDefaultRequeueRejected :設置當rabbitmq收到nack/reject確認信息時的處理方式,設為true,扔回queue頭部,設為false,丟棄。

setErrorHandler :實現ErrorHandler介面設置進去,所有未catch的異常都會由ErrorHandler處理。

AmqpTamplate裡面有下面幾個方法可以向queue發送消息:

這里,exchange必須存在,否則消息發不出去,會看到錯誤日誌,但不影響程序運行:

Message是org.springframework.amqp.core.Message類,spring-amqp發送和接收的都是這個Message。

從Message類源碼可以看到消息內容放在byte[]裡面,MessageProperties對象包含了非常多的一些其它信息,如Header、exchange、routing key等。

這種方式,需要將消息內容(String,或其它Object)轉換為byte[],示例:

也可以直接調用下面幾個方法,Object將會自動轉為Message對象發送:

有兩種方法接收消息:

1.polling consumer,輪詢調用方法一次獲取一條;

2.asynchronous consumer,listener非同步接收消息。

polling consumer

直接通過AmqpTemplate的方法從queue獲取消息,有如下方法:

如果queue裡面沒有消息,會立刻返回null;傳入timeoutMillis參數後可阻塞等待一段時間。

如果想直接從queue獲取想要的java對象,可調用下面這一組方法:

後面4個方法是帶泛型的,示例如下:

使用這四個方法需要配置org.springframework.amqp.support.converter.SmartMessageConverter,這是一個介面,Jackson2JsonMessageConverter已經實現了這個介面,所以只要將Jackson2JsonMessageConverter設置到RabbitTemplate中即可。

asynchronous consumer

有多種方式可以實現,詳情參考官方文檔。

最簡單的實現方式是@RabbitListener註解,示例:

這里接收消息的對象用的是Message,也可以是自定義的java對象,但調用Converter轉換失敗會報錯。

註解上指定的queue必須是已經存在並且綁定到某個exchange的,否則會報錯:

如果在@RabbitListener註解中指明binding信息,就能自動創建queue、exchange並建立binding關系。

direct和topic類型的exchange需要routingKey,示例:

fanout類型的exchange,示例:

2.0版本之後,可以指定多個routingKey,示例:

並且支持arguments屬性,可用於headers類型的exchange,示例:

@Queue有兩個參數exclusive和autoDelete順便解釋一下:

exclusive,排他隊列,只對創建這個queue的Connection可見,Connection關閉queue刪除;

autoDelete,沒有consumer對這個queue消費時刪除。

對於這兩種隊列,rable=true是不起作用的。

另外,如果註解申明的queue和exchange及binding關系都已經存在,但與已存在的設置不同,比如,已存在的exchange的是direct類型,這里嘗試改為fanout類型,結果是不會有任何影響,不論是修改或者新增參數都不會生效。

如果queue存在,exchange存在,但沒有binding,那麼程序啟動後會自動建立起binding關系。

⑷ ubuntu怎麼安裝rabbitmq

安裝RabbitMQ服務軟體包
輸入以下命令進行安裝
#apt install rabbitmq-server

安裝完成後在rabbitMQ中添加openstack用戶,為後續安裝openstack提取做好准備
命令:#rabbitmqctl add_user openstack dick
其中dick為openstack用戶登錄rabbitMQ服務的密碼
同時為openstack用戶設置讀寫等許可權
命令:#rabbitmqctl set_permissions openstack ".*" ".*" ".*"

安裝RabbitMQ監控管理插件進行RabbitMQ的管理
命令:#rabbitmq-plugins enable rabbitmq_management
插件rabbitmq_management啟動成功後就可以通過web頁面進行RabbitMQ的監控和管理

使用rabbitmq_management插件進行監控和管理
使用firefox瀏覽器登錄:http://localhost:15672
在登錄頁面使用 guest/guest用戶名和密碼登錄RabbitMQ管理系統,在系統中可以對RabbitMQ服務進行channel,queue,用戶等的管理

安裝pika開發RabbitMQ客戶端
命令: # pip install pika

⑸ linux下安裝rabbitmq報錯

1.建議使用rpm包安裝
2.相對來說比源碼編譯方便
3.你源碼編譯安裝,自己沒注意或者沒載入庫,報錯了自己都不知道
4.希望可以幫助你,請採納,謝謝

⑹ 在linux下安裝rabbitmq失敗怎麼解決

RabbitMQ 是由 LShift 提供的一個 Advanced Message Queuing Protocol (AMQP) 的開源實現,由以高性能、健壯以及可伸縮性出名的 Erlang 寫成,因此也是繼承了這些優點。
AMQP 里主要要說兩個組件:Exchange 和 Queue (在 AMQP 1.0 里還會有變動),如下圖所示,綠色的 X 就是 Exchange ,紅色的是 Queue ,這兩者都在 Server 端,又稱作 Broker ,這部分是 RabbitMQ 實現的,而藍色的則是客戶端,通常有 Procer 和 Consumer 兩種類型:

1:mq的安裝需要Erlang,所以首先下載Erlang,下載地址:http://www.erlang.org/download.html直接下載源碼,編譯安裝即可。
將下載好的tar包解壓編譯安裝,如下命令:
tar -zxvf otp_src_R16B03-1.tar.gz

cd otp_src_R16B03-1
./configure && make install

安裝過程中可能出現如下錯誤:
configure:error:
No curses library functions found
configure: error:/bin/sh'/home/niewf/software/erlang_R13B01/erts/configure'
failed for erts

解決方法:
yum list|grep ncurses
yum -y install ncurses-devel
yum install ncurses-devel

或者直接下載ncurses包編譯安裝。
下載地址:http://download.chinaunix.net/download/0008000/7242.shtml
tar zxvf ncurses.tar.gz #解壓縮並且釋放 文件包
cd ncurses #進入解壓縮的目錄(注意版本)
./configure #按照你的系統環境製作安裝配置文件
make #編譯源代碼並且編譯NCURSES庫
su root #切換到root用戶環境
make install #安裝編譯好的NCURSES庫

完成後繼續返回上一步操作。

2:安裝python,如果系統中python版本低於2.5的話需要升級python到2.6以上,具體可參考:http://gavinshaw.blog.51cto.com/385947/610585

3:安裝simplejson,直接下載simplejson源碼包編譯安裝即可,下載地址:https://pypi.python.org/pypi/simplejson/。
下載simplejson源碼包後,運行python setup.py install即可完成安裝。

4:安裝rabbit mq,下載地址:https://www.rabbitmq.com/install-generic-unix.html
下載後放入相應目錄解壓,進入%RABBITMQ_HOME%/sbin目錄下運行:./rabbitmq-server start即可啟動mq。
如果遇到如下錯誤,則參考http://leeon.me/a/rabbitmq-start-fail-note解決方案
ERROR: epmd error for host "xxx": address (cannot connect to host/port)
到此mq已經安裝完成。
在%RABBITMQ_HOME%/sbin目錄運行./rabbitmqctl status可查看當前mq狀態。
同時mq也提供了界面查看當前mq狀態,但是需要啟用該插件功能,運行如下命令:
rabbitmq-plugins enable rabbitmq_management,然後在瀏覽器中輸入:http://host-name:15672/#/即可訪問,頁面結果如下:

⑺ rabbitmq在windows怎麼安裝

rabbitMQ是一個在AMQP協議標准基礎上完整的,可服用的企業消息系統。他遵循Mozilla Public License開源協議。採用 Erlang 實現的工業級的消息隊列(MQ)伺服器。

AMQP(高級消息隊列協議) 是一個非同步消息傳遞所使用的應用層協議規范,作為線路層協議,而不是API(例如JMS),AMQP 客戶端能夠無視消息的來源任意發送和接受信息。AMQP的原始用途只是為金融界提供一個可以彼此協作的消息協議,而現在的目標則是為通用消息隊列架構提供通用構建工具。因此,面向消息的中間件 (MOM)系統,例如發布/訂閱隊列,沒有作為基本元素實現。反而通過發送簡化的AMQ實體,用戶被賦予了構建例如這些實體的能力。這些實體也是規范的一 部分,形成了在線路層協議頂端的一個層級:AMQP模型。這個模型統一了消息模式,諸如之前提到的發布/訂閱,隊列,事務以及流數據,並且添加了額外的特性,例如更易於擴展,基於內容的路由。

在Windows上安裝Rabbit MQ 指南,最好的是這篇《Rabbit MQ Windows Installation guide》,其中還包括了使用.NET RabbitMQ.Client Nuget 包訪問Rabbit MQ的示例代碼。

安裝Rabbit MQ

Rabbit MQ 是建立在強大的Erlang OTP平台上,因此安裝Rabbit MQ的前提是安裝Erlang。通過下面兩個連接下載安裝3.2.3 版本:

下載並安裝Eralng OTP For Windows(vR16B03)

運行安裝Rabbit MQ Server Windows Installer(v3.2.3)

默認安裝的Rabbit MQ 監聽埠是5672

激活Rabbit MQ's Management Plugin

使用Rabbit MQ 管理插件,可以更好的可視化方式查看Rabbit MQ 伺服器實例的狀態,你可以在命令行中使用下面的命令激活:

"C:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin abbitmq-plugins.bat" enable rabbitmq_management

要重啟服務才能生效,可以執行net stop RabbitMQ && net start RabbitMQ

下面我們使用rabbitmqctl控制台命令(位於C:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>)來創建用戶,密碼,綁定許可權等。

Microsoft Windows [版本 6.3.9600](c) 2013 Microsoft Corporation。保留所有權利。

c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin 的目錄

2014/11/01 15:04 <DIR> .

2014/11/01 15:04 <DIR> ..

2014/01/23 22:57 817 rabbitmq-echopid.bat

2014/01/23 22:57 1,900 rabbitmq-plugins.bat

2014/01/23 22:57 4,356 rabbitmq-server.bat

2014/01/23 22:57 7,123 rabbitmq-service.bat

2014/01/23 22:57 1,621 rabbitmqctl.bat

5 個文件 15,817 位元組

2 個目錄 96,078,618,624 可用位元組

c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.ba

t list_users

Listing users ...

guest [administrator]

...done.

c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.ba

t list_vhosts

Listing vhosts ...

/

...done.

c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.ba

t add_user geffzhang zsy@2014

Creating user "geffzhang" ...

...done.

c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.ba

t list_users

Listing users ...

geffzhang []

guest [administrator]

...done.

c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.ba

t set_user_tags geffzhang administrator

Setting tags for user "geffzhang" to [administrator] ...

...done.

c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.ba

t list_users

Listing users ...

geffzhang [administrator]

guest [administrator]

...done.

使用瀏覽器打開http://localhost:15672訪問Rabbit Mq的管理控制台,使用剛才創建的賬號登陸系統:

⑻ 怎麼在Ubuntu linux系統上安裝和使用RabbitMQ

到www dot rabbitmq dot com下載 /releases/rabbitmq-server/v3.6.6/rabbitmq-server_3.6.6-1_all.deb 安裝文件,然後在root許可權下運行 dpkg -i rabbitmq-server_3.6.6-1_all.deb
或者添加自定義軟體源:
echo 'deb http://www.rabbitmq.com/debian/ testing main' |
sudo tee /etc/apt/sources.list.d/rabbitmq.list

添加源的加密公鑰
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc |
sudo apt-key add -

更新源
sudo apt-get update

通過軟體庫安裝軟體
sudo apt-get install rabbitmq-server

⑼ Windows下:RabbitMQ完美安裝全流程(親測有效)

1.確保電腦環境干凈,徹底卸載erlang和rabbitmq環境的詳細流程

Next

Next -- Install -- Finish

1.運行 -- 輸入sysdm.cpl

2.高級 -- 環境變數 -- 新建 -- 在path中配置

1.管理員運行rabbitmq-server-3.8.16.exe

2.Next

1.管理員身份運行命令提示符,cd到rabbitmq安裝目錄下的sbin文件夾
2.輸入rabbitmq-service install
3.輸入rabbitmq-service enable 讓服務准備就緒
4.輸入rabbitmq-service start 啟動服務(可能報錯,也可能不會)

這時候在本地服務中就可以查看RabbitMQ服務已經在運行

到這里還不夠,還有一些需要查看的
5.輸入rabbitmqctl status,會有以下報錯

6.查了網上的方法,打開RabbitMQ安裝目錄的sbin文件夾下的rabbitmq-env.bat找到最後面進行如下編輯

set FEATURE_FLAGS_FILE=
set ENABLED_PLUGINS_FILE=
set LOG_BASE=
set MNESIA_BASE=
set PLUGINS_DIR=
set SCRIPT_DIR=
set SCRIPT_NAME=
set TDP0=
set HOMEDRIVE=(填入隨便一個文件夾路徑)我放在了rabbitmq的安裝目錄下

10.將.erlang.cookie文件復制到sbin文件夾和目錄C:\Windows\System32\config\systemprofile中,保證唯一,重新啟動服務,輸入rabbitmqctl status 繼續報錯

打開瀏覽器,輸入http://127.0.0.1:15672/ ,默認用戶名密碼都是guest,即可登錄。

閱讀全文

與源碼包安裝rabbitmq相關的資料

熱點內容
電子加密貨幣最新政策 瀏覽:377
androidcanvas撤銷 瀏覽:267
安卓手機怎麼把圖標全部下移 瀏覽:183
飢荒被伺服器踢出怎麼進 瀏覽:170
c編譯器哪款好 瀏覽:732
快手寶哥發明什麼app 瀏覽:822
張艷玲編譯 瀏覽:66
android展開收起動畫 瀏覽:237
linuxxz文件 瀏覽:160
在游戲中心裏面怎麼玩到解壓神器 瀏覽:484
電腦發到手機裡面照片怎麼解壓 瀏覽:73
虛擬pdf列印機64位 瀏覽:413
支付寶AES加密和解密 瀏覽:379
編譯實驗原理下載 瀏覽:131
加密防偽溯源系統私人定做 瀏覽:222
掃碼給電動車充電的app叫什麼 瀏覽:760
關閉命令提醒 瀏覽:356
雲賬本app伺服器 瀏覽:499
python輸入數字循環 瀏覽:370
未成年人用什麼app 瀏覽:517