本篇文章为大家展示了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进行的封装是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
网站栏目:Storm中对于Protocol进行的封装是怎样的
地址分享:/article2/geigoc.html
成都网站建设公司_创新互联,为您提供标签优化、网站导航、网页设计公司、ChatGPT、微信小程序、网站营销
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联