<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                問題: comet節點掛掉,zookeeper的node不能自動刪除。 解決辦法:在web模塊,通過rpc 調用 comet Ping() 方法,返回err則刪除該節點 安全驗證 實現:在web模塊開啟http服務,通過rpc調用comet New()方法 創建token: comet->rpc.go->New() 添加 token 接口 在瀏覽器中打開: http://localhost:8090/1/token/add?k=Terry-Mao&t=0 成功返回: {"ret":0} 多個web服務:通過Nginx轉發。 多個message服務:web模塊獲取message rpc 鏈接是隨機的,redis地址是一致的。 多個comet服務:先根據用戶的key通過http請求web獲取連接節點,然后再根據對應的節點創建長連接。 http://localhost:8090/1/server/get?k=Terry-Mao&p=2 (參數p=1 websocket,p=2 tcp) web需要修改的配置: http.bind localhost:8090 # ip:端口 admin.bind localhost:8091 # ip:端口 [zookeeper] addr localhost:2181 # zkip:端口 comet.path /gopush-cluster-comet # zk comet path(與comet配置一致) message.path /gopush-cluster-message # zk message path(與message配置一致) migrate.path /gopush-migrate-lock # zk migrate path message需要修改的配置: rpc.bind localhost:9989 # ip:端口(多個用,隔開) node.weight 2 #權重 [redis.source] node2:2 tcp@localhost:6379 # 節點名:權重 redis地址 [zookeeper] addr localhost:2181 # zkip:端口 message.path /gopush-cluster-message # zk message path(與web配置一致) comet需要修改的配置: websocket.bind localhost:6968 # 多個用,隔開 tcp.bind localhost:6969 # 多個用,隔開 rpc.bind localhost:6970 # ip:端口(多個用,隔開) [zookeeper] comet.path /gopush-cluster-comet # zk comet path(與web配置一致) comet.node node1 # 節點名稱 唯一 comet.weight 1 # 權重 大于0 message.path /gopush-cluster-message # zk message path(與web配置一致) addr localhost:2181 # zkip:端口 cometRing *ketama.HashRing type HashRing struct { defaultSpots int ticks tickArray length int } type tickArray []node type node struct { node string hash uint } 添加、刪除comet節點 1.更新替換 cometNodeInfoMap、cometRing 2.rpc 到 comet 從刪除 ChannelBucket.Data 不屬于本節點的 key ,關閉key對應的鏈接Channel , 更新替換 CometRing、nodeWeightMap。 cometRing:是一個node的切片數組 每個comet的cometRing都是一致的,判斷該用戶是否屬于該node,通過key獲取node與Conf.ZookeeperCometNode比較(Conf.ZookeeperCometNode != node)來判斷。 MessageRPC: comet和web模塊: 啟動程序 調用 myrpc.MessageRPC 的 init() 函數初始化 MessageRPC go watchMessageRoot() 監聽節點變化 go handleMessageNodeEvent() 當節點有變化更新 MessageRPC 用二分法 隨機獲取 Message 節點鏈接 權重分配算法,將所有節點權重累加,然后每個節點的權重(除)/權重之和,生成一個節點對應的隨機數。 comet模塊 通過 go watchMessageRoot() 和 go handleMessageNodeEvent() 獲取 message的信息保存到 MessageRPC 中。并監聽節點變化 web模塊 通過 go watchMessageRoot() 和 go handleMessageNodeEvent() 獲取 message的信息保存到 MessageRPC 中。并監聽節點變化 通過 go handleCometNodeEvent() 和 go watchCometRoot() 獲取 comet 的 CometNodeInfo (RpcAddr、TcpAddr、WsAddr、Weight、Rpc)信息保存到 cometNodeInfoMap 中。 并監聽節點變化 redis.source and mysql.source: 用戶的key通過hash算法獲取node,實現根據key來分庫。 如果分庫,redis存儲room keys 信息,根據room Id來分配。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看