我打算在Google Compute Engine上建置Redis Slave個體群組,並使用GCP的負載平衡服務來連接,但是碰到一個問題,Health Check永遠都是失敗,導致個體群組裡頭的VM一直被重建。
檢查了許多地方,確認Health Check的IP可以連進VM,從netstat -an也可以看到連線。使用nc -l -p 6379的確也能看到Health Check送進來的要求字串 PING\r\n,但是透過redis-cli下monitor指令卻沒看到。
我在Health Check設置的要求字串是 PING\r\n,檢查字串是 +PONG,用nc的確是看到傳進來的是PING\r\n....等等,換行字元應該不會顯示?然後又用PYTHON參考別人寫的範例做了一個TCP SOCKET SERVER,結果顯示出來的是 PING\\r\\n...... Orz。redis一定要接收到換行符號才算接收到指令,否則就會停在那裡。看起來GCE的Health Check會過濾特殊符號。
Google Groups上的GCE論壇也有人有相同的問題,Google的人回答都指向stackoverflow上的某個連結:
https://stackoverflow.com/questions/43228878/health-check-to-detect-redis-master-from-google-tcp-load-balancer
下面回答得很長,其實結論是在同一台VM裡頭去跑另一隻程式來處理Health Check請求與回傳結果,我最後是用PYTHON寫了一個TCP SOCKET SERVER,當Health Check傳入PING,就使用subprocess去跑redis-cli PING,然後把結果回傳。
2017年12月13日 星期三
2017年12月11日 星期一
在mora.jp買音樂
最近在玩人中之龍 極2的酒店經營部份,在編輯酒店小姐的裝扮時,總是會播放歌曲『As You Like』,還蠻好聽的。這首歌曲有收錄在 人中之龍 零 OST Side A 裡,查了一下只能買CD或者數位檔案,像KKBOX跟Spotify都沒有提供。整張專輯(Side A)要1500日圓,可是我只對這首歌有興趣,搜尋一下發現mora.jp有在賣單一曲目,便想試看看購買,果然一按下結帳就出現不開放日本以外購買的警告。
不過最後我還是購買成功了,我使用了以下的步驟:
不過最後我還是購買成功了,我使用了以下的步驟:
- 把瀏覽器的語言改成日文優先(這個可能不需要)
- 使用日本的IP進入mora.jp(VPN)
- 付款方式使用Amazon Pay(需要有日本Amazon帳號)
訂閱:
文章 (Atom)
-
使用Python的datetime產生的物件是不會包含時區資訊的,在網路上搜尋加上時區的方式,一般都是建議用pytz,大概類似以下的作法。 import datetime import pytz mytz = pytz.timezone('Asia/Taipei...
-
因為最近買了KECES的 DA151MK3 ,想研究一下怎樣的設置才能得到最好的效果。 軟體需求 Windows 7以後的作業系統(其實是Vista以後,但是誰還用Vista?) foobar2000 最新版 WASAPI plugin foobar2000的設置...
-
家裡有Synology NAS的人,可能都用過DS Audio(手機APP)與 Audio Station (Server),用來播放音樂算是還可以用,但這麼多年都沒什麼改進,缺乏一鍵加到最愛的功能,網頁跟手機APP把音樂加到播放清單的功能也不好用,給音樂評分的功能看起來也沒什麼...