自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

時(shí)隔五年 9K star 的 IM 項(xiàng)目發(fā)布 v2.0.0 了

開發(fā) 項(xiàng)目管理
route 由于是無(wú)狀態(tài),可以任意擴(kuò)展,server 通過注冊(cè)中心也支持集群部署,當(dāng)發(fā)生宕機(jī)或者是擴(kuò)容時(shí),客戶端會(huì)通過心跳和重連機(jī)制保證可用性。


介紹

上次發(fā)版還是在五年前了:圖片

因?yàn)榇_實(shí)已經(jīng)很久沒有更新了,在開始之前還是先介紹 cim 是什么。

這里有一張簡(jiǎn)單的使用圖片:

圖片圖片

同時(shí)以前也有錄過相關(guān)的視頻:

通過 cim 這個(gè)名字和視頻可以看出,它具備 IM 即時(shí)通訊的基本功能,同時(shí)基于它可以實(shí)現(xiàn):

  • 即時(shí)通訊
  • 消息推送
  • IOT 消息平臺(tái)

現(xiàn)在要在本地運(yùn)行簡(jiǎn)單許多了,前提是有 docker 就可以了。

docker run --rm --name zookeeper -d -p 2181:2181 zookeeper:3.9.2
docker run --rm --name redis -d -p 6379:6379 redis:7.4.0

git clone https://github.com/crossoverJie/cim.git
cd cim
mvn clean package -DskipTests=true
cd cim-server && cim-client && cim-forward-route
mvn clean package spring-boot:repackage -DskipTests=true

架構(gòu)

cim 的架構(gòu)圖如下:

圖片圖片

主要分為三個(gè)部分:

  • Client 基本交互功能

消息收發(fā)

消息查詢

延遲消息

  • Route 提供了消息路由以及相關(guān)的管理功能
  • API 轉(zhuǎn)發(fā)

  • 消息推送

  • 會(huì)話管理

  • 可觀測(cè)性

  • Server 主要就提供長(zhǎng)鏈接能力,以及真正的消息推送

同時(shí)還有元數(shù)據(jù)中心(支持?jǐn)U展實(shí)現(xiàn))、消息存儲(chǔ)等組件;

不管是客戶端、route、server 都是支持集群:

  • route 由于是無(wú)狀態(tài),可以任意擴(kuò)展
  • server 通過注冊(cè)中心也支持集群部署,當(dāng)發(fā)生宕機(jī)或者是擴(kuò)容時(shí),客戶端會(huì)通過心跳和重連機(jī)制保證可用性。

所以整個(gè)架構(gòu)不存在單點(diǎn),同時(shí)比較簡(jiǎn)單清晰的,大部分組件都支持可擴(kuò)展。

流程

圖片圖片

為了更方便理解,花了一個(gè)流程圖。

  • server 在啟動(dòng)之后會(huì)先在元數(shù)據(jù)中心注冊(cè)
  • 同時(shí) route 會(huì)訂閱元數(shù)據(jù)中的 server 信息
  • 客戶端登陸時(shí)會(huì)調(diào)用 route 獲取一個(gè) server 的節(jié)點(diǎn)信息
  • 然后發(fā)起登陸請(qǐng)求。

成功之后會(huì)保持長(zhǎng)鏈接。

  • 客戶端向發(fā)送消息時(shí)會(huì)調(diào)用 route 接口來(lái)發(fā)起消息
  • route 根據(jù)長(zhǎng)鏈接關(guān)系選擇 server 進(jìn)行消息推送

v2.0.0

接下來(lái)介紹下本次 v2.0.0 有哪些重大變更,畢竟是修改了大的版本號(hào)。

這里列舉一些重大的改動(dòng):

圖片圖片

  • 首先是支持了元數(shù)據(jù)中心,解耦了 zookeeper,也支持自定義實(shí)現(xiàn)。
  • 支持了集成測(cè)試,可以保證提交的 PR 對(duì)現(xiàn)有功能的影響降到最低,代碼質(zhì)量有一定保證;review 代碼時(shí)更加放心。
  • 單獨(dú)抽離了 client-sdk,代碼耦合性更好且更易維護(hù)。
  • 服務(wù)之間調(diào)用的 RPC 完成了重構(gòu)

支持了動(dòng)態(tài) URL

泛型數(shù)據(jù)解析

  • 還有社區(qū)小伙伴貢獻(xiàn)的一些 bug 修復(fù)、RpcProxyManager 的 IOC 支持等特性。

總結(jié)

更多的部署和使用可以參考項(xiàng)目首頁(yè)的 README,有詳細(xì)的介紹。

cim 目前還需要優(yōu)化的地方非常多;接下來(lái)的重點(diǎn)是實(shí)現(xiàn) ACK,同時(shí)會(huì)完善一下通訊協(xié)議。

圖片圖片

todo 列表我也添加了很多,所以非常推薦感興趣的朋友可以先看看 todo 列表,說(shuō)不定就有你感興趣的可以參與一下。

責(zé)任編輯:武曉燕 來(lái)源: crossoverJie
相關(guān)推薦

2024-04-16 07:10:46

大模型AI自動(dòng)生成視頻

2024-05-11 09:09:30

Quill 2.0編輯格式化

2011-12-02 14:55:39

Java工具

2022-02-16 09:55:39

Elastic 8開源索引

2023-12-10 14:28:58

VS Code軟件開發(fā)代碼編輯器

2023-12-21 14:53:00

AI模型

2009-08-27 09:45:42

Apache Came

2024-05-22 15:29:32

2021-03-04 20:38:49

Open RAN網(wǎng)絡(luò)通信

2021-10-25 23:12:06

iOS應(yīng)用系統(tǒng)

2021-09-09 07:21:25

項(xiàng)目GithubRedux-Thunk

2020-10-28 09:50:05

GitHubPython項(xiàng)目

2022-07-11 09:59:19

GitHub開源

2020-08-14 11:05:35

Wi-Fi5G手機(jī)

2013-12-24 11:01:13

Facebook開源項(xiàng)目

2013-02-25 10:48:53

RubyWeb

2020-05-08 15:29:15

編程語(yǔ)言PythonJava

2021-03-30 10:02:51

前端開發(fā)技術(shù)

2020-07-06 08:06:00

Java模塊系統(tǒng)

2019-08-06 13:29:48

GitHub代碼機(jī)器學(xué)習(xí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)