
设计随想录
十多年的后台方案设计经验
chanshimudingxi
10多年软件设计开发经验,在各大公司里摸爬打滚当码农
展开
-
自定义协议设计
ID是用来进行身份标识的,这个ID值唯一确定了某类业务领域对象中的某个对象,对于sdk和server进行业务描述和沟通来说,这个东西是所有信息里面最核心的,因为其描述了业务的对象。所谓业务就是对象加上规则,规则往往就是通过命令id来标记,表示进行的是什么类型的业务。用ID来进行沟通很大的好处就是对信息接收方完全透明,也就是说对sdk完全是透明的,sdk根本就不需要知道这个ID的意义,只需要在信息传输原创 2016-07-08 09:39:56 · 594 阅读 · 0 评论 -
分布式系统节点设计
学习分布式系统设计最好的例子就是TCP/IP协议,特别是其关于流量和拥塞控制的那部分简直就是经典。这部分内容实现了在系统中的单个节点无法预知系统全局状态的情况下,让节点自适应系统整体状态的方法。主要思想就是反馈。因为节点加入系统后就不再是独立的自己,而是系统中的节点,与其他节点发生关系,所以节点和节点之间的通信是必不可少的。既然存在信息的交流,那就要充分利用这些信息进行节点的自我调整,处在动态的变化原创 2016-07-08 09:39:26 · 1460 阅读 · 0 评论 -
数据传输加密设计
HTTP协议上加的SSL协议过程(简化版) 服务端生成公钥和私钥 客户端获得服务端的公钥,客户端本地生成一段随机序列(以后用来进行对称性加密和解密的密钥),用公钥进行加密后传给服务端 服务端用私钥把客户端传过来的数据进行解密,获取客户端本地生成的随机序列(以后用来进行对称性加密和解密的密钥) 业务加密需求不同点 使用http的业务,业务信息构成协议是http,是公开的。使用极光sdk的业务原创 2016-07-08 09:38:55 · 662 阅读 · 0 评论 -
查询方式设计
语言查询提供的查询接口比较灵活,但同时也带来一些问题1-使得后台解析数据的复杂度变大,而且要完全描述出什么是合法的查询语句是非常困难的。2-灵活带来的缺点是不确定性增大,一般内部模块在查询时最好是不要用这样的方式。因为内部模块之间的查询方式一般都相对比较固定,变化的概率不大。除非业务发生剧烈变化,否则可以通过扩容查询接口的方式来解决业务发展带来的问题。3-灵活带来的另一个缺点是速度下降,越是灵活的查原创 2016-07-08 09:37:21 · 520 阅读 · 0 评论