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<String, Protocol> cache = new WeakHashMap<String, Protocol>();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<String, String[]> metadata;    public ProtocolResponse(byte[] c, int s, HashMap<String, String[]> md){        content = c;        statusCode = s;        metadata = md;    }    public byte[] getContent() {        return content;    }    public int getStatusCode() {        return statusCode;    }    public HashMap<String, String[]> getMetadata() {        return metadata;    }}

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

更多关于云服务器域名注册虚拟主机的问题,请访问西部数码官网:www.west.cn

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » Storm中对于Protocol进行的封装是怎样的

登录

找回密码

注册