国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

隊(duì)列無法正常連接到Redis

深藍(lán)

問題描述

我有服務(wù)器A,服務(wù)器B,使用webman最新版,使用webman/redis-queue隊(duì)列,服務(wù)器B會發(fā)送隊(duì)列queue_request到服務(wù)器A,處理完成后,發(fā)送隊(duì)列queue_response等待服務(wù)器B接收。

操作系統(tǒng)及workerman/webman等框架組件具體版本

    "php": ">=7.2",
    "workerman/webman-framework": "^1.5.0",
    "monolog/monolog": "^2.0",
    "tinywan/exception-handler": "^1.1",
    "webman/think-orm": "^1.0",
    "psr/container": "^2.0",
    "illuminate/redis": "^10.5",
    "symfony/cache": "^6.2",
    "webman/console": "^1.2",
    "topthink/think-log": "^2.0",
    "workerman/crontab": "^1.0",
    "zjkal/time-helper": "^1.1",
    "tinywan/validate": "^0.0.6",
    "ext-openssl": "*",
    "yzh52521/webman-lock": "^1.0",
    "ext-pdo": "*",
    "yzh52521/webman-throttle": "^1.0",
    "google/apiclient": "^2.13",
    "symfony/translation": "^6.2",
    "webman/redis-queue": "^1.2",
    "vlucas/phpdotenv": "^5.5",
    "webman/log": "^1.1",

報(bào)錯信息

服務(wù)器能正常運(yùn)行一段時間,有時候幾小時,有時候一兩天,然后就會發(fā)生錯誤,stdout.log打印錯誤如下。這個錯誤目前只會影響出現(xiàn)異常的隊(duì)列,其他進(jìn)程里面連接到服務(wù)器B使用support\Redis是不受影響的。

Workerman Redis Connection to redis://192.168.2.18:7550 timeout (5 seconds)
Workerman Redis Connection to redis://192.168.2.18:7550 timeout (5 seconds)
Workerman Redis Connection to redis://192.168.2.18:7550 timeout (5 seconds)
Workerman Redis Connection to redis://192.168.2.18:7550 timeout (5 seconds)
Workerman Redis Connection to redis://192.168.2.18:7550 timeout (5 seconds)

下圖是我的status信息,27388正常的時候,connections是有4個連接的。
status

發(fā)現(xiàn)報(bào)錯的隊(duì)列,然后跟綜進(jìn)程 strace -ttp 27388
strace

對比下面這個是正常連接隊(duì)列的情況 strace -ttp 27389

27388隊(duì)列正常是要執(zhí)行BRPOP取出數(shù)據(jù),但是卻出現(xiàn)了循環(huán)報(bào)錯“NOAUTH Authentication required”,導(dǎo)致了連接失敗,從而報(bào)了“Workerman Redis Connection to redis://192.168.2.18:7550 timeout (5 seconds)”這個錯誤,理論上應(yīng)該是這樣的。

這個隊(duì)列,我開了兩個進(jìn)程,另外一個進(jìn)程是可以正常連接,為何其中一個進(jìn)程過一段時間就出錯,并且報(bào)需要認(rèn)證,難道因?yàn)榕渲梦募G失,如果丟失的話,那另外一個進(jìn)程同樣也會異常。

希望有大神能解我茅塞。

1478 4 0
4個回答

walkor 打賞

可能是消費(fèi)太耗時了,影響了redis異步連接。
消費(fèi)消息時需要投遞新消息到隊(duì)列里的時候用用同步投遞的方法 Resdis::send()

  • 深藍(lán) 2023-11-14

    老大,我確定用的是同步,不是異步隊(duì)列。

    我查了下“NOAUTH Authentication required”相關(guān)的資料如下圖:

    在沒有使用密碼連接情況下,直接連接使用命令,就會報(bào)“NOAUTH Authentication required”。

    當(dāng)他報(bào)“Workerman Redis Connection to redis://192.168.2.18:7550 timeout (5 seconds)”這個錯誤的時候,他不應(yīng)該重新連接嗎?但是從下面這個圖里面,他根本沒有嘗試去連接,而是直接快速的嘗試使用BRPOP這個命令。

  • 深藍(lán) 2023-11-14

    下面是隊(duì)列配置文件,config/plugin/webman/redis-queue/redis.php,如果說報(bào)”NOAUTH Authentication required“,會不會跟我的配置文件里面使用了env()有關(guān)系。

    <?php
    return [
        'default' => [
            'host' => 'redis://'. env('REDIS_DEFAULT_HOST', '127.0.0.1') .':' . env('REDIS_DEFAULT_PORT', 6379),
            'options' => [
                'auth' => null,       // 密碼,字符串類型,可選參數(shù)
                'db' => 1,            // 數(shù)據(jù)庫
                'prefix' => 'queue:',       // key 前綴
                'max_attempts'  => 5, // 消費(fèi)失敗后,重試次數(shù)
                'retry_seconds' => 5, // 重試間隔,單位秒
            ]
        ],
        'master' => [
            'host' => 'redis://'. env('REDIS_MASTER_HOST') .':' . env('REDIS_MASTER_PORT'),
            'options' => [
                'auth' => env('REDIS_MASTER_PASSWORD'),       // 密碼,字符串類型,可選參數(shù)
                'db' => 1,            // 數(shù)據(jù)庫
                'prefix' => 'queue:',       // key 前綴
                'max_attempts'  => 5, // 消費(fèi)失敗后,重試次數(shù)
                'retry_seconds' => 5, // 重試間隔,單位秒
            ]
        ]
    ];
  • walkor 2023-11-14

    一直報(bào) NOAUTH Authentication required ,那就是密碼不對

  • 深藍(lán) 2023-11-14

    錯誤每隔5秒報(bào)錯“Workerman Redis Connection to redis://192.168.2.18:7550 timeout (5 seconds)”,說明有在重試,但是實(shí)際上并沒有進(jìn)行重試的操作,而只是一直在嘗試BRPOP出數(shù)據(jù)。

  • walkor 2023-11-15

    報(bào)錯的連接和BRPOP的應(yīng)該不是同一個連接,并且你的strace時間也沒有達(dá)到5秒。我這沒有你的現(xiàn)場環(huán)境,你自在源碼里定位下吧。

qqxxr

你解決了嗎,我也遇到了

  • 深藍(lán) 2024-02-20

    現(xiàn)在偶爾會出現(xiàn),具體原因還沒搞明白。

  • qqxxr 2024-02-20

    我也是偶現(xiàn)的,是測試服,啟動半天就可以會

xiaoming

我也出現(xiàn)了 重啟就正常了 我也是用env方法

  • 暫無評論
walkor 打賞

升級下 workerman/redis

composer require workerman/redis ^2.0.3

記得restart 重啟

  • xiaoming 2024-08-06

    已經(jīng)更新,繼續(xù)觀察下

  • 深藍(lán) 2024-08-08

    已經(jīng)更新,希望能永久性地解決這個問題,一直以來都偶爾會有這種情況。

年代過于久遠(yuǎn),無法發(fā)表回答
??