Dubbo:服务发现过程 发表于 2017-12-22 | 分类于 dubbo 服务发现触发 ReferenceBean实现了FactoryBean、InitializingBean,在reference标签中配置init属性就会触发立即初始化(afterPropertiesSet()方法中),如果没有配置则会延迟初始化直到通过getBean()调用getObject()完成。 ... 阅读全文 »
Dubbo:服务暴露过程 发表于 2017-12-20 | 分类于 dubbo 服务暴露触发关于服务暴露是怎么被触发的在之前的博客 dubbo与spring 中有简单介绍过。 大体步骤如下: 在xml中进行服务配置。 根据spring的schema扩展注册的DubboBeanDefinitionParser,将dubbo相关配置解析成对应的 BeanDefinition。 B ... 阅读全文 »
Dubbo:扩展机制 发表于 2017-12-19 | 分类于 dubbo Java的SPI机制SPI(service provider interface)机制是通过定义服务接口标准,让不同的厂商去实现,java通过java.util.ServiceLoader类查找接口对应的服务实现。 SPI约定服务提供者提供了服务接口的一种实现后,要在类路径下的META-INF/se ... 阅读全文 »
Dubbo:dubbo与spring 发表于 2017-12-18 | 分类于 dubbo spring<dubbo>标签扩展spring自定义标签扩展spring自定义标签的步骤如下: 定义一个XSD文件描述扩展组件内容。 实现BeanDefinitionParser接口,用于解析XSD文件中组件的定义,置于类路径下。 继承NamespaceHandlerSupport类, ... 阅读全文 »
Dubbo:初探Dubbo源码 发表于 2017-12-18 | 分类于 dubbo dubbo简介背景 随着应用规模不断增大,应用之间的交互越多,基于MVC的垂直应用架构的开发模式弊端逐渐突显:开发维护成本变高,部署效率低等。通过将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,以实现服务的共享和重用,分布式服务框架成为了应用架构的核心。流动计算架构可以解决当服务越来越多 ... 阅读全文 »
Nutch抓取优化 发表于 2017-08-25 | 分类于 Nutch 抓取优化设计方案流程优化将nutch默认的串行抓取流程改为并行抓取流程 串行流程介绍nutch crawl流程图 串行流程主要是这四个阶段:generate–>fetch–>parse–>updatedb,循环执行。 串行流程问题当crawldb中数据量比较少时,fetch流程会 ... 阅读全文 »
Nutch流程介绍 发表于 2017-08-25 | 分类于 Nutch Generate经历三类Job: select/partition/updatedb,最后打上tag_generate。 参数 说明 crawl_db crawldb存放目录 segments_dir Generate生成的segment存放目录 topN Generate生成 ... 阅读全文 »
汉字拆字搜索 发表于 2017-08-25 | 分类于 search 解决问题部分生僻字不知道读音无所搜索,可以根据拆字的方式提供一种解决方案。例如:堃(kūn)字,可以通过方方土或者两个方一个土的方式搜索到。 设计思路最直接的解决办法是如果有每个汉字的拆字数据,那么就可以直接通过用户输入的拆字部分进行搜索,但是目前还未找到该数据。因而转换另一种间接解决方案,使用五笔 ... 阅读全文 »
IO多路复用 发表于 2017-07-02 | 分类于 操作系统 问题:最传统的多进程并发模型,每进来一个新的I/O流会分配一个新的进程管理。 IO多路复用(I/O Multiplexing):单个进程,通过记录跟踪每个 IO 流的状态,来同时管理多个 IO 流。内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。 与多进程和多线程技术相比,I/O ... 阅读全文 »
After URL 发表于 2017-07-02 | 分类于 网络 输入网址后发生了什么? 浏览器查找域名对应 IPDNS 查找过程 浏览器缓存 浏览器会记录 DNS 一段时间。 系统缓存 浏览器没找到 DNS 缓存,此时做一个系统调用。 路由器缓存 ISP DNS 缓存 递归查找 DNS 缓存没有时,ISP DNS服务器会先后从 根域名服务器,顶级域名服务器等获取 ... 阅读全文 »