06 2012 档案
摘要:1. 为什么要使用Http Trunked协议? 一般http通信时会使用content_length头信息来表示服务器发送的文档内容长度,这是因为我们已经提前知道了文档内容的长度,但有时候我们无法提前知道我们需要传输的文档的长度,这时我们就要采用分块传输的方式来发送内容,也就是通过我们的http trunked协议。Http1.1x协议的chunked编码方式,可以确保接收端能够准确的判断不定长内容收取是否完整。2. http RFC文档中的chunked编码格式chunked编码一般使用若干个chunk串联而成,最后一个chunk的长度为0,表示chunk数据结束。每个chunked分为头
阅读全文
摘要:前言:前段时间在网上看到腾讯后台开发总监bison分享的一篇文章《浅谈过载保护》,读来受益匪浅。刚好自己也在处理系统请求过载的问题,把自己的一些心得体会总结出来拿来与大家一起探讨。在bison的文章中谈到:对于延时敏感的服务,当外部请求超过系统处理能力,如果系统没有做相应保护,可能导致历史累计的超时请求达到一定的规模,像雪球一样形成恶性循环,由于系统处理的每个请求都因为超时而无效,系统对外呈现的服务能力为0,且这种情况不能自动恢复。我们的系统就是要尽量避免这种情况的出现,下面将详细来分析一个现实中的案例。一 有过载问题的系统数据处理流程: 1) 前端将请求发送给数据解析及转发系统, 2)数据解
阅读全文
摘要:前言:最近在做分布式海量数据处理项目,使用到了java的线程池,所以搜集了一些资料对它的使用做了一下总结和探究,前面介绍的东西大多都是从网上搜集整理而来。文中最核心的东西在于后面两节无界队列线程池和有界队列线程池的实例使用以及线上问题处理方案。1. 为什么要用线程池?在Java中,如果每当一个请求到达就创建一个新线程,开销是相当大的。在实际使用中,每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源,甚至可能要比花在实际处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个JVM中创建太多的线程,可能会导致系统由于过度消
阅读全文

浙公网安备 33010602011771号