自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

山不转的博客

山不转水转,水不转我转

原创 Scrapy学习过程之八:SPIDERS

参考:https://docs.scrapy.org/en/latest/topics/spiders.html 构架图: 就上上图中最上边那个SPIDERS,用来生成起始的REQUEST,解析返回的RESPONSE,从中提取数据并发阖家出去,另外从RESPONSE中解析出新的UR...

2019-07-26 14:51:44 83 0

原创 Scrapy学习过程之七:命令行工具

参考:https://docs.scrapy.org/en/latest/topics/commands.html Configuration settings 关于scrapy命令行工具的配置文件,其格式为ini。配置文件存在于以下几个地方: /etc/scrapy.cfg or c:\s...

2019-07-25 17:43:05 96 0

原创 Scrapy学习过程之六:pipeline

参考:https://docs.scrapy.org/en/latest/topics/item-pipeline.html#topics-item-pipeline 架构图: Item Pipeline 就是一些简单的处理Item的类,输入是Item输出也是Item,多个类就组成一个管...

2019-07-25 16:59:17 147 0

原创 Scrapy学习过程之五:item

参考:https://docs.scrapy.org/en/latest/topics/items.html#scrapy.item.Item SPIDER将从网页中提取出来的数据以dict的形式发射出去,这个dict直接写在代码中,很容易写错,也不能复用。 因此Scrapy专门提供了一个...

2019-07-25 16:06:14 94 0

原创 Scrapy学习过程之四:Feed Export

参考:https://docs.scrapy.org/en/latest/topics/feed-exports.html#topics-feed-exports 整体架构图: SPIDER提取出的数据是dict,从上图可以看出,会将这些数据发送给ENGINE,然后ENGINE再将数据交给...

2019-07-25 15:46:11 328 0

原创 Scrapy学习过程之三:tutorial

参考:tutorial 贴出架构架构图以便参考: 本tutorial涉及到的内容: 创建一个scrapy工程 写一个spider爬网页并提取数据 使用命令行导出scrapy数据 将spider改成递归跟踪链接 给spider传递参数 Creating a project 自己先...

2019-07-25 11:51:08 82 0

原创 Scrapy学习过程之二:架构及简单示例

1、Scrapy架构 参考:https://docs.scrapy.org/en/latest/topics/architecture.html#data-flow 以下是架构图: 从上图可以看出,Scrapy是组件化的,每个组件实现特定的功能,组件之间是独立的,松耦合的,在大规模应...

2019-07-24 15:55:07 526 0

转载 Scrapy学习过程之一:安装

原文作者:朱敬志 原文链接:https://www.cnblogs.com/zhujingzhi/p/9766965.html 感谢原文作者朱敬志,非常好的一个构建过程,很快,构建出来的镜像很小,亲测有效。 一、下载alpine镜像 [root@DockerBrian ~]# docke...

2019-07-22 18:34:48 56 0

原创 Ubuntu 14.04安装Scrapy

参考:https://docs.scrapy.org/en/latest/intro/install.html 以下命令都在root用户下执行 1、更新apt-get软件源仓库: echo -e "deb http://mirrors.aliyun.com/ubuntu/ tru...

2019-07-22 13:34:03 60 0

原创 Dubbo延迟暴露、并发控制、连接控制、延迟连接、粘滞连接(十)

1、参考 延迟暴露:http://dubbo.apache.org/zh-cn/docs/user/demos/delay-publish.html 并发控制:http://dubbo.apache.org/en-us/docs/user/demos/concurrency-control.h...

2019-06-04 19:03:44 765 0

原创 Dubbo本地存根、本地伪装(九)

1、参考 本地存根:http://dubbo.apache.org/en-us/docs/user/demos/events-notify.html 本地伪装:http://dubbo.apache.org/en-us/docs/user/demos/local-mock.html 2、本地...

2019-06-04 17:56:56 259 0

原创 Dubbo本地调用、参数回调、事件通知(八)

1、参考 本地调用:http://dubbo.apache.org/en-us/docs/user/demos/local-call.html 参数回调:http://dubbo.apache.org/en-us/docs/user/demos/callback-parameter.html ...

2019-06-04 15:16:16 1265 0

原创 Dubbo异步调用(七)

1、参考 异步调用:http://dubbo.apache.org/en-us/docs/user/demos/async-call.html 2、异步调用 2.1、Dubbo2.0.6+的异步调用 这里说的异步调用应该是非阻塞的NIO调用,一个线程可同时并发调用多个远程服务,每个服务的调...

2019-06-04 11:31:50 1395 0

原创 Dubbo上下文信息、隐匿参数附件(六)

1、参考 上下文信息:http://dubbo.apache.org/en-us/docs/user/demos/context.html 隐匿参数:http://dubbo.apache.org/en-us/docs/user/demos/attachment.html 我觉得这两个功能与...

2019-06-03 19:53:52 1111 0

原创 Dubbo参数验证(五)

1、参考 参数验证:http://dubbo.apache.org/en-us/docs/user/demos/parameter-validation.html 2、参数验证 Dubbo中的参数验证基于JSR-303,它是JAVA EE 6中的一项子规范,通过注解的方式用来对 Java B...

2019-06-03 18:38:07 1144 1

原创 Dubbo的多协议、多Registry、服务分组、多版本、分组聚合(四)

1、参考 多协议:http://dubbo.apache.org/en-us/docs/user/demos/multi-protocols.html 多Registry:http://dubbo.apache.org/en-us/docs/user/demos/multi-registry....

2019-05-31 19:38:47 823 0

原创 Dubbo的Provider直连、只定阅、静态服务(三)

1、参考 Provider直连:http://dubbo.apache.org/en-us/docs/user/demos/explicit-target.html 只定阅:http://dubbo.apache.org/zh-cn/docs/user/demos/subscribe-only...

2019-05-31 16:33:23 223 0

原创 Dubbo的线程模型(三)

1、参考 线程模型:http://dubbo.apache.org/en-us/docs/user/demos/thread-model.html 2.1、线程模型 官网示意图: 我个人觉得这个图可能画错了,左边的Proxy与Client是不是应该倒换一下。 关于线程模型的几个点: ...

2019-05-30 20:13:40 84 0

原创 Dubbo的启动检查、容错与负载均衡(二)

1、参考 启动检查:http://dubbo.apache.org/en-us/docs/user/demos/preflight-check.html 容错:http://dubbo.apache.org/en-us/docs/user/demos/fault-tolerent-strate...

2019-05-29 10:21:49 774 2

原创 Dubbo快速开始与依赖(一)

1、参考 快速开始:http://dubbo.apache.org/en-us/docs/user/quick-start.html 依赖:http://dubbo.apache.org/en-us/docs/user/dependencies.html Dubbo官方文档提供了一个最简单的...

2019-05-23 20:00:43 2705 0

原创 Java NIO AIO介绍、示例及性能分析

参考:http://tutorials.jenkov.com/java-nio/index.html 1、Java NIO Tutorial NIO最早出现在Java 1.4版本中,从那个时候开始,Java至少有两套可用的IO方面的API集,一套是标准的,另一套就是NIO,两者的工作原理不同。...

2019-04-12 17:52:10 2414 0

原创 LinkedBlockingDeque应用场景

BlockingDeque是多线程双头队列接口,LinkedBlockingDeque是其一种实现。 Deque的特点是可以同时在队列的两头put、take元素。 在TCP协议中,数据报有一个URG指针。正常情况下,接收者按数据包到达本机的顺序处理,而对于设置URG标志的数据报则会优先处理。 ...

2019-04-02 23:51:26 1194 0

原创 DelayQueue实现原理及应用场景分析

DelayQueue基本原理 DelayQueue是一个没有边界BlockingQueue实现,加入其中的元素必需实现Delayed接口。当生产者线程调用put之类的方法加入元素时,会触发Delayed接口中的compareTo方法进行排序,也就是说队列中元素的顺序是按到期时间排序的,而非它们进...

2019-04-02 19:49:24 5168 0

原创 Docker容器数据持久化

参考:https://docs.docker.com/storage/ 默认情况下,container内部新创建文件或者修改文件,结果会保存在container的可读写层中,这意味着: 当container消失时,与container一体的可读写层也一并消失,数据并没有持久化。并且,当一个co...

2019-03-25 13:24:20 3797 0

原创 Docker image 多阶构建(multstage build)

参考:https://docs.docker.com/develop/develop-images/multistage-build/ 背景 过大的image占用更多的磁盘空间,push或者pull操作时占用更多的网络带宽,花费更长的时间。大规模的部署过程可能需要数个小时,大部分时间浪费在im...

2019-03-24 22:52:33 2063 0

原创 iptables命令学习笔记

NAME iptables - IPV4数据包过滤与NAT管理工具 SYNOPSIS iptables [-t table] -[AD]chain rule-specificat[options]iptables [-t table] -Ichain [rulenum] rule-speci...

2019-03-23 14:54:31 367 0

原创 基于GFS的Hadoop实现原理分析

1、摘要 一个面向数据密集型应用的可伸宿、分布式文件系统。 使用廉价服务器实现高容错特性,注意是廉价服务器,不是昂贵的普通人一辈子工资买不起、没见过的特制服务器。 同时请注意是容错,不是避免错误的发生。 实现大量客户端并发访问的高性能。 2、介绍 与一般的分布式文件系统在概念上的区别: ...

2019-03-19 21:16:09 1887 0

原创 Ubuntu 16.04安装Zimbra邮件服务器

1、环境 用VirtualBox创建虚拟机。 操作系统:Ubuntu 16.04,最小化安装操作系统,不要安装DNS服务器、邮件服务器等组件,否则在安装Zimbra之前需要手动关闭掉相关服务。 内存:1G。Zimbra要求单机安装内存不少于8G,没那么多内存,只安装必需组件,也够用 磁盘:...

2019-03-16 21:50:01 4185 1

原创 Hibernate 连接池配置配置

1、Hibernate内置连接池 hibernate.cfg.xml文件内容: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-config...

2019-02-28 11:52:04 966 0

原创 Hibernate开发环境搭建与测试

1、环境 开发环境: Eclipse Java EE IDE for Web Developers. Version: 2018-09 (4.9.0) Build id: 20180917-1800 Java运行时环境:Java SE 18.3,构建号10.0.2 mysql serve...

2019-02-26 19:53:11 148 0

原创 Servlet Session属性监听器深入探索

Servlet关于对象属性监听器,接口有三类:HttpSessionAttributeListener、ServletContextAttributeListener、ServletRequestAttributeListener。每种接口有三个方法attributeAdded、attribute...

2019-02-02 18:22:18 338 0

原创 Session的线程安全问题及有效性问题

1、线程安全问题 Session接口的相关实现由Tomcat容器提供,本身保证线程安全。但Session中保存的对象,其线程安全当然要由开发者保证。线程安全问题隐蔽、偶发,出了问题不好定位修正,一定要注意线程安全问题。通常,通过如下代码创建或者取得Session引用: HttpSession ...

2019-02-01 16:19:47 917 0

原创 Java设计模式之访问者模式

1、概念 访问者模式涉及两个角色,一个是访问者,另一个是被访问的资源。 访问者有多个具体的实现,资源也有多个具体的实现。 访问者与资源可以有多种组合,假如有三种类型的访问者与三种类型的资源,则它们的组合方式就有3 * 3 =  9种。 访问者解决的问题就是每种组合都能产生不同的行为。 2...

2019-01-22 16:57:31 1300 0

原创 Java设计模式之模板模式

从名字上看模板模式与元型模式有点像,但实际上它们有很大的不同。 元型模式是创建系列中的模式,它的实现是先为类创建一个实例,然后对这个实例进行初化,并当成是元型。以后再需要这个类的实例时,不再是从头开始new,而是从已有的元型clone。当然,元型可能不只一个,这个时候就要用集合类进行管理了,在c...

2019-01-21 19:16:32 72 0

原创 Java设计模式之空对象模式

空对象模式很简单,不怎么重要。一般与工厂模式结合使用。 工厂根据用户提供的条件创建具体的类,如果用户提供的条件工厂都不满足,那么就创建一个默认实现而不是返回null,这样的话程序还是可以继续运行下去。 示例代码: package com.zhangxf.nullobject; // 电脑...

2019-01-21 18:43:36 107 0

原创 Java设计模式之状态模式与策略模式

1、概念 应用场景:一个对像处于不同的状态,调用相同的方法时产生不同的行为。 目的:将对象本身的表示与对象状态的变迁逻辑解耦。 角色:状态角色、上下文角色。状态代表上下文所处的状态,上下文为状态中方法的实现提供支持。 实现方法:为状态定义抽象类,其中包含对上下文对象的引用,以便调用上下文的...

2019-01-21 18:15:20 1483 0

原创 Java设计模式之观察者模式

观察者模式原理很简单,当被观察者发生某个消息时,由观察者调用注册过的观察者的某个方法,将消息通知给观察者。 这也可以说是一种发布定阅模式。Java JDK为实现观察者模式提供了相关的接口、抽象类 有如下场景,发布者可以讲笑话、唱歌、讲故事,定阅者接收以上信息。可以有多个发布者、多个定阅者,并且...

2019-01-21 14:58:58 60 0

原创 Java设计模式这备忘录模式

备忘录模式是一种行为模式,用来记录的中间状态,在需要时使对象恢复到某个中间状态。 我们在写代码时,发现代码结构不理想或者出错,恢复到过去的某种状态就是这种情况,代码如下: package com.zhang.memento; import java.util.ArrayList; impo...

2019-01-18 16:56:12 79 0

原创 Java设计模式之中介者模式

比如下五子棋,选手与选手之间通过“棋盘”交互的,而不是彼此之间直接交互。两个选手就是参与通信的角色,而棋盘就是中介者,它要记录选手共用的棋盘。代码如下: package com.zhangxf.mediator; import java.util.Scanner; // 选手类 class...

2019-01-17 21:39:20 1590 0

原创 Java设计模式之迭代器模式

迭代器用来按某种顺序取出集合中的元素。代码: package com.zhangxf.iterator; // 迭代器接口 interface MyIteratorInf<T> { public boolean hasNext(); public T nex...

2019-01-17 15:32:26 139 0

提示
确定要删除当前文章?
取消 删除