网络通讯服务设计的几个原则

9. 目前业务处理线程里面需要包含重的 Work_Socket 对象,网络处理和业务混合在一
起,耦合比较强;按网络是网络,网络是数据通道;业务是业务,业务利用数据通道的
一般原则,这样,业务开发人员基本不需要知道网络怎么通讯,开发难道可以降低,
业务开发人员也就无法直接去和客户端交互,可以有效屏蔽错误;建议业务处理层只是
保留一个轻量级别的连接ID结构,而不是一个完整的 socket 对象,否则业务处理层可
以任意的发送数据,不好控制;网络处理层提供发送数据的借口: send(char *buff,
struct connectid);把数据送到网络层后,网络层负责发送。这个是走读代码的一点
建议,对以后设计做参考。现在这个模型成熟度比较高,稳定先用好。

10. 还有一个原则,就是通讯是通讯,协议是协议。这个目前我们框架里面有比较好的表现。
大致就说说通讯只是负责传送数据,传送什么数据是由协议来控制的,数据完整不完整也是
由协议来控制。比如一个 TCP 连接,是一个通讯,上面传什么数据是由协议来控制,协议
包里面组装什么数据就是什么数据。一次收到的数据,数据是不是完整,是一个完整包,还
是多个完整包,由协议来控制。如果有多余的半个数据包,下次收完整后合并数据。一般
是收一批数据,把数据送到指定协议解析,解析成功,进行拆包,把拆好的一个一个数据
包送到业务层去处理。这样,通讯和协议有联系,有区分,他们可以分开分层设计了。

11. socket 是否可以重用,一个连接上是否可以发送多个业务数据包;避免短连接,
特别是移动互联网或者大并发业务,建立一个网络连接的成本是很高(慢)的。

12. 网络数据收发是否支持异步收发,收和发分开设计和实现,收的时候可以发,因为
网络通道是双通道的(TCP,UDP)。

13. 协议解析可配置,一个进程支持多份协议,灵活加载。

14.  服务发现;故障迁移,节点摘除;配置中心化,更新自动化;接口调用耗时;业务接口错误统计

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值