国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

這篇具有很好參考價值的文章主要介紹了【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

轉(zhuǎn)載自cpolar內(nèi)網(wǎng)穿透的文章:無公網(wǎng)IP,在外公網(wǎng)遠(yuǎn)程訪問RabbitMQ服務(wù)「內(nèi)網(wǎng)穿透」

前言

RabbitMQ是一個在 AMQP(高級消息隊列協(xié)議)基礎(chǔ)上完成的,可復(fù)用的企業(yè)消息系統(tǒng),是當(dāng)前最主流的消息中間件之一。
由erlang開發(fā)的AMQP(Advanced Message Queue 高級消息隊列協(xié)議 )的開源實現(xiàn),由于erlang 語言的高并發(fā)特性,性能較好,本質(zhì)是個隊列,F(xiàn)IFO 先入先出,里面存放的內(nèi)容是message,下面介紹通過在ubuntu+cpolar+rabbitMQ環(huán)境下,實現(xiàn)mq服務(wù)端遠(yuǎn)程訪問。

1.安裝erlang 語言

由于rabbitMQ是erlang語言實現(xiàn)的,所以我們需要安裝erlang

sudo apt-get install erlang-nox

2.安裝rabbitMQ

安裝最新版rabbitMQ

sudo apt-get install rabbitmq-server

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

查看rabbitMQ狀態(tài),active(running)表示在線

sudo systemctl status rabbitmq-server

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

設(shè)置訪問MQ用戶名賬號和密碼,admin表示賬號(可自定義),123456表示密碼(可自定義)

sudo rabbitmqctl add_user admin 123456

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

設(shè)置上面admin用戶的角色,administrator表示是最高管理員

sudo rabbitmqctl set_user_tags admin administrator

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

設(shè)置admin角色權(quán)限

sudo rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

以上信息設(shè)置好后,我們往下走。

3. 內(nèi)網(wǎng)穿透

接著我們使用cpolar穿透本地MQ服務(wù),使得遠(yuǎn)程可以進(jìn)行訪問連接,cpolar支持http/https/tcp協(xié)議,不限制流量,操作簡單,無需公網(wǎng)IP,也無需路由器。

cpolar官網(wǎng):https://www.cpolar.com/

3.1 安裝cpolar內(nèi)網(wǎng)穿透(支持一鍵自動安裝腳本)

  • cpolar 安裝(國內(nèi)使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或 cpolar短鏈接安裝方式:(國外使用)
curl -sL https://git.io/cpolar | sudo bash
  • 查看版本號
cpolar version
  • token認(rèn)證

登錄cpolar官網(wǎng)后臺,點擊左側(cè)的驗證,查看自己的認(rèn)證token,之后將token貼在命令行里

cpolar authtoken xxxxxxx

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

  • 向系統(tǒng)添加服務(wù)
sudo systemctl enable cpolar
  • 啟動cpolar服務(wù)
sudo systemctl start cpolar

正常顯示為active則表示服務(wù)為正常在線啟動狀態(tài)

3.2 創(chuàng)建HTTP隧道

在ubuntu系統(tǒng)本地安裝cpolar內(nèi)網(wǎng)穿透之后,在ubuntu瀏覽器上訪問本地9200端口,打開cpolar web ui界面:http://127.0.0.1:9200。

點擊左側(cè)儀表盤的隧道管理——創(chuàng)建隧道,由于rabbitMQ中默認(rèn)的是5672端口,因此我們要來創(chuàng)建一條http隧道,指向5672端口:

  • 隧道名稱:可自定義,注意不要重復(fù)
  • 協(xié)議:tcp
  • 本地地址:5672
  • 域名類型:選擇隨機(jī)域名
  • 地區(qū):選擇China VIP

點擊創(chuàng)建

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

打開在線隧道列表,查看隨機(jī)公網(wǎng)tcp地址,使用下面隨機(jī)的tcp公網(wǎng)地址,即可遠(yuǎn)程連接MQ

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

4. 公網(wǎng)遠(yuǎn)程連接

maven坐標(biāo)

<dependency>
			<groupId>com.rabbitmq</groupId>
			<artifactId>amqp-client</artifactId>
			<version>5.10.0</version>
		</dependency>

這里使用java 測試使用上面公網(wǎng)地址進(jìn)行連接,編寫發(fā)布者

       ConnectionFactory factory = new ConnectionFactory();
        //cpolar公網(wǎng)地址
        factory.setHost("1.tcp.cpolar.cn");
        //公網(wǎng)地址對于的端口號
        factory.setPort(24889);

        //用戶名和密碼
        factory.setUsername("admin");
        factory.setPassword("123456");
        Connection connection = null;
        Channel channel = null;
        try {
            // 1.創(chuàng)建連接和通道
            connection = factory.newConnection();
            channel = connection.createChannel();

            // 2.為通道聲明exchange和exchange的類型
            channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.FANOUT);

            String msg = " hello world";
            // 3.發(fā)送消息到指定的exchange,隊列指定為空,由exchange根據(jù)情況判斷需要發(fā)送到哪些隊列
            channel.basicPublish(EXCHANGE_NAME, "", null, msg.getBytes());
            System.out.println("product send a msg: " + msg);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TimeoutException e) {
            e.printStackTrace();
        } finally {
            // 4.關(guān)閉連接
            if (channel != null) {
                try {
                    channel.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (TimeoutException e) {
                    e.printStackTrace();
                }
            }

            if (connection != null) {
                try {
                    connection.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }


編寫消費(fèi)者


        ConnectionFactory factory = new ConnectionFactory();
        //cpolar公網(wǎng)地址
        factory.setHost("1.tcp.cpolar.cn");
        //公網(wǎng)地址對于的端口號
        factory.setPort(24889);

        //用戶名和密碼
        factory.setUsername("admin");
        factory.setPassword("123456");
        Connection connection = null;
        Channel channel = null;
        try {
            // 1.創(chuàng)建連接和通道
            connection = factory.newConnection();
            channel = connection.createChannel();

            // 2.為通道聲明exchange以及exchange類型
            channel.exchangeDeclare("exchange", BuiltinExchangeType.FANOUT);

            // 3.創(chuàng)建隨機(jī)名字的隊列
            String queueName = channel.queueDeclare().getQueue();

            // 4.建立exchange和隊列的綁定關(guān)系
            channel.queueBind(queueName, "exchange", "");
            System.out.println(" **** Consumer1 keep alive ,waiting for messages, and then deal them");
            // 5.通過回調(diào)生成消費(fèi)者并進(jìn)行監(jiān)聽
            Consumer consumer = new DefaultConsumer(channel) {
                @Override
                public void handleDelivery(String consumerTag, Envelope envelope,
                                           com.rabbitmq.client.AMQP.BasicProperties properties, byte[] body) throws IOException {

                    // 獲取消息內(nèi)容然后處理
                    String msg = new String(body, "UTF-8");
                    System.out.println("*********** Consumer1" + " get message :[" + msg + "]");
                }
            };
            // 6.消費(fèi)消息
            channel.basicConsume(queueName, true, consumer);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TimeoutException e) {
            e.printStackTrace();
        }

先啟動消費(fèi)者,然后啟動發(fā)布者,然后消費(fèi)者控制臺輸出消費(fèi)者發(fā)送的消息表示成功.我們實現(xiàn)了遠(yuǎn)程訪問MQ。

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

5.固定公網(wǎng)TCP地址

由于以上創(chuàng)建的隧道使用的是隨機(jī)地址隧道,地址會在24小時內(nèi)變化,為了使連接更加穩(wěn)定,我們還需要固定tcp地址。

5.1 保留一個固定的公網(wǎng)TCP端口地址

登錄cpolar官網(wǎng)后臺,點擊左側(cè)的預(yù)留,選擇保留的TCP地址。

  • 地區(qū):選擇China VIP
  • 描述:即備注,可自定義填寫

點擊保留

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

地址保留成功后,系統(tǒng)會生成相應(yīng)的固定公網(wǎng)地址,將其復(fù)制下來

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

5.2 配置固定公網(wǎng)TCP端口地址

在瀏覽器上訪問9200端口,登錄cpolar web ui管理界面,點擊左側(cè)儀表盤的隧道管理——隧道列表,找到上面創(chuàng)建的隧道,點擊右側(cè)的編輯

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

修改隧道信息,將保留成功的固定tcp地址配置到隧道中

  • 端口類型:修改為固定tcp端口
  • 預(yù)留的tcp地址:填寫保留成功的地址

點擊更新

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

隧道更新成功后,點擊左側(cè)儀表盤的狀態(tài)在線隧道列表,找到需要編輯的隧道,可以看到公網(wǎng)地址已經(jīng)更新成為了固定TCP地址。

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)

更新好后,我們修改代碼中的兩個參數(shù)

     	//cpolar公網(wǎng)地址,改為我們固定的地址
        factory.setHost("5.tcp.vip.cpolar.cn");
        //固定地址對應(yīng)的端口號
        factory.setPort(13630);

然后我們重新啟動消費(fèi)者,再啟動生產(chǎn)者,正常發(fā)布和消費(fèi)消息表示成功

【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)文章來源地址http://www.zghlxwxcb.cn/news/detail-461529.html

到了這里,關(guān)于【內(nèi)網(wǎng)穿透】遠(yuǎn)程訪問RabbitMQ服務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包