- 缓存不仅加快了IO,还可减少原始数据的计算工作。 缓存系统一般设计简单,功能单一,所以Redis吞吐量能是MySQL几倍~几十倍,对于互联网读多写少的高并发场景已不可或缺。 虽然简单好用,但是如果姿势不对,就会造成不必要的损失。 不要把Redis当数据库 很多人不仅把 redis 当缓存,更是把Redis当做数据库使用。很多因为Redis中数据消失导致业务逻辑错... 缓存不仅加快了IO,还可减少原始数据的计算工作。 缓存系统一般设计简单,功能单一,所以Redis吞吐量能是MySQL几倍~几十倍,对于互联网读多写少的高并发场景已不可或缺。 虽然简单好用,但是如果姿势不对,就会造成不必要的损失。 不要把Redis当数据库 很多人不仅把 redis 当缓存,更是把Redis当做数据库使用。很多因为Redis中数据消失导致业务逻辑错...
- 1 概述 1.1 zookeeper 简介 中间件,提供协调服务作用于分布式系统,发挥其优势,可以为大数据服务支持 Java, 提供 Java 和 C语言的客户端 API 1.2 什么是分布式系统 很多台计算机组成一个整体,一个整体一致对外并且处理同一请求内部的每台计算机都可以相互通信(REST/RPC)客户端到服务端的一次请求到响应结束会经历多台计算机 1.... 1 概述 1.1 zookeeper 简介 中间件,提供协调服务作用于分布式系统,发挥其优势,可以为大数据服务支持 Java, 提供 Java 和 C语言的客户端 API 1.2 什么是分布式系统 很多台计算机组成一个整体,一个整体一致对外并且处理同一请求内部的每台计算机都可以相互通信(REST/RPC)客户端到服务端的一次请求到响应结束会经历多台计算机 1....
- 简介 Redisson 是一个高级的分布式协调 Redis 客服端,能帮助用户在分布式环境中轻松实现一些 Java 的对象 (Bloom filter, BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List, ListMultimap, Queue, Blockin... 简介 Redisson 是一个高级的分布式协调 Redis 客服端,能帮助用户在分布式环境中轻松实现一些 Java 的对象 (Bloom filter, BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List, ListMultimap, Queue, Blockin...
- 什么是领域事件?什么时候并且为什么要使用领域事件? •学习如何将领域事件建模成对象,何时应该为领域事件创建唯一的身份标识。 •学习一个轻量级的发布-订阅[Gamma et al]模式。 •学习哪些组件用于发布事件,哪些组件用于订阅事件。 •学习为什么我们需要一个事件存储.如何实现事件存储、如何使用事件存储。 •学习S aaSOvation团队是如何通过不同的方式将领域事... 什么是领域事件?什么时候并且为什么要使用领域事件? •学习如何将领域事件建模成对象,何时应该为领域事件创建唯一的身份标识。 •学习一个轻量级的发布-订阅[Gamma et al]模式。 •学习哪些组件用于发布事件,哪些组件用于订阅事件。 •学习为什么我们需要一个事件存储.如何实现事件存储、如何使用事件存储。 •学习S aaSOvation团队是如何通过不同的方式将领域事...
- Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。曾经的Sevlet时代(JSP),一旦用户与服务端交互,Tomcat就会为用户创建一个session,同时前端会有一个jsessionid,每次交互都会携带。 服务器只要在接到用户请求时候,就可以拿到jsessionid, 并根据这个ID在内存中找到对应的会话session,当拿到... Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。曾经的Sevlet时代(JSP),一旦用户与服务端交互,Tomcat就会为用户创建一个session,同时前端会有一个jsessionid,每次交互都会携带。 服务器只要在接到用户请求时候,就可以拿到jsessionid, 并根据这个ID在内存中找到对应的会话session,当拿到...
- zookeeper Leader 发送了 commit 消息,但是所有的 follower 都没有收到这条消息,Leader 就挂了,后续会怎么处理? 看谁成为leader 如果是前一个leader的话视为提交成功 zookeeper Leader 发送了 commit 消息,但是所有的 follower 都没有收到这条消息,Leader 就挂了,后续会怎么处理? 看谁成为leader 如果是前一个leader的话视为提交成功
- 集成Redis 首先在pom.xml中加入需要的redis依赖和缓存依赖 <!-- 引入redis依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-red... 集成Redis 首先在pom.xml中加入需要的redis依赖和缓存依赖 <!-- 引入redis依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-red...
- 上一篇我们已经讲了是什么,为什么的问题,从我们一些简单的实例中分析了分布式的一些优势,以及一些现有的,基于scrapy的分布式的框架。接下来就是分享我工作中使用的框架基本思想 源码 我们先从scrapy的Spider源码来看 def from_crawler(cls, crawler, *args, **kwargs): spider = cls(*args, *... 上一篇我们已经讲了是什么,为什么的问题,从我们一些简单的实例中分析了分布式的一些优势,以及一些现有的,基于scrapy的分布式的框架。接下来就是分享我工作中使用的框架基本思想 源码 我们先从scrapy的Spider源码来看 def from_crawler(cls, crawler, *args, **kwargs): spider = cls(*args, *...
- 写在前面 最近迷上了读书,先定个flag,每年阅读50本书。 读书,那必然要读好书,好书哪里找,豆瓣少不了,但是要不断的翻网页,这个事情感觉不是爬虫程序员能干出来的,作为梦想橡皮擦这样子的大佬,自然也不能做这么基础的翻网页动作,所以,必须写爬虫程序。 今天要爬取的核心为 https://book.douban.com/tag/?view=type&icn... 写在前面 最近迷上了读书,先定个flag,每年阅读50本书。 读书,那必然要读好书,好书哪里找,豆瓣少不了,但是要不断的翻网页,这个事情感觉不是爬虫程序员能干出来的,作为梦想橡皮擦这样子的大佬,自然也不能做这么基础的翻网页动作,所以,必须写爬虫程序。 今天要爬取的核心为 https://book.douban.com/tag/?view=type&icn...
- 本篇主要介绍对于一个爬虫框架的思考和,核心部件的介绍,以及常规的思考方法: 猜想 我们说的爬虫,一般至少要包含几个基本要素: 1.请求发送对象(sender,对于request的封装,防止被封) 2.解析文档对象(将请求的网页当作是html文档还是字符串) ... 本篇主要介绍对于一个爬虫框架的思考和,核心部件的介绍,以及常规的思考方法: 猜想 我们说的爬虫,一般至少要包含几个基本要素: 1.请求发送对象(sender,对于request的封装,防止被封) 2.解析文档对象(将请求的网页当作是html文档还是字符串) ...
- 转载主注明出处:http://www.cnblogs.com/codefish/p/4968260.html 在爬虫中,我们遇到比较多需求就是文件下载以及图片下载,在其它的语言或者框架中,我们可能在经过数据筛选,然后异步的使用文件下载类来达到目的,Scrapy框架中本身已经实现了文件及图片下载的文件,相当的方便,只要几行代码,就可以轻松的搞定下载。下面我将演示如... 转载主注明出处:http://www.cnblogs.com/codefish/p/4968260.html 在爬虫中,我们遇到比较多需求就是文件下载以及图片下载,在其它的语言或者框架中,我们可能在经过数据筛选,然后异步的使用文件下载类来达到目的,Scrapy框架中本身已经实现了文件及图片下载的文件,相当的方便,只要几行代码,就可以轻松的搞定下载。下面我将演示如...
- 写在前面 对于分布式爬虫学习来说,或者对于技术学习来说,没有捷径,两条路可以走,第一自己反复练习,孰能生巧;第二看别人分享的代码反复学习别人的写法,直到自己做到。 上篇博客相信你已经可以简单的将分布式爬虫运行起来,你可能会发现分布式爬虫是思想上的一个调整,从代码的写法上并没有过多的改变,但是要知道我们是使用scrapy-redis直接构建的分布式爬虫,相当... 写在前面 对于分布式爬虫学习来说,或者对于技术学习来说,没有捷径,两条路可以走,第一自己反复练习,孰能生巧;第二看别人分享的代码反复学习别人的写法,直到自己做到。 上篇博客相信你已经可以简单的将分布式爬虫运行起来,你可能会发现分布式爬虫是思想上的一个调整,从代码的写法上并没有过多的改变,但是要知道我们是使用scrapy-redis直接构建的分布式爬虫,相当...
- 写完了一个爬虫,最重要的就是测试,然后各种Debug,下面我用三种方式来介绍我总结出来的Debug,由浅入深的深入里面的细节部分。 初级的Debug 一般来说,当选中了一个页面,最重要的逻辑一般都包含在xpath表达式里面,所以,在这里我们可以直接scrapy shell的方式来去验证我的xpath是否正确。 ... 写完了一个爬虫,最重要的就是测试,然后各种Debug,下面我用三种方式来介绍我总结出来的Debug,由浅入深的深入里面的细节部分。 初级的Debug 一般来说,当选中了一个页面,最重要的逻辑一般都包含在xpath表达式里面,所以,在这里我们可以直接scrapy shell的方式来去验证我的xpath是否正确。 ...
- [2016-11-21更新]关于demo代码,请参考: ===>scrapy_demo<=== 放假这段时间好好的思考了一下关于Scrapy的一些常用操作,主要解决了三个问题 如何连续爬取 数据输出方式 数据库链接 如何连续爬取 思考:要达到连续爬取,逻辑上无非从以下的方向着手 预加载需要爬取的列表,直接到这个列表都处理完,相应的... [2016-11-21更新]关于demo代码,请参考: ===>scrapy_demo<=== 放假这段时间好好的思考了一下关于Scrapy的一些常用操作,主要解决了三个问题 如何连续爬取 数据输出方式 数据库链接 如何连续爬取 思考:要达到连续爬取,逻辑上无非从以下的方向着手 预加载需要爬取的列表,直接到这个列表都处理完,相应的...
- 本次探讨的主题是规则爬取的实现及命令行下的自定义参数的传递,规则下的爬虫在我看来才是真正意义上的爬虫。 我们选从逻辑上来看,这种爬虫是如何工作的: 我们给定一个起点的url link ,进入页面之后提取所有的ur 链接,我们定义一个规则,根据规则(用正则表达式来限制)来提取我们想要的连接形式,然后爬取这些页面,进行一步的处理(数据提取或者其它动作),然后循环上... 本次探讨的主题是规则爬取的实现及命令行下的自定义参数的传递,规则下的爬虫在我看来才是真正意义上的爬虫。 我们选从逻辑上来看,这种爬虫是如何工作的: 我们给定一个起点的url link ,进入页面之后提取所有的ur 链接,我们定义一个规则,根据规则(用正则表达式来限制)来提取我们想要的连接形式,然后爬取这些页面,进行一步的处理(数据提取或者其它动作),然后循环上...
上滑加载中