
服务端
小道安全
这个作者很懒,什么都没留下…
展开
-
设计一个安全的排队系统的思考
用排队系统来防炸服,听上去很怂。但是对大热的游戏,或者宕机重启,几万人一起涌上线登录时,一套可靠的排队系统确实可以救命。 不过设计一个优秀的排队系统可并不容易: 首先要高可用(HA)。千万不能把排队系统设计成一个新的故障源。不能本身成为一个单点的故障。 一个单机的排队系统,近似一个 Rate Limiting Algorithms 问题,基于 Leaky Bucket (漏桶)或 Token Bucket (令牌桶) 做一些改良是可以的。 但是一旦涉及高可用问题就不一样了。因为系统要依赖一个中心化的队列数据原创 2021-01-24 09:35:18 · 4493 阅读 · 9 评论 -
排队系统利用分布式设计的思考
从分布式系统设计来进行设计排队系统。它有以下特点: 1、它具有一致性(Consistency)和事务完整性(Tansactions)要求不高。目的只是控制流量,所以如果一定程度的数据不一致的最糟结果只是进入顺序不一致,或者多进入10%的用户,都是可以容忍的。 2、延迟(Latency)尽量低。虽然不追求毫秒级的响应,但是系统处理的速度越快,对系统的压力也就越小。所以还是尽量低。 3、流通量(Throughput)要求非常高。要能承受巨大请求压力。 4、它对于数据丢失(Data Loss)可容忍。排队的数据原创 2021-01-19 11:20:19 · 3191 阅读 · 5 评论 -
必须知道的导致程序崩溃点。
发生事情的背景: 1.在代码开发过程中,有的时候我们会在源代码中添加一些调试代码和信息打印,因为想看看程序执行到这个点会发生些什么。(每次出现这种情况的时候,我建议你想想是否添加一个单元测试用例会更有意义?)调试完就没用的代码,通常没有必要留着。但有的时候,我们仍会留下一些日志打印,以便出现问题时可以更好地进行诊断。 2.在C++代码中可以通过条件编译来防止调试代码影响到生产环境,我们也可以通过日志级别来控制调试信息的输出。不过由于疏忽,有时我们仍然可以在生产环境的日志里看到开发人员留下的古怪信息,如果不小原创 2021-01-14 18:18:12 · 1189 阅读 · 2 评论