2010/10/5~2014/3/31在這個時間點,自己是在做網頁游戲開發,那段時間頁游是挺火爆的,后來隨着手游的興起,頁游走向了沒落,我也考慮了轉向了其他方向,PHP研發。
后來項目需要做一個實時聊天服務器,我便正式開始了Java的開發,以前也是有些了解的,但是還只是停留在基礎的認識上面,現在可以說有些自己的心得了。
實時聊天服務器采用Java開發,使用的網絡框架是Netty,目前的聊天服務器是分布式的,其實單純的聊天服務器是簡單的,但是如果要支持一個巨大的聊天室是非常困難的(30W人),單機可能承載了不了那么多人,這個就需要把這種大聊天室的用戶均衡負載到多台服務器中,並保證多台服務器間的消息的同步。
Netty開發網絡程序實在是太簡單了,其本身的Reactor架構,使得開發者只需要關注自己的邏輯即可。
Netty中顯著的特性就是Pipeline,管線操作,我們可以在Pipeline中添加自己的Handler,Pipeline的操作可以動態add,remove掉Handler。
即使是Netty開發方便也要注意幾個關鍵點。
1.Handler里面不要做費時的IO/計算操作,最好是自己添加線程池處理比較費時的IO/計算
2.ChannelOption一定要注意設置ChannelOption.WRITE_BUFFER_LOW_WATER_MARK和ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK
注意以上兩點服務器的性能和內存都會得到比較好的控制。
給大家推薦一個Netty編程實踐,非常好的介紹了Netty的使用,大家仔細閱讀,不要錯過,通過百度雲分享給大家,通過最佳編程實踐,就能很好的控制Netty了。
百度雲鏈接:http://pan.baidu.com/s/1o8b5h8I