- 浏览: 540029 次
- 性别:
- 来自: 杭州
最新评论
-
GGGGeek:
看完了博主的博文,如果没猜错的话应该是浙大吧?很多优秀的人因为 ...
转《D君的故事》 以时刻警示自己 -
游牧民族:
楼主写的不错,学习了,最近对爬虫比较感兴趣,也写了些爬虫相关的 ...
通用爬虫框架及heritrix爬虫介绍 -
jimmee:
jerome_s 写道ice 你怎么看? 粗略的看了一下ice ...
MessagePack, Protocol Buffers和Thrift序列化框架原理和比较说明 -
jerome_s:
ice 你怎么看?
MessagePack, Protocol Buffers和Thrift序列化框架原理和比较说明 -
jimmee:
nk_tocean 写道照着做了,但是不行啊,还是乱码.先确认 ...
hive编写udf处理非utf-8数据
文章列表
1. org.apache.coyote.http11.Http11Processor.process
处理请求的数据
2. org.apache.coyote.http11.InternalInputBuffer.parseRequestLine()
// 例如:127.0.0.1:8080/test.jsp?a=%E4%B8%AD%E5%9B%BD
request.unparsedURI().setBytes(buf, start, end - start);
if (questionPos >= 0) {
...
为什么要使用SSLEngine, 参考javadoc的说明:
SSLSocket 类提供很多相同的安全功能,但是所有的入站和出站数据都是使用底层 Socket 自动地传输,底层 Socket 设计为使用阻塞模型。虽然这适合于很多应用程序,但是此模型却不提供大型服务器所需的可伸缩性。
SSLEngine 的主要特征是它在入站和出站的字节流上操作,与传输机制无关。安排到同位体可靠的 I/O 传输是 SSLEngine 用户的职责。通过从 I/O 传输机制中分离出 SSL/TLS 抽象,SSLEngine 可以被用于各种 I/O 类型,例如 non-blocking I/O (polli ...
原文地址: http://rox-xmlrpc.sourceforge.net/niotut/
1. Use a single selecting thread
使用单线程处理selectors, selectors are threadsafe their key sets are not
2. Modify the selector from the selecting thread only
从选择线程里修改selector
3. Set OP_WRITE only when you have data ready
仅仅准备好写数据的时候, 才设置OP ...
SSL说明:
1)简介
SSL (Secure Socket Layer)为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
2)SSL提供的服务
a.认证用户和服务器,确保数据发送到正确的客户机和服务器
b.加密数据以防止数据中途被窃取
c.维护数据的完整性,确保数据在传输过程中不被改变。
3) SSL协议 ...
1. rpc请求中怎么分发请求方法
方法一: 直接使用反射, 通过方法名, 参数名等反射调用
实际使用中的示例, hadoop的实现, 具体可参见 http://jimmee.iteye.com/blog/1206598 例如:
org.apache.hadoop.ipc.RPC
public Writable call(Class<?> protocol, Writable param, long receivedTime)
throws IOException {
try {
Invocation c ...
0. 线程池中, 怎么保证的一个会话数据的有序性
既然用到了线程池, 并不要求始终是同一个线程执行同一个会话的数据, 只要保证多个线程执行的同一个会话
的数据在时间上的有序性即可.
原理其实很简单, 每个会话的数据依次放到一个队列中. 特定时刻, 只有一个线程从此队列中读取数据执行.
借用netty中保持同一会话有序性的线程池的实现类的OrderedMemoryAwareThreadPoolExecutor说明, 线程之间操作
的流程示意如下:
Thread X: --- Channel A (Event A1) --. .-- Ch ...
误区1:数据是可靠的
很多因素会导致你获取的数据不可靠。在考虑具体的智能算法解决方案之前,首先就要判断数据是否可信。如果数据有问题,就算是最聪明的人,通常也会得出错误的结论。
可能导致数据出错的原因有很多,在此不可能一一列举,下面列出了部分有代表性的可能导致数据出错的因素:
· 在开发过程中所使用的数据不能代表产品环境中的数据。例如,对某个社交网络中的用户按身高分类“高”、“一般”和“矮”。如果开发阶段所使用的数据中最矮的用户的身高是1米84,那就有可能会得出“你太矮了,才1米84”的可笑结论。
· 数据中可能含有缺失值。实际上,除非数据是人造的,否则数据就肯定会含有缺失值。缺 ...
第1部分 通用爬虫
1.1 通用爬虫框架介绍
图1-1描述了通用的爬虫框架,其基本上包括了一个爬虫系统所需要的所有模块。任何一个爬虫系统的设计图,会发现都有一个环路,这个环代表着爬虫大致的工作流程:根据url将对应的网页下载下来,然后提取出网页中包含的url,再根据这些新的URL下载对应的网页,周而复始。爬虫系统的子模块都位于这个环路中,并完成某项特定的功能。
垂直搜索与通用搜索不同之处在于,通用搜索不需要理会网站哪些资源是需要的,哪些是不需要的,一并抓取并将其文本部分做索引。而垂直搜索里,我们的目标网站往往在某一领域具有其专业性,其整体网站的结构相当规范,并且垂直搜索往往只需要其中一部分具有垂直性的资源,所以垂直爬虫相比通用爬虫更加精确。
垂直爬虫抓取数据分成三个步骤:list-crawling(列表url抓取),detail-crawling(详情url抓取),data-extract and store (数据抽取和存储),其实原理上并不复杂,以下是整体垂直搜索的架构及流程图:
1. 首先运营人员会选定需要抓取的目标网站,录入 ...
第1部分 messagepack说明
1.1messagepack的消息编码说明
为什么messagepack比json序列化使用的字节流更少, 可通过图1-1、图1-2有个直观的感觉。
图
0. 全文索引的核心就是倒排索引.
1. 若数字不支持范围查询, 直接变成字符串查找即可
2. 如果要支持范围查询, 直接的字符串存储支持么?
目前lucene要求term按照字典序(lexicographic sortable)排列,
流量控制 对于一个带宽1Gbps, RTT为100ms的网络来说 BDP=1,000,000,000*0.1/8=12,500,000字节=12207K=12M 传统TCP接收窗口大小=65535byte=64K, 显然满足不了 udt使用包大小1500byte, 默认接口窗口大小为8192, 因此接收窗口的大小为=1500*8192=12,288,000字节=12000K=11.7M 因此, 可以看到udt的默认设置已经足够.Congestion Control(拥塞控制)1. 两个重要的参数:congestion window size and the inter-packet sendi ...
1. 模式有client/server mode(客户端,服务器端模式) and the rendezvous mode(会合模式,可同时向对方发送请求)2. client发送的握手信息,信息有:1) UDT version: udt版本,主要用作兼容性处理2) Socket Type: STREAM (0) or DGRAM (1).3) Initial Sequence Number: 第一包的序号,是个随机值4) Packet Size: the maximum size of a data packet (including all headers). This is usua ...
发送方的处理:1) 包发送确认后,由于还没有收到确认,先缓存2) 收到确认包后,从缓存中删除发送的包3) 接收方将丢失的包通知过来,或者超过一定的时候,若还没有收到确认的包,进行重传(注意,这个由接收线程触发)接收方的处理:1) 接收到包的数据,先将数据放到缓存中,a. 若有丢包现象,通知发送方,同时记录丢失的包 b.若是重传的包,从丢失的列表中删除2) 发送确认包3) 丢失的包,超时会让发送方再次发送一些情况分析:情况1:发送包a,接收方确认a,发送方收到确认:正常情况2:发送包a,接收方确认a,发送方没有收到确认:发送方会重发此包,接收方收到此包忽略情况3:发送包a,接收方没有收到a:发送 ...
0. 计时器udt有四种计时器:
ACK, NAK, EXP and SND
1. 发送端的算法数据结构和变量:1)SenderLossList: 记录发送方丢失的包的列表,根据序号升序排列2)sendBuffer: 记录发送过的包和序号发送算法:1)如果丢失列表不为空,则重传这些packet包,并从丢失列表中移出,到5)2)若应用层有数据,则执行发送3) 进行检查 a. 若未确认的包的数量超过流量窗口的大小,则回到1) b. 组织一个新的数据包,之后发送出去4) 若当前的包的序号是16n(16的倍数),回到2),此处的作用是pair packet,可用于估计带宽的5) 记录包的 ...