CentOS7.2中安裝rabbitmq

關(guān)于虛擬機(jī)中如何安裝CentOS7,在我這個(gè)文章中http://blog.csdn.net/junshangshui/article/details/79368111

  1. 下載erlang,因?yàn)閞abbitmq是erlang編寫的
    http://www.erlang.org/downloads

這里我下載的是20.1版本的。點(diǎn)擊OTP20.1后,進(jìn)入如下界面

保存這個(gè)文件。下載完成后的文件為 otp_src_20.1.tar.gz

2.下載rabbitmq

http://www.rabbitmq.com/download.html

下載完成后文件為rabbitmq-server-generic-unix-3.7.3.tar.xz

3.將下載的這兩個(gè)文件復(fù)制到虛擬機(jī)中的CentOS7.2中的根目錄下的usr文件夾中

  1. 安裝erlang

打個(gè)一個(gè)終端,解壓文件 tar -zxvf otp_src_20.1.tar.gz

利用yum安裝erlang編譯所依賴的環(huán)境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel openssl-devel unixODBC-devel

到otp_src_20.1文件夾下,進(jìn)行configure安裝環(huán)境配置,--prefix=/usr/erlang 是說明將當(dāng)前的安裝放在usr/erlang文件夾下。

./configure --prefix=/usr/erlang--without-javac

編譯 make

安裝 make install 。安裝完成后會(huì)有一個(gè)erlang文件夾。otp_src_20.1和otp_src_20.1.tar.gz都可以刪除了。

5.安裝rabbitmq

解壓rabbitmq-server-generic-unix-3.7.3.tar.xz到 usr下,然后改名為rabbitmq

因?yàn)橄螺d的rabbitmq是編譯好的方便的版本,所以只要解壓就行了。然后就可以刪除壓縮文件了

然后進(jìn)入計(jì)算機(jī)下面的etc文件夾中找到操作系統(tǒng)配置文件profile

在最后加上這兩行環(huán)境變量,保存。(和windows系統(tǒng)中的環(huán)境變量的作用差不多)

export PATH=$PATH:/usr/erlang/bin

export PATH=$PATH:/usr/rabbitmq/sbin

然后重啟電腦就可生效了

直接在桌面點(diǎn)擊右鍵開啟一個(gè)終端,輸入下面這行命令來開啟rabbitmq

rabbitmq-server

開啟web監(jiān)控.需要進(jìn)入目錄usr/rabbitmq/sbin 打開終端輸入以下命令來啟動(dòng)rabbitmq_management插件。

打開瀏覽器輸入 127.0.0.1:15672 就可以看到WEB管理界面,輸入guest guest登錄

大約等了一分鐘后就能看到rabbitmq的信息了。

6.配置rabbitmq

點(diǎn)擊節(jié)進(jìn)入后會(huì)發(fā)現(xiàn)沒有默認(rèn)配置文件

然后可查看/usr/rabbitmq/sbin下面的rabbitmq-defaults文件,如下圖,可以看到CONFIG_FILE的默認(rèn)路徑。

從以下網(wǎng)址找個(gè)配置文件(點(diǎn)擊Raw,然后復(fù)制),(根據(jù)上圖路徑)到usr/rabbitmq/etc/rabbitmq/下新建一個(gè)名為rabbitmq.config的文件,把復(fù)制的配置代碼粘貼上去。

https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.config.example

然后在終端重啟rabbitmq-server,進(jìn)入web管理界面,再點(diǎn)擊進(jìn)入rabbitmq節(jié)點(diǎn)就可以看到有配置文件了,不再是空的了。

打開rabbitmq.config文件后,可以知道默認(rèn)的tcp連接端口是5672。

{tcp_listeners, [5672]} ,

還可以看到日志記錄級(jí)別,一般把info改為error,即出錯(cuò)才記日志,否則日志太大。

  {rabbit_channel_lager_event, [{handlers, [

                                  {lager_forwarder_backend,

                                   [lager_event,error]}]}]},

  {rabbit_conection_lager_event, [{handlers, [

                                    {lager_forwarder_backend,

                                     [lager_event,error]}]}]}

上面最后一行后面的逗號(hào)注意去掉

還可以設(shè)置最大占用的內(nèi)存數(shù),去掉注釋,默認(rèn)為最大占用40%內(nèi)存。達(dá)到40%后會(huì)觸發(fā)阻塞。

{vm_memory_high_watermark, 0.4}, 注意去掉這行最后的逗號(hào)

保存文件,然后在終端重啟rabbitmq-server就可以了

7.C#客戶端連接rabbitmq

打開官網(wǎng)說明文檔(人個(gè)用的chrome瀏覽器打開并且用它自帶的網(wǎng)頁翻譯功能翻轉(zhuǎn)為中文)

http://www.rabbitmq.com/dotnet-api-guide.html

了解了一下文檔后,新建一個(gè)asp.net core控制臺(tái)應(yīng)用程序,打開nuget工具,下載RabbitMQ.Client這個(gè)包。

在CentOS中設(shè)置防火墻允許外部訪問5672端口,如果要在win10中使用瀏覽器訪問虛擬機(jī)中的rabbitmq WEB管理工具,則再添加一個(gè)15672端口。

在CentOS中打開rabbitmq的web管理工具,添加一個(gè)用戶xu,密碼為abc123456,并且設(shè)置此用戶的權(quán)限。

在CentOS中打開終端輸入ifconfig得知ip地址。

新建一個(gè)asp.net core控制臺(tái)程序,在nuget中下載RabbitMQ.Client包。寫入如下代碼:

static void Main(string[] args)
{
//一、連接rabbitmq
ConnectionFactory factory = new ConnectionFactory
{
UserName = "xu",
Password = "abc123456",
HostName = "192.168.213.140",
Port = 5672
};
IConnection conn = factory.CreateConnection();

        //二、創(chuàng)建一個(gè)通道
        IModel channel = conn.CreateModel();

        //三、創(chuàng)建一個(gè)交換機(jī)
        string exchangeName = "exchange1";
        string queueName = "queue1";
        string routingKey = "routingKey1";
        channel.ExchangeDeclare(exchangeName, ExchangeType.Direct);

        //四、創(chuàng)建一個(gè)消息隊(duì)列并且綁定到交換機(jī)上
        channel.QueueDeclare(queueName,false,false,false,null);
        channel.QueueBind(queueName,exchangeName,routingKey,null);

        //五、發(fā)道一個(gè)消息到消息隊(duì)列
        byte[] messageBodyBytes = System.Text.Encoding.UTF8.GetBytes("Hello, world!");
        channel.BasicPublish(exchangeName, routingKey, null, messageBodyBytes);

        Console.Read();
    }

運(yùn)行程序后會(huì)發(fā)送一條消息到rabbitmq,打開web管理工具可看到有一條消息了。

再添加一個(gè)asp.net core控制臺(tái)程序,從nuget下載好RabbitMQ.Client包。(記得設(shè)為啟動(dòng)項(xiàng)目),然后定入如下代碼:

static void Main(string[] args)
{
//一、連接rabbitmq
ConnectionFactory factory = new ConnectionFactory
{
UserName = "xu",
Password = "abc123456",
HostName = "192.168.213.140",
Port = 5672
};
IConnection conn = factory.CreateConnection();

        //二、創(chuàng)建一個(gè)通道
        IModel channel = conn.CreateModel();

        //三、取出消息
        string queueName = "queue1";
        BasicGetResult result = channel.BasicGet(queueName, true);

        var msg = Encoding.UTF8.GetString(result.Body);
        Console.WriteLine(msg);
        Console.Read();
    }

運(yùn)行后將成功取出消息,然后在WEB管理工具中可看到消息為0了。

特別問題,C#代碼連不上虛擬機(jī)中的rabbitmq,報(bào)錯(cuò)如下:
RabbitMQ.Client.Exceptions.BrokerUnreachableException:“None of the specified endpoints were reachable”
修復(fù)一下LSP就行了。
以管理員身份運(yùn)行cmd,輸入"netsh winsock reset"回車,重啟電腦就好了。


作者:junshangshui
來源:CSDN
原文:https://blog.csdn.net/junshangshui/article/details/79368061
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,055評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,365評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,346評(píng)論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,889評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評(píng)論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,118評(píng)論 0 286
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,637評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,558評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,739評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評(píng)論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,980評(píng)論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評(píng)論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,347評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,702評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容