1.网络通信:
1.长连接 (建立连接后并完成通信后不断开)--->占用资源
(游戏服务可用长连接)
2.短连接 (建立连接在安成通信后断开) --->不占用资源 (http属于短连接)
(注册,登陆,公告之类的连接可使用短连接)
2.网关服务:
1.暴露给客户端进行连接通信
2.权限验证
3.限流
4. 数据加解密
5.消息转发
6.负载均衡
7.连接管理 : 1.长连接 :
1. 发心跳保持连接
2. 关闭空闲连接
8.协义转换:
1.mqtt
2.rpc
3.protobuf
4. json
统一转换为服务接口支持的一种协议
3.消息交互:
1.消息中间件:
1.高性能
2.低耦合
3.发布与订阅
4.异步
5.限流
6.一致性
7.支持单点与集群
ActiveMQ,Kafa,RabbitMQ,RocketMQ,Consul+Nats
4.业务处理:
1.消息管理
1.同一用户请求放到同一消息队列
2. 为每一个队列启动一个线程来处理队列消息(避免线程死锁)
2.线程管理
1.使用线程池
2.各模块线程池分开
如: 游戏线程池---》处理游戏逻辑
数据线程池---》操作数据库读写数据
3.缓存管理
1. redis 缓存数据到内存中
4.数据持久化
2. mongodb
5.模块测试