一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

即時(shí)通訊系統(tǒng)為什么選擇 GaussDB(for?Redis)?

jf_81200783 ? 來(lái)源: jf_81200783 ? 作者: jf_81200783 ? 2023-06-27 23:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

每當(dāng)網(wǎng)絡(luò)上爆出熱點(diǎn)新聞,混跡于各個(gè)社交媒體的小伙伴們?nèi)奸_(kāi)啟了討論模式。一條消息的產(chǎn)生是如何在群聊中傳遞的呢?讓我們一起來(lái)探索即時(shí)通訊系統(tǒng)(IM)的原理。

IM 系統(tǒng)架構(gòu)的原理

當(dāng)你在群聊“相親相愛(ài)一家人”中,發(fā)送了一條“我找到女朋友了,今天帶回家吃飯”,你自然是希望全家人都收到你的喜訊,為你女朋友的到來(lái)分頭準(zhǔn)備。那么正常的流程應(yīng)該是這樣:遍歷群成員、查詢(xún)每個(gè)成員的在線(xiàn)狀態(tài)、如果小伙伴們?cè)诰€(xiàn)則實(shí)時(shí)進(jìn)行推送,如果小伙伴們不在線(xiàn)則暫存至離線(xiàn)庫(kù)待上線(xiàn)后主動(dòng)拉取。

這種模式就是傳統(tǒng)的 IM 架構(gòu),由于發(fā)送成功的消息不會(huì)落入離線(xiàn)庫(kù),因此聊天記錄多端漫游無(wú)法實(shí)現(xiàn)。如果在線(xiàn)用戶(hù)推送發(fā)生異常,會(huì)導(dǎo)致個(gè)別人員丟失關(guān)鍵發(fā)言,錯(cuò)失重要信息。為了保證消息存儲(chǔ)的可靠性,我們對(duì) IM 系統(tǒng)架構(gòu)進(jìn)行了優(yōu)化,不管成員是否在線(xiàn)都要先把消息和發(fā)送對(duì)象存儲(chǔ)起來(lái),再進(jìn)行推送。流程變成:遍歷群成員、為群聊的每一個(gè)人對(duì)應(yīng)的消息隊(duì)列都存一份消息、查詢(xún)每個(gè)成員的在線(xiàn)狀態(tài)、對(duì)在線(xiàn)成員進(jìn)行推送。這就是所謂的寫(xiě)擴(kuò)散模型。

這里顯然還存在一個(gè)問(wèn)題,我們向每個(gè)小伙伴的消息隊(duì)列中都存儲(chǔ)了相同的“我找到女朋友了,今天帶回家吃飯”消息,對(duì)磁盤(pán)和帶寬造成了很大的浪費(fèi),這是寫(xiě)擴(kuò)散的最大弊端。所以我們繼續(xù)優(yōu)化,群消息實(shí)體存儲(chǔ)一份,用戶(hù)只存消息ID索引。流程優(yōu)化為:遍歷群聊的成員、先存一份消息實(shí)體、群聊所有人都存一份 ID引用、查詢(xún)每個(gè)成員的在線(xiàn)狀態(tài)、對(duì)在線(xiàn)成員進(jìn)行推送。這就是所謂的讀擴(kuò)散模型。

簡(jiǎn)單總結(jié)下:

1.讀擴(kuò)散:讀取操作很重,寫(xiě)入操作很輕,資源消耗相對(duì)小一些。

2.寫(xiě)擴(kuò)散:讀取操作很輕,寫(xiě)入操作很重,資源消耗相對(duì)大一些。

IM 系統(tǒng)架構(gòu)優(yōu)化實(shí)踐

接下來(lái),讓我們使用 GaussDB(forRedis)來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 IM 應(yīng)用。

wKgaomSa-0OALs7nAAD14-4tW8Q465.png

使用 GaussDB(forRedis)的 List 類(lèi)型實(shí)現(xiàn)一個(gè)消息隊(duì)列,防止發(fā)送端瞬時(shí)高流量會(huì)壓爆消息處理模塊;

收到消息后,先生成一個(gè)全局唯一 ID 標(biāo)識(shí)該信息,將消息 ID 和消息內(nèi)容存入 String 類(lèi)型的消息存儲(chǔ)庫(kù)中,如果消息字段復(fù)雜也可以考慮使用 Hash 類(lèi)型;

對(duì)于消息中可索引的信息,將消息的索引信息存入 Zset 類(lèi)型的消息索引庫(kù)中,這樣無(wú)論是接收者還是發(fā)送者,都可以按照一定規(guī)則對(duì)歷史消息進(jìn)行檢索;

通過(guò)查詢(xún) Set 類(lèi)型的消息關(guān)系群組庫(kù),查詢(xún)?cè)撔畔⒌慕邮照呒希@個(gè)集合可以根據(jù)一定的規(guī)則動(dòng)態(tài)增刪;

將消息 ID 推入 Stream 類(lèi)型的消息同步庫(kù),每個(gè) Stream 對(duì)象對(duì)應(yīng)一個(gè)接收者,接收者可以通過(guò) XRANG 命令獲取一個(gè)范圍內(nèi)的未讀信息 ID;

最后,接收者再通過(guò)這組 ID,從消息存儲(chǔ)庫(kù)中讀取消息原始內(nèi)容,即完成了一次消息傳遞。

WhyGaussDB(forRedis)?

IM 系統(tǒng)有哪些痛點(diǎn)?高斯 Redis 如何解決這些痛點(diǎn)?

開(kāi)源 Redsi 數(shù)據(jù)庫(kù)可靠性差,甚至丟數(shù)據(jù),會(huì)直接導(dǎo)致 IM 系統(tǒng)癱瘓。

GaussDB(forRedis)對(duì)數(shù)據(jù)進(jìn)行分片,在故障場(chǎng)景下可以自動(dòng)進(jìn)行接管,最多可以滿(mǎn)足 N-1 個(gè)計(jì)算節(jié)點(diǎn)故障;存儲(chǔ)層使用華為自研的企業(yè)級(jí)存儲(chǔ)池 DFVPool,基于分布式、強(qiáng)一致、高性能的先進(jìn)架構(gòu),實(shí)現(xiàn) 3AZ6 副本存儲(chǔ),保證了在任何時(shí)間點(diǎn)的數(shù)據(jù)強(qiáng)一致,故障情況下數(shù)據(jù)不丟失。

大流量、高并發(fā)場(chǎng)景如何支持連接管理,按業(yè)務(wù)況分散壓力?

GaussDB(forRedis)可以滿(mǎn)足 IM 系統(tǒng)對(duì)可用性的要求,客戶(hù)端程序通過(guò) ELB 接入 GaussDB(forRedis)實(shí)例,可實(shí)現(xiàn)自動(dòng)負(fù)載均衡。

突發(fā)的高流量、大量的歷史消息數(shù)據(jù)如何處理?

GaussDB(forRedis)采用先進(jìn)的存算分離架構(gòu),在 IM 系統(tǒng)持續(xù)運(yùn)營(yíng)的過(guò)程中,如果出現(xiàn)突發(fā)流量,可以迅速對(duì)計(jì)算層資源進(jìn)行秒級(jí)擴(kuò)縮容,快速扛住流量尖峰;歷史消息持續(xù)增長(zhǎng)時(shí),也可以單獨(dú)對(duì)存儲(chǔ)層資源大小進(jìn)行秒級(jí)動(dòng)態(tài)調(diào)整,最高可擴(kuò)容至 PB 級(jí)。

GaussDB(forRedis)廣泛適用于社交媒體、游戲、電商、推薦系統(tǒng)等領(lǐng)域,在海量并發(fā)場(chǎng)景具備極強(qiáng)的高可用能力。如果你需要一款穩(wěn)定可靠的高性能企業(yè)級(jí) KV 數(shù)據(jù)庫(kù),不妨試試 GaussDB(forRedis)。

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 通訊系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    70

    瀏覽量

    12479
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2772

    瀏覽量

    18334
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    手機(jī)對(duì)講即時(shí)通訊系統(tǒng)

      手機(jī)對(duì)講即時(shí)通訊系統(tǒng)    IP集群調(diào)度系統(tǒng)提供了手機(jī)到手機(jī)、手機(jī)到PC、PC到手機(jī)、PC到PC的多媒體協(xié)同通信能力,可以
    發(fā)表于 07-28 22:22

    即時(shí)通訊軟件哪家好?企業(yè)即時(shí)通訊怎么選擇?

    `隨著企業(yè)信息高速發(fā)展,公有云即時(shí)通訊軟件,其安全和娛樂(lè)性的隱患,在企業(yè)內(nèi)部溝通中的效率日趨低下,導(dǎo)致內(nèi)部管理混亂。浪費(fèi)了時(shí)間和精力的同時(shí),又拖低了工作效率。對(duì)于大型企業(yè)來(lái)說(shuō),日常企業(yè)即時(shí)通訊產(chǎn)生
    發(fā)表于 08-09 15:16

    即時(shí)通訊是怎么做到的?

    的PC機(jī),這樣雙方的即時(shí)文字消息就不通過(guò) IM服務(wù)器中轉(zhuǎn),而是通過(guò)網(wǎng)絡(luò)進(jìn)行點(diǎn)對(duì)點(diǎn)的直接通訊,這稱(chēng)為對(duì)等通訊方式(Peer To Peer) 。在商用即時(shí)通訊
    發(fā)表于 01-21 10:41

    玩轉(zhuǎn)OpenHarmony社交場(chǎng)景:即時(shí)通訊平臺(tái)

    的內(nèi)部私有化。設(shè)備端:DAYU200(RK3568)開(kāi)發(fā)板,OpenHarmony 3.1 release系統(tǒng)。二、即時(shí)通訊實(shí)現(xiàn)原理想要實(shí)現(xiàn)多個(gè)設(shè)備之間的無(wú)障礙即時(shí)通訊,需要多臺(tái)終端設(shè)備、終端應(yīng)用和服務(wù)
    發(fā)表于 01-03 15:46

    多服務(wù)器分布式即時(shí)通訊系統(tǒng)模型的設(shè)計(jì)

    即時(shí)通訊是當(dāng)前Internet 最流行的通訊方式之一,為克服傳統(tǒng)的單服務(wù)器模式的一些缺點(diǎn),本文提出一種新的即時(shí)通訊系統(tǒng)模型。該系統(tǒng)模型采用多
    發(fā)表于 09-11 16:46 ?25次下載

    Lotus即時(shí)通訊工具將與雅虎Google實(shí)現(xiàn)互通

    ????1月24日消息,根據(jù)達(dá)成的交易,IBM公司Lotus Sametime即時(shí)通訊服務(wù)的用戶(hù)將能夠與AOL、雅虎的即時(shí)通訊用戶(hù)“交談”。
    發(fā)表于 03-07 20:47 ?866次閱讀

    即時(shí)通訊詳解

    即時(shí)通訊詳解1. 引言 2. 即時(shí)通訊背景知識(shí)
    發(fā)表于 08-05 09:55 ?3218次閱讀

    Android平臺(tái)簡(jiǎn)易即時(shí)通訊方案

    論文簡(jiǎn)單介紹Android平臺(tái)的特性,主要闡述了基于Android平臺(tái)簡(jiǎn)易即時(shí)通訊(IM)的作用和功能以及實(shí)現(xiàn)方法。
    發(fā)表于 02-21 10:27 ?5303次閱讀
    Android平臺(tái)簡(jiǎn)易<b class='flag-5'>即時(shí)通訊</b>方案

    環(huán)信即時(shí)通訊

    Android環(huán)信即時(shí)通訊。。。。。。。。。。。。。。。。
    發(fā)表于 05-17 16:41 ?1次下載

    基于XMPP的即時(shí)通訊系統(tǒng)設(shè)計(jì)方案

    在這個(gè)快節(jié)奏的時(shí)代,互聯(lián)網(wǎng)對(duì)人們的生活帶來(lái)了極大的便利,人們的交流方式不在局限于面對(duì)面的交談或者周期漫長(zhǎng)的書(shū)信,通信方式越來(lái)越多樣化而且越來(lái)越簡(jiǎn)單。即時(shí)通訊是隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展而興起的一種
    發(fā)表于 11-03 14:51 ?6次下載
    基于XMPP的<b class='flag-5'>即時(shí)通訊</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)方案

    區(qū)塊鏈即時(shí)通訊系統(tǒng)開(kāi)發(fā),區(qū)塊鏈直播聊天平臺(tái)開(kāi)發(fā)

    區(qū)塊鏈即時(shí)通訊系統(tǒng)開(kāi)發(fā),區(qū)塊鏈直播聊天平臺(tái)開(kāi)發(fā)數(shù)字資產(chǎn)交易所模式和玩法還是那樣,法幣OTC交易所,幣幣撮合交易所,但是最近也是有一個(gè)模式比較新穎,那就是數(shù)字資產(chǎn)抵押平臺(tái),這個(gè)模式還是比較有市場(chǎng)
    發(fā)表于 05-30 20:24 ?743次閱讀

    區(qū)塊鏈IM即時(shí)通訊系統(tǒng)開(kāi)發(fā)技術(shù)

    決這一現(xiàn)狀我們開(kāi)發(fā)了一款區(qū)塊鏈IM即時(shí)通訊系統(tǒng),IM即時(shí)通訊系統(tǒng)主要是有直播、對(duì)接交易所、空間、商城等各種管理應(yīng)用,一站式進(jìn)行數(shù)字資產(chǎn)交易管理的即時(shí)
    發(fā)表于 06-07 15:46 ?3152次閱讀

    企業(yè)為什么需要即時(shí)通訊,它會(huì)帶來(lái)哪些優(yōu)勢(shì)

    企業(yè)需要即時(shí)通訊的一個(gè)很重要的理由就是企業(yè)即時(shí)通訊的組織架構(gòu)有助于內(nèi)部溝通聯(lián)結(jié)。 企業(yè)即時(shí)通訊特有的組織結(jié)構(gòu)樹(shù)型目錄與成員名片,這些特點(diǎn)對(duì)于能夠使異地辦公的公司成員也能夠如同處在同一間辦公室,無(wú)需
    發(fā)表于 07-19 10:51 ?1418次閱讀

    拳頭產(chǎn)品|海泰虎訊,新一代安全即時(shí)通訊系統(tǒng)

    即時(shí)通訊系統(tǒng)是目前互聯(lián)網(wǎng)上最為流行的通信方式,各種各樣的即時(shí)通訊軟件也層出不窮。隨著移動(dòng)辦公的快速普及,即時(shí)通訊軟件在移動(dòng)辦公中得到越來(lái)越廣泛的應(yīng)用,已經(jīng)成為日常辦公軟件的一部分。
    的頭像 發(fā)表于 11-01 08:57 ?873次閱讀

    基于NAT穿透P2P即時(shí)通訊系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于NAT穿透P2P即時(shí)通訊系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-27 09:44 ?0次下載
    基于NAT穿透P2P<b class='flag-5'>即時(shí)通訊</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)與實(shí)現(xiàn)