成都创新互联网站制作重庆分公司

Storm中对于Protocol进行的封装是怎样的

本篇文章为大家展示了Storm中对于Protocol进行的封装是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的铁西网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

对于Protocol的封装

package com.digitalpebble.storm.crawler.fetcher;

import com.digitalpebble.storm.crawler.util.Configuration;

public interface Protocol {

    public ProtocolResponse getProtocolOutput(String url) throws Exception;
    
    public void configure(Configuration conf);
}

 对于ProtoclFactory的封装

package com.digitalpebble.storm.crawler.fetcher;

import java.net.URL;
import java.util.WeakHashMap;

import com.digitalpebble.storm.crawler.fetcher.asynchttpclient.AHProtocol;
import com.digitalpebble.storm.crawler.util.Configuration;

/**
 * @author Yin Shuai
 *
 */
public class ProtocolFactory {

    private final Configuration config;

    private final WeakHashMap cache = new WeakHashMap();

	public ProtocolFactory(Configuration conf) {
        config = conf;
    }

    /** Returns an instance of the protocol to use for a given URL **/
    public synchronized Protocol getProtocol(URL url) {
        // get the protocol
        String protocol = url.getProtocol();
        Protocol pp = cache.get(protocol);
        if (pp != null)
            return pp;
        
        // yuk! hardcoded for now
        pp = new AHProtocol();
        pp.configure(config);
        cache.put(protocol,pp);
        return pp;
    }

}

 对于ProtocolResponse的封装

package com.digitalpebble.storm.crawler.fetcher;

import java.util.HashMap;

public class ProtocolResponse {

    final byte[] content;
    final int statusCode;
    final HashMap metadata;

    public ProtocolResponse(byte[] c, int s, HashMap md){
        content = c;
        statusCode = s;
        metadata = md;
    }

    public byte[] getContent() {
        return content;
    }

    public int getStatusCode() {
        return statusCode;
    }

    public HashMap getMetadata() {
        return metadata;
    }

}

上述内容就是Storm中对于Protocol进行的封装是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


名称栏目:Storm中对于Protocol进行的封装是怎样的
分享链接:http://cxhlcq.com/article/geigoc.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部