緣起termtalk 一切起源於我對蘑菇街termtalk開源IM系統源代碼的好奇,termtalk簡稱tt。無論如何,都應該先向tt致敬,開源實屬不易。看了一些分析tt架構的文章,感覺還不錯,說是能支持高併發高可用的。聽說有一些公司也借用了該開源代碼做產品,那tt應該還是不錯的。但是正等我去打開t ...
緣起termtalk
一切起源於我對蘑菇街termtalk開源IM系統源代碼的好奇,termtalk簡稱tt。無論如何,都應該先向tt致敬,開源實屬不易。看了一些分析tt架構的文章,感覺還不錯,說是能支持高併發高可用的。聽說有一些公司也借用了該開源代碼做產品,那tt應該還是不錯的。但是正等我去打開tt服務端源碼向學習一下的時候,感覺代碼中不盡如意的地方不少了。看得不算仔細,但是架構中單點服務的位置太多了,例如route server只有一個,im客戶端發的每一個消息都會廣播到所有的msg server而不是目標用戶的msg server,這些都對整個系統有嚴重負面影響。
再造一個新的IM
再造一個im,這是一個重覆造輪子的過程。想憑一己之力超越騰訊qq的那是不現實的,但是弄出一個輕量級多端im這個可以有。我主要基於如下理由開展這一項目:
- 國外有很多好的開源im,國內目前似乎沒有(有的告訴我一下),tt算不錯,但是問題還很多。
- 平時多在windows平臺開發,接觸其他平臺(特別是linux)的機會不多,趁此機會練手。
- 深入實踐架構設計。
命名為ImFire的IM
名字並不重要,正所謂“不看廣告看療效"。目前,這個項目還是在很初級的階段,在之後的隨筆中,我將陸續分享我在開發Imfire中的需求設計,架構設計,具體實現,和碰到的各種問題。望大家共同見證。