分类目录: 软件技术

Jetty 8长连接上的又一个坑

Jetty 8 长连接的超时断开连接的机制:超时连接机制针对IO传输过程中的数据阻塞时间超过一定阈值时,断开该连接。阻塞指当前处于数据传输阶段,但是连续指定时间内都没有发出或者接收到任何数据时,Jetty系统断开该连接。强调一下,只有在数据传输过程中才会有超时机制。在服务端处理已经收到的数据时是不会检测该超时时间的。

下面看一下具体的代码实现。在jetty 8.1.17版本中,由以下代码控制一个连接的空闲、非空闲和断开检查方法,在SelectChannelEndpoint类中:

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.92- 53票) Loading ... Loading ... | 同时归档在:IO编程, Java, Jetty | 标签: , |

微信朋友圈技术之道

讲师简介

陈明,微信高级工程师、朋友圈负责人,2012年加入微信后台团队,负责微信后台核心服务的研发,包括朋友圈、即时通信、基础设施等。他获得清华大学计算机系学士和博士学位,研究方向是分布式系统。在加入微信前,他在腾讯搜索和微软亚洲研究院工作多年,内容包括搜索架构与分布式存储等。

概述

截止到2015年7月,微信每月活跃用户约5.49亿,朋友圈每天的发表量(包括赞和评论)超过10亿,浏览量超过100亿。得益于4G网络的发展,以上数据仍有很快的增长,而且相对于PC互联网时代,移动互联网时代的峰值要来得更加凶猛。比如,2015年元月的流量到了平时的2倍,而峰值则达到了平时峰值的2倍,相当于平时正常流量的5倍,这对整个系统的考验是很残酷的。本次分享将简单介绍微信后台团队的开发模式、微信朋友圈的架构以及在性能上的一些工作,供各位参考。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.73- 15票) Loading ... Loading ... | 同时归档在:架构设计 | 标签: |

[转]TLS 握手优化详解

随着 HTTP/2 的逐渐普及,以及国内网络环境越来越糟糕(运营商劫持和篡改),HTTPS 已经开始成为主流。HTTPS 在 TCP 和 HTTP 之间增加了 TLS(Transport Layer Security,传输层安全),提供了内容加密、身份认证和数据完整性三大功能,同时也给 Web 性能优化带来新的挑战。上次写的「使用 BoringSSL 优化 HTTPS 加密算法选择」一文中,我介绍了如何针对不同平台启用最合适的传输加密算法。本篇文章我打算继续写 HTTPS 优化 —— TLS 握手优化。

TLS 的前身是 SSL(Secure Sockets Layer,安全套接字层),由网景公司开发,后来被 IETF 标准化并改名。通常没有特别说明时,SSL 和 TLS 指的是同一个协议,不做严格区分。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.50- 8票) Loading ... Loading ... | 同时归档在:WEB网络 | 标签: , , , , |

[转]Linux概念架构的理解

Linux kernel成功的两个原因:(1)灵活的架构设计使得大量的志愿开发者能够很容易加入到开发过程中;(2)每个子系统(尤其是那些需要改进的)都具备良好的可扩展性。正是这两个原因使得Linux kernel可以不断进化和改进。

一、Linux内核在整个计算机系统中的位置

分层结构的原则:the dependencies between subsystems are from the top down: layers pictured near the top depend on lower layers, but subsystems nearer the bottom do not depend on higher layers.

这种子系统之间的依赖性只能是从上到下,也就是在上图中位于顶层的子系统依赖位于底层的子系统,反之则不行。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.60- 10票) Loading ... Loading ... | 同时归档在:Linux内核 | 标签: , , |

SSL多域名绑定证书的解决方案

之前有几篇文章已经关注过加密解密证书和HTTTPS的一些基本原理。HTTPS、SSL与数字证书介绍公钥私钥加密解密数字证书数字签名详解。这里想探讨一下单一的web服务中多个域名共享一个证书或者使用多个证书进而使用多域名的HTTPS的问题。

在《HTTPS、SSL与数字证书介绍》这篇文章中介绍了,证书是在SSL握手阶段交换的,而域名是在HTTP请求的Header中传输到服务端的,HTTP协议在SSL之上,而两层协议之间是无法共享数据的。因此证书是在建立HTTP的Session之前就已经决定了。但是有越来越多的场景需要同一个Server监听多个域名,对外呈现多个入口。而我们知道,客户端会校验证书中的网址、颁发者的公钥和过期时间等信息。后面两个可以通过付费到具有公信力的颁发机构颁发证书的方式解决。网址匹配有点麻烦,网址一般填写在证书的Common Name上面,因此网址与域名是一一对应的关系。而多个不同的域名可以解析成同一个IP地址,这样如何做到给每个域名都绑定不同的证书?是给每个域名都分配一个服务器,绑定单独的IP地址吗?但是在规模不大的情况下只部署有限的服务器。

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 10票) Loading ... Loading ... | 同时归档在:WEB网络 | 标签: , , , , |

PDF:100个gdb小技巧(v1.0)

100个gdb小技巧(v1.0).pdf

| 1 分2 分3 分4 分5 分 (4.88- 8票) Loading ... Loading ... | 同时归档在:C/C++, 语言基础 | 标签: , , |

利用nc工具高效创建TCP/UDP协议的连接

研究网络技术或者验证某个协议传输机制时,经常需要创建一个TCP Server或者Client,必须时经常需要即时写一个。找到一个比较好用的工具,nc,NetCat。可以满足上述需求,只需要一行命令即可创建一个TCP服务端,实现最简单的收取网络数据的功能。

这里有工具的命令详解:Linux nc命令详解。简单用法:

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.90- 10票) Loading ... Loading ... | 同时归档在:IO编程, WEB网络, 实用脚本 | 标签: , , |

跨域访问和防盗链基本原理(二)

二、跨域访问基本原理

在上一篇,介绍了盗链的基本原理和防盗链的解决方案。这里更深入分析一下跨域访问。先看看跨域访问的相关原理:跨网站指令码。维基上面给出了跨站访问的危害性。从这里可以整理出跨站访问的定义:JS脚本在浏览器端发起的请求其他域(名)下的网站数据的HTTP请求。

这里要与referer区分开,referer是浏览器的行为,所有浏览器发出的请求都不会存在安全风险。而由网页加载的脚本发起请求则会不可控,甚至可以截获用户数据传输到其他站点。referer方式拉取其他网站的数据也是跨域,但是这个是由浏览器请求整个资源,资源请求到后,客户端的脚本并不能操纵这份数据,只能用来呈现。但是很多时候,我们都需要发起请求到其他站点动态获取数据,并将获取到底数据进行进一步的处理,这也就是跨域访问的需求。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.83- 6票) Loading ... Loading ... | 同时归档在:WEB网络, 建站技术 | 标签: , |

跨域访问和防盗链基本原理(一)

一、什么是防盗链

网站资源都有域的概念,浏览器加载一个站点时,首先加载这个站点的首页,一般是index.html或者index.php等。页面加载,如果仅仅是加载一个index.html页面,那么该页面里面只有文本,最终浏览器只能呈现一个文本页面。丰富的多媒体信息无法在站点上面展现。

那么我们看到的各类元素丰富的网页是如何在浏览器端生成并呈现的?其实,index.html在被解析时,浏览器会识别页面源码中的img,script等标签,标签内部一般会有src属性,src属性一般是一个绝对的URL地址或者相对本域的地址。浏览器会识别各种情况,并最终得到该资源的唯一地址,加载该资源。具体的加载过程就是对该资源的URL发起一个获取数据的请求,也就是GET请求。各种丰富的资源组成整个页面,浏览器按照html语法指定的格式排列获取到各类资源,最终呈现一个完整的页面。因此一个网页是由很多次请求,获取众多资源形成的,整个浏览器在一次网页呈现中会有很多次GET请求获取各个标签下的src资源。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.91- 11票) Loading ... Loading ... | 同时归档在:WEB网络, 建站技术 | 标签: , |

一些LVS实验配置、工具和方案

最近做了一些LVS配置和方案的验证实验,将过程中用到的一些配置、工具和具体的解决方案记录一下。使用DR模式。验证一种不中断业务的RealServer升级或者重启方案。

网络规划:

节点 IP地址
ceph1(RealServer1) 172.16.0.114
ceph2(RealServer2) 172.16.0.115
ceph4(DirectServer) 172.16.0.113
客户端:Win 8.1 172.16.0.100

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 7票) Loading ... Loading ... | 同时归档在:IO编程, WEB网络 | 标签: , , |