自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 提供线程内部的局部变量。可以通过 ThreadLocal 在同一线程,不同组件中传递公共变量

  ThreadLocal 类是用来提供线程内部的局部变量。这种变量在多线程环境下访问(get 和 set 方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。 ThreadLocal 实例通常来说都是 private static 类型的,用于关联线程和上下文。  作用  传递数据  提供线程内部的局部变量。可以通过 ThreadLocal 在同一线程,不同组件中传递公共变量。  线程并发  适用于多线程并发情况下。  线程隔离  每个线程的变量都是独立的,不会相互影响。  Thr

2021-03-11 22:19:39 201

原创 负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要

  Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。  Scheduler(调度器): 负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要  时,交还给引擎。  Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider

2021-03-11 22:18:15 499

原创 创建项目时,会在当前目录下新建爬虫项目的目录。

  在开始爬取之前,必须创建一个新的 Scrapy 项目。 进入您打算存储代码的目录中,运行下列命令:  注意:创建项目时,会在当前目录下新建爬虫项目的目录。  这些文件分别是:  scrapy.cfg : 项目的配置文件  quotes/ : 该项目的python模块。之后您将在此加入代码。 quotes/items.py : 项目中的item文件.  quotes/middlewares.py : 爬虫中间件、下载中间件(处理请求体与响应体)  quotes/pipelines.py : 项

2021-03-11 22:17:22 180

原创 对于有序数组,还可使用二分查找提高检索速度。

  1.1 为什么需要树这种数据结构  1) 数组存储方式的分析  优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。  缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 [示意图]  画出操作示意图:  2) 链式存储方式的分析  优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可,  删除效率也很好)。  缺点:在进行检索时,效率仍然较低,比如(检索某个值,需要从头节点开始遍历) 【示意

2021-03-11 22:16:18 237

原创 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致

  很多多线程是模拟出来的,真整的多线程是指有多个cpu,即多核,如服务器。如果是模拟出来的多线程,在一个cpu的情况下,同一个时间点,cpu只能执行一个代码,因为切换的快,所以就有同时执行的错觉。  ? @线程是独立的执行路径  ? @在程序运行时,即使自己没有创建线程,后台也会有多个线程,如主线程,gc线程  ? @在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序不能人为干预  ? @线程会带来额外的开销,如cpu调度时间,并发控制开销  ?

2021-03-11 22:15:14 605

原创 区别在于RecursiveAction任务没有返回值,RecursiveTask任务带有返回值。

  分而治之是一个有效的处理大数据的方法,著名的MapReduce就是采用这种分而治之的思路。简单的说,如果要处理1000个数据,但是我们不具备处理1000个数据的能力,只可以处理10个数据。我们可以将这个任务分成100份,每份处理10个,并将最后的结果进行合成,形成1000个数据的处理结果。  把一个大任务调用fork()方法分解为若干小的任务,把小的任务处理结果进行join()合并为大任务的结果。  ForkJoinPool线程池最常用的方法:  //向线程池提交一个ForkJoinTask任务

2021-03-11 22:13:40 261

原创 缩进的空格数不重要,只要相同层级的元素左对齐即可

  YAML 是 "YAML Ain‘t Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。  非常适合用来做以数据为中心的配置文件  1.2.2、基本语法  key: value;kv之间有空格  大小写敏感  使用缩进表示层级关系  缩进不允许使用tab,只允许空格  缩进的空格数不重要,只要相同层级的元素左对齐即可  ‘#‘表示注释  字

2021-03-11 22:11:28 155

原创 一个有 n 个结点的联通图的生成树是原图的极小连通子图

  一个有 n 个结点的联通图的生成树是原图的极小连通子图,生成树包含原图中的所有 n 个结点,并且有保持图连通的最少的边。  最小生成树的性质  1.容易想象,要保证n个节点联通,至少要有n-1条边,所以一个有n个节点的生成树必有n-1条边。  2. 在所有生成树中,最小生成树的权值之和是最小的。  3. 再添加任意一条边,都将造成回路。  MST性质  描述:假设N=(V,{E})是一个连通网,U是顶点集V的一个非空子集。若(u,v)是一条具有最小权值(代价)的边,其中u∈U,v∈V-U,则

2021-03-11 22:09:58 674

原创 通过不同的租户对流量进行隔离;更进一步可以通过网络 VPC 进行环境隔离;

  Serverless 应用引擎(SAE)基于神龙 + ECI + VPC + SLB + NAS 等 IaaS 资源,构建了一个 Kubernetes 集群,在此之上提供了应用管理和微服务治理的一些能力。它可以针对不同应用类型进行托管,比如 Spring Cloud 应用、Dubbo 应用、HSF 应用、Web 应用和多语言应用。并且支持 Cloudtoolkit 插件、云效 RDC / Jenkins 等开发者工具。在 Serverless 应用引擎上,零代码改造就可以把 Java 微服务的应用迁移到

2021-03-11 22:08:05 297 2

原创 如何通过 Serverless 提高 Java 微服务治理效率?

  在业务初期,因人手有限,想要快速开发并上线产品,很多团队使用单体的架构来开发。但是随着公司的发展,会不断往系统里面添加新的业务功能,系统越来越庞大,需求不断增加,越来越多的人也会加入到开发团队,代码库也会增速的膨胀,慢慢的单体应用变得越来越臃肿,可维护性和灵活性逐渐降低,维护成本越来越高。    微服务治理面临的挑战    在业务初期,因人手有限,想要快速开发并上线产品,很多团队使用单体的架构来开发。但是随着公司的发展,会不断往系统里面添加新的业务功能,系统越来越庞大,需求不断增加,越来越多的人

2021-03-11 22:06:39 93 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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