1:單體
1.1:點對點
兩邊公網ip:
缺點:
1.多少個好友就多少個公網tcp連接,手機資源消耗大
2.公網ip端口被封,即使wifi環境用nat也不是很好的方案
1.2:專門搞台服務器,暴露公網ip和端口
A、B登陸,保存channel <uid, channel>
A發送B消息,服務器取得B的channel,write
1.3:聊天室
<roomid, List<uid>>
<uid, channel>
https://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247484883&idx=1&sn=1a448b21d9fecd9fa4eeff2c51eed9b9&chksm=fa497a62cd3ef37480bd3d003d83d15b0ed6e6166f33c7d5d8484646299eb0979a6bc45cc7ef&mpshare=1&scene=1&srcid=08114vLIYxhRKmYoyf4U0bhP&key=ce0fa4dcd93707bbaaf8db0e48719082b0c76c1bf79933fb217690f7593ce2afd2f3b364b514cb98cb80d2a2578cfa09f064e9f60a87d16086fee24c846ee58ba299f62b78cc9b94cbdf944b5aba337c&ascene=0&uin=MTA2NzUxMDAyNQ%3D%3D&devicetype=iMac+MacBookAir6%2C2+OSX+OSX+10.10.5+build(14F2511)&version=11020012&lang=zh_CN&pass_ticket=PxWaGEWWe0eNv4G2j4iXpikni7NYO3V%2FsH0QQT%2FdQT2iUGUsChVqp%2BppkOxUDJNX
2:負載均衡
2.1:初始化
(1)配置后端服務器列表
(2)心跳
2.2: 實現
硬件:F5
軟件:lvs nginx
2.3:映射
A、B登陸,保存 (lbs)<uid, Front channel>,(lbs)<uid, Back channel>,(redis)<uid, back server ip>,
A發送消息B,lbs從uid取得后端Back channel,發送到服務器1,服務器1先取得B的serverid:3 和ip,轉發,server3接收,發還給lbs,lbs再發到B客戶端Front channel
2.5 另一個負載均衡模型
2中的模型我覺得有點問題,負載均衡仍然會有大量連接,壓力較大,未起到負載分散連接的作用,以下模型可以,而且更簡潔:
client 與后端之間同樣要建立心跳,之所以由proxy發起到后端的tcp連接而不是反過來,是因為保持后端的獨立性
參考:https://blog.csdn.net/admin1973/article/details/71424160?utm_source=itdadao&utm_medium=referral
實踐位於:https://www.cnblogs.com/silyvin/articles/9803778.html
https://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247484897&idx=1&sn=d1ebc9b4a46b15fb36732c7dba52d0a4&chksm=fa497a50cd3ef3460ba31e4c9e417dbd65d55fb3f9f9dfdbdd6943f9517fa096a8cd7af5e8c0&mpshare=1&scene=1&srcid=0812X16OOa3VbM3l3zove0pR&key=c76d92981ae751ea44818f34e9cba4717a846e53faa721f1a7bfd90a8ffacf5b30da581f9c51f9f29cefb4dadb70e1b34a78d0a005688923d0662ceefedbd98c87a145d21b2d6c94149a30c790069973&ascene=0&uin=MTA2NzUxMDAyNQ%3D%3D&devicetype=iMac+MacBookAir6%2C2+OSX+OSX+10.10.5+build(14F2511)&version=11020012&lang=zh_CN&pass_ticket=%2FbM7bjJct0cezZRCQGhjHoLNI%2F6kzz3pGwSOHQb0%2Bdd7hBMSHdRUm0qA%2BNc5bGeA
3 實踐
3.1 重啟
3.2 瞬間gc
輪詢round robin,然后等待死鏈接平衡服務器
https://mp.weixin.qq.com/s?__biz=MzIwMzY1OTU1NQ==&mid=2247484608&idx=1&sn=dbdaa7a20f09a15e252cbef02bba20c1&chksm=96cd448ca1bacd9a127fc517d167e4210c8bc575417a50b23a782fc57ed210f92342fd4903cc&mpshare=1&scene=1&srcid=0927UEIblgcHUwUKBRJPenLI&key=ef42a6c1e4fdfbc6eb68e2ff391e4093d4cbb9e8ed1bac5f901262e1de5eef5198e8ebafc382cee35db594748d59a8fdd79312297f7483bc6aba154f7c6a7afc66ba23c9e2fb6415bd880b64abc0ae85&ascene=0&uin=MTA2NzUxMDAyNQ%3D%3D&devicetype=iMac+MacBookAir6%2C2+OSX+OSX+10.10.5+build(14F2511)&version=11020012&lang=zh_CN&pass_ticket=3sXqr7c2oEvhreALgBwX%2FGLK0mOv%2BqBK9kOHRAlS3NHnD19yGGWL0GX1fFKdJ7eU