其實有點兒文不對題,不是使用nsqlookupd來推送的,最終還是使用nsqd來進行推送。
nsq的golang客戶端中,consumer實現了從nsqlookupd中動態拉取服務列表,並進行消費,但是producer中沒有實現這個,假設有n個nsqd節點,某乙個不可用了,那麼不就完蛋了?
於是今天自己封裝了乙個producer,用來實現從nsqlookupd中拉取nsqd列表,並進行訊息推送。
nsq是乙個分布式的訊息佇列,nsqd可以自由地進行擴充,靈活性很大,假設線上有乙個nsqd掛了,那麼可以從nsqlookupd中獲取別的可用列表,進行訊息推送,這是基本的實現思路。
大概按以下的步驟走:
1.從nsqlookupd的api中獲取所有的可用nsqd列表,首先我們的nsqlookupd也必須配置成多台伺服器,以免一台不可用的情況下,整個服務都失效的問題。
2.獲取了可用的nsqd列表後,遍歷服務列表,進行連線,只要有乙個連線可用,那麼就快取這個連線,並返回。
3.當進行推送訊息的操作的時候,獲取可用連線,當推送失敗的時候,重新進行第二步來獲取連線。
整個邏輯很簡單,自己封裝了乙個:
nsqproducer
iOS 利用PHP來進行訊息推送
前提 準備好推送證書 aps development.cer及其p12檔案aps development.p12 開始 假設p12檔案 密碼是 123456 終端操作 進入到存放 cer與 p12檔案的資料夾 1.利用 aps development.cer 檔案生成 pem 檔案openssl x...
使用Jpush 極光推送 實現推送功能
農曆猴年最後一篇文章,在寫前先寫一段話,我覺得挺好的,2017年要努力做到 學會忍耐,因為事已成現實自己無法改變 學會說不,因為做不到的事不要強求 學會適應,因為任何條件下都要生存 學會知而不言,因為言多必失 學會拿得起放得下,以為只要這樣才會能重新開始新的起點 做不了決定的時候,讓時間幫你決定,如...
ios極光推送使用總結
1 在極光官方 上實現應用程式的註冊,拿到 2 匯入api開發包到應用程式專案 3 必要的框架 4 build settings 5 建立並配置pushconfig.plist檔案 6 新增 bool nsdictionary launchoptions else else categories 必...