高效能 xmpp 伺服器 ejabberd

2021-06-20 11:02:40 字數 3402 閱讀 4372

ejabberd是乙個用erlang/otp語言寫的自由和開源的即時訊息伺服器.

ejabberd是跨平台,分布式, 容錯, 並基於開放標準的實時通訊系統.

ejabberd的設計堅若磐石,是乙個功能服豐富的xmpp伺服器.

ejabberd同時適合小規模佈署和超大規模佈署, 無論它們是否需要可伸縮性.

關鍵功能

ejabberd是:

跨平台的: ejabberd可以執行在microsoft windows和unix派生系統,例如linux, freebsd和netbsd.

分布式的: 你可以在乙個集群的機器上執行ejabberd,並且所有的機器都服務於同乙個或一些jabbe域. 當你需要更大容量的時候,你可以簡單地增加乙個廉價節點到你的集群裡. 因此, 你不需要買乙個昂貴的高階機器來支援上萬個併發使用者.

容錯: 你可以佈署乙個ejabberd集群,這樣乙個正常執行的服務的所有必需資訊將被複製到所有節點. 這意味著如果其中乙個節點崩潰了, 其他節點將無中斷的繼續執行. 另外, 也可以『不停機』增加或更換節點.

易於管理: ejabberd建立於開源的erlang. 所以你不需要安裝外部服資料庫, 外部web伺服器, 除此以外因為每個東西都已經包含在裡面, 並且處於開箱可用狀態. 其他管理上的好處包括:

詳盡的文件.

便捷的安裝程式,包括在linux, mac os x, 以及windows系統下.

web管理.

共享名冊組.

命令列管理工具.

可外部整合的驗證機制.

傳送匿名訊息的能力.

國際化: ejabberd領導國際化. 非常適合全球化. 相關功能包括:

翻譯成25種語言.

支援idna.

開放標準: ejabberd是的乙個完全支援xmpp標準的開源jabber伺服器.

完全相容xmpp.

基於xml的協議.

支援的協議很多.

額外功能

而且, ejabberd廣泛支援的其他先進特性:

模組化只裝在你想要的模組.

在你自己的自定義模組擴充套件ejabberd.

安全性支援c2s和s2s連線的sasl和starttls.

支援s2s連線的starttls和dialback.

可通過https安全訪問的web管理.

資料庫快速佈署的內部資料庫(mnesia).

原生的mysql支援.

原生的postgresql支援.

支援odbc資料儲存.

支援microsoft sql server.

驗證內部驗證.

pam, ldap 和 odbc.

外部驗證指令碼.

其他支援虛擬主機.

xml流壓縮 (xep-0138).

統計 (xep-0039).

支援ipv6的c2s和s2s連線.

支援集群和html日誌的多使用者聊天模組.

基於使用者vcards的使用者目錄.

支援基於pubsub的個人事件的發行-訂閱元件.

支援web客戶端: http輪詢和http繫結(bosh)服務.

irc閘道器.

元件支援: 安裝特定閘道器之後和外部網路的介面,如 aim, icq 和 msn.

模組一覽

下表列出ejabberd裡的所有模組.

模組功能

依賴mod_adhoc

特定命令 (xep-0050)

mod_announce

管理公告

推薦 mod_adhoc

mod_caps

實體能力 (xep-0115)

mod_configure

使用特定命令配置伺服器

mod_adhoc

mod_disco

服務發現 (xep-0030)

mod_echo

xmpp節回音

mod_irc

irc閘道器

mod_last

最後活動 (xep-0012)

mod_last_odbc

最後活動 (xep-0012)

支援的資料庫 (*)

mod_muc

多使用者聊天 (xep-0045)

mod_muc_log

多使用者聊天室記錄

mod_muc

mod_offline

離線訊息儲存 (xep-0160)

mod_offline_odbc

離線訊息儲存 (xep-0160)

支援的資料庫 (*)

mod_ping

xmpp ping 和定期保持連線 (xep-0199)

mod_privacy

禁止通訊 (xmpp im)

mod_privacy_odbc

禁止通訊 ((xmpp im)

支援的資料庫 (*)

mod_private

私有xml儲存 (xep-0049)

mod_private_odbc

私有xml儲存 (xep-0049)

支援的資料庫 (*)

mod_proxy65

socks5位元組流 (xep-0065)

mod_pubsub

發行-訂閱 (xep-0060), pep (xep-0163)

mod_caps

mod_pubsub_odbc

發行-訂閱 (xep-0060), pep (xep-0163)

支援的資料庫 (*) 和 mod_caps

mod_register

i帶內註冊 (xep-0077)

mod_roster

名冊管理 (xmpp im)

mod_roster_odbc

名冊管理 (xmpp im)

支援的資料庫 (*)

mod_service_log

拷貝使用者訊息到日誌服務

mod_shared_roster

共享名冊管理

mod_roster 或 mod_roster_odbc

mod_sic server

ip檢查 (xep-0279)

mod_stats

統計資訊收集 (xep-0039)

mod_time

實體時間 (xep-0202)

mod_vcard

電子名片 (xep-0054)

mod_vcard_ldap

電子名片 (xep-0054)

ldap伺服器

mod_vcard_odbc

電子名片 (xep-0054)

支援的資料庫 (*)

mod_vcard_xupdate

基於vcard的頭像 (xep-0153)

mod_vcard 或 mod_vcard_odbc

mod_version

軟體版本 (xep-0092)

高效能伺服器設計

原文 http blog.chinaunix.net u 5251 showart 236329.html 先後檢視了 haproxy l7sw 和lighttpd 的相關原始碼,無一例外,他們一致認為多路復用是效能最好的伺服器架構 事實也確實應該如此,程序的出現一方面就是為了儲存任務的執行上下文從...

高效能伺服器設計

先後檢視了haproxy l7sw 和lighttpd 的相關原始碼,無一例外,他們一致認為多路復用是效能最好的伺服器架構。事實也確實應該如此,程序的出現一方面就是為了儲存任務的執行上下文從而簡化應用程式設計,如果程式的邏輯結構不是很複雜,那麼用整個程序控制塊來儲存執行上下文未免有些大材小用,加上程...

高效能伺服器設計

原文 先後檢視了 haproxy l7sw 和lighttpd 的相關原始碼,無一例外,他們一致認為多路復用是效能最好的伺服器架構 事實也確實應該如此,程序的出現一方面就是為了儲存任務的執行上下文從而簡化應用程式設計,如果程式的邏輯結構不是很複雜,那麼用整個程序控制塊來儲存執 行上下文未免有些大材小...