自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (1)
  • 收藏
  • 关注

转载 Spring事件机制详解

阅读目录一、前言 二、订阅/发布(观察者模式) 三、Spring类图分析 四、简单实现(实现ApplicationListener接口) 五、注解驱动@EventListener 六、异步事件 七、泛型支持 八、事件传播机制 九、事物事件@TransactionalEventListener 十、总结一、前言说来惭愧,对应Spring事件机制之前只知道实现 Appl...

2020-01-11 22:51:45 590

转载 [python] ThreadPoolExecutor线程池

初识Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在介绍线程同步的信号量机制的时候,举得例子是爬虫的例子,需要控制同时爬取的线程数,例子中创建了20个线程,而同时只允许3个线程在运行,但是20个线程都需要创建和销毁,线程的创建是需要消耗系统资源的,有没有更好的方案呢?其实只需要三个线程就行了,每个线程各分配一个任务,剩下的任务排队等待,当某个线程完成了任...

2018-07-05 13:42:44 10338 1

转载 Docker 核心技术与实现原理

提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。同样,由于项目的发展、功能的拆分以及各种奇怪的改名 PR,让我们再次理解 Docker 的的整体架构变得更加困难。虽然 Docker 目...

2018-06-11 20:25:19 553

转载 『浅入浅出』MySQL 和 InnoDB

『浅入浅出』MySQL 和 InnoDB06 AUG 2017 server mysql innodb database作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上使用非常广泛的 MySQL、PostgreSQL,但是一直以来也没有对数据库有一个非常清晰并且成体系的认知,所以最近两个月的时间看了几本数据库相关的书籍并且阅读了 MySQL 的官...

2018-06-10 13:48:17 415

转载 MySQL索引背后的数据结构及算法原理

作者 张洋 | 发布于 2011-10-18MySQL 索引 B树 优化摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于...

2018-06-07 18:44:17 203

转载 Web系统大规模并发——电商秒杀与抢购

【问底】徐汉彬:Web系统大规模并发——电商秒杀与抢购摘要:电商的秒杀和抢购,从技术的角度来说,会对Web系统产生巨大的考验。本期《问底》,徐汉彬将带大家关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因。【导读】徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设。  电商...

2018-05-23 17:56:48 346

转载 Nginx安装及配置详解

Nginx安装及配置详解nginx概述nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。这里主要通过三个方面简单介绍nginx反向代理负载均衡nginx特点1. 反向代理关于代理说到代理,首先我们要明确一个概念,所谓代理...

2018-04-27 11:43:34 280

转载 浅谈分布式消息技术:Kafka

Kafka的基本介绍Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。主要应用场景是:日志收集系统和消息系统。Kafka主要设计目标如下:以时间复杂度为O(1)的方...

2018-04-20 12:03:25 265

转载 Kafka全解析

一. ConceptsKafka is used for building real-time data pipelines and streaming apps分布式消息传递网站活跃数据跟踪日志聚合流式数据处理数据存储事件源……Kafka terminology 术语1.TopicsKafka maintains feeds of messages in categories called to...

2018-04-19 19:07:06 299

转载 单点登录原理与简单实现

一、单系统登录机制1、http无状态协议  web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求...

2018-04-19 12:22:23 184

转载 分布式锁的几种实现方式

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致...

2018-04-19 11:06:44 214

转载 Mysql InnoDB 排他锁

Mysql InnoDB 排他锁用法: select … for update;例如:select * from goods where id = 1 for update;排他锁的申请前提:没有线程对该结果集中的任何行数据使用排他锁或共享锁,否则申请会阻塞。for update仅适用于InnoDB,且必须在事务块(BEGIN/COMMIT)中才能生效。在进行事务操作时,通过“for update...

2018-04-19 10:23:42 685

转载 在IDEA中实战Git

工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程Git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七:小张获取小袁提交的分支场景八:...

2018-04-17 11:54:10 224

转载 Java并发之AQS详解

一、概述  谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!  类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。  以下是本文的目录大纲:概述框架...

2018-04-03 13:13:52 170

转载 多线程死锁的产生以及如何避免死锁

一、死锁的定义多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。下面我们通过一些实例来说明死锁现象。先看生活中的一个实例,2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥有2只筷子才能吃)。某一个时候,一个拿了左筷子,一人拿了右筷子,2个人都同...

2018-03-30 12:32:58 168

转载 volatile关键字的线程安全问题总结

简介volatile关键字保证了在多线程环境下,被修饰的变量在别修改后会马上同步到主存,这样该线程对这个变量的修改就是对所有其他线程可见的,其他线程能够马上读到这个修改后值. Thread的本地内存每个Thread都拥有自己的线程存储空间Thread何时同步本地存储空间的数据到主存是不确定的例子借用Google JEREMY MANSON 的解释,上图表示两个线程并发执行,而且代码顺序上为Thre...

2018-03-30 11:34:49 1867

转载 MySQL存储引擎之Myisam和Innodb总结性梳理

Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 MyISAMInnoDB构成上的区别:每个MyISAM在磁盘上存储成三个文件。第一个 文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩 展名为.MYD (MYData)。索引文件的扩 展名是.MYI (MYIndex)。基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,Inno...

2018-03-30 10:58:26 194

转载 十大经典排序算法

十大经典排序算法最强总结(含JAVA代码实现)最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的。所以我根据这几天看的文章,整理了一个较为完整的排序算法总结,本文中的所有算法均有JAVA实现,...

2018-03-28 16:38:39 229

转载 从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节

 最近去面试了几家公司,被问到hashCode的作用,虽然回答出来了,但是自己还是对hashCode和equals的作用一知半解的,所以决定把它们研究一下。以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals,缺没有覆盖hashCode,现在发现这是埋下了很多潜在的Bug!今天就来说一说hashCode和equals的作用。       先来试想一个场景,如果你想查找一个集合中...

2018-03-26 18:24:30 220

转载 Java面试题全集(下)

这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。12...

2018-03-26 11:16:13 141

转载 Java面试题全集(中)

这部分主要是与Java Web和Web Service相关的面试题。96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。补充:Sun Microsystems公司...

2018-03-26 11:11:46 180

转载 Java面试题全集(上)

2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补...

2018-03-24 14:31:16 442

转载 谈谈Java内存管理

对于一个Java程序员来说,大多数情况下的确是无需对内存的分配、释放做太多考虑,对Jvm也无需有多么深的理解的。但是在写程序的过程中却也往往因为这样而造成了一些不容易察觉到的内存问题,并且在内存问题出现的时候,也不能很快的定位并解决。因此,了解并掌握Java的内存管理是一个合格的Java程序员必需的技能,也只有这样才能写出更好的程序,更好地优化程序的性能。一. 背景知识根据网络可以找到的资料以及笔...

2018-03-24 14:23:53 147

转载 Dubbo入门---搭建一个最简单的Demo框架

Dubbo背景和简介Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。 缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护 垂直应用框架(MVC) 垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的...

2018-03-23 22:43:19 152

转载 TCP的三次握手(建立连接)和四次挥手(关闭连接)

TCP的三次握手(建立连接)和四次挥手(关闭连接)参照:http://course.ccniit.com/CSTD/Linux/reference/files/018.PDFhttp://hi.baidu.com/raycomer/item/944d23d9b502d13be3108f61 建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各...

2018-03-23 22:25:34 227

转载 nginx负载均衡的5种策略(转载)

nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。nginx的upstream目前支持的5种方式的分配1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 upstream backserver { server 192.168...

2018-03-23 21:36:45 387

转载 java内存、垃圾回收查看与分析

Java 内存查看与分析   首先使用 jps -l 查找当前所有的 Java 进程。jstat 命令jstat -gc pid 1000 或者 jstat -gc pid 1000 > out.txt: 每隔1000号码打印一次或导出 GC 的状态。S0C S0U:Survivor 0区的大小及使用情况S1C S1U:Survivor 1区的大小及使用情况EC EU:Eden 区的大小及使...

2018-03-23 21:24:34 6119 1

转载 NodeJS优缺点及适用场景讨论

概述:NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢?本文就个人使用经验对这些问题进行探讨。一. NodeJS的特点我们先来看看NodeJS官网上的介绍:Node.js is a platform built on Chrome’s JavaScript runtime for easily build...

2018-03-16 09:39:08 1099

转载 二叉树的常见方法及三种遍历方式 Java 实现

读完本文你将了解到:什么是二叉树 Binary Tree两种特殊的二叉树满二叉树完全二叉树满二叉树 和 完全二叉树 的对比图二叉树的实现用 递归节点实现法左右链表示法 表示一个二叉树节点用 数组下标表示法 表示一个节点二叉树的主要方法二叉树的创建二叉树的添加元素二叉树的删除元素二叉树的清空获得二叉树的高度获得二叉树的节点数获得某个节点的父亲节点二叉树的遍历先序遍历中序遍历后序遍历遍历小结总结一道笔...

2018-03-16 08:55:07 611

转载 Java NIO浅析

NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。那么NIO的本质是什么样的呢?它是怎样与事件模型结合来解放线程、提高系统吞吐的呢?本文会从传统的阻塞I/O和线程池模型面临的问题讲起,然后对比几种常见I/O模型,一步步分析...

2018-03-15 21:18:37 671

转载 高效的多维空间点索引算法 — Geohash 和 Google S2

引子每天我们晚上加班回家,可能都会用到滴滴或者共享单车。打开 app 会看到如下的界面:app 界面上会显示出自己附近一个范围内可用的出租车或者共享单车。假设地图上会显示以自己为圆心,5公里为半径,这个范围内的车。如何实现呢?最直观的想法就是去数据库里面查表,计算并查询车距离用户小于等于5公里的,筛选出来,把数据返回给客户端。这种做法比较笨,一般也不会这么做。为什么呢?因为这种做法需要对整个表里面...

2018-03-15 11:11:13 1173

转载 GeoHash核心原理解析

http://www.cnblogs.com/LBSer/p/3310455.html引子  机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。   饭饱之后机机开始反思了,地图后台如何根据自己所在位置查询来查询附近餐馆的呢?苦思冥想了半天,机机想出了个方法:计算所在位...

2018-03-15 09:49:14 162

翻译 pandas数据清洗,排序,索引设置,数据选取

Pandas数据格式SeriesDataFrame:每个column就是一个Series基础属性shape,index,columns,values,dtypes,describe(),head(),tail() 统计属性Series: count(),value_counts(),前者是统计总数,后者统计各自value的总数df.isnull() df的空值为True df.notnull() ...

2018-03-11 21:17:29 818

转载 【HTTP】GET传参最大长度的理解误区

GET传参最大长度的理解误区时间:2016-10-17 14:59:38作者:zhongxia原文地址:https://github.com/zhongxia245/blog/issues/35零、总结文章数据来源于网络,可能存在变动,但是原理是一样的。HTTP 协议 未规定 GET 和POST的长度限制GET的最大长度显示是因为 浏览器和 web服务器限制了 URI的

2018-01-16 10:23:11 2054

转载 Linux目录结构和常用命令

一、Linux目录结构你想知道为什么某些程序位于/bin下,或者/sbin,或者/usr/bin,或/usr/sbin目录下吗?例如,less命令位于/usr/bin目录下。为什么没在/bin中,或/sbin,或/usr/sbin目录中?所有这些目录之间有什么不同?在这篇文章中,让我们回顾一下Linux的文件系统结构,并理解各上层目录的含义。蓝色:表示目录青色:表示

2018-01-06 22:22:48 369

转载 linux命令之vi

vi编辑器是所有Unix及Linux系统下标准的编辑器,介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。在所有的命令执行前,先按Esc1、vi的基本概念   基本上vi可以分为三种状态,分别是命令模式(

2018-01-06 12:27:48 179

转载 数据库索引总结

简介1.说明  1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息。  2)索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率  3)索引在逻辑上和物理上都与相关的表和

2018-01-05 13:01:08 303

原创 oracle分页查询数据重复问题

现在公司做的管理系统中有很多数据,往往需要分页查询,以前系统中出现了分页数据重复的现象,起初以为是入的测试数据中有重复的,所以没有深入分析,今天重新入了新的数据,进行分页查询,发现大多数的页面都会存在与其他页面的重复的数据,就开始排查,先从代码上进行,没有问题,构造的sql语句也没有问题,将sql语句直接在oracle上运行返回结果一比较,发现oracle返回的分页数据本身都是有重复数据的,这下算

2017-12-21 11:15:40 677

转载 机器学习中的范数规则化之(二)核范数与规则项参数选择

详细讲解各种范数的意义以及在机器学习中的各种应用场景

2017-12-19 20:37:55 247

转载 机器学习中的范数规则化之(一)L0、L1与L2范数

通俗易懂的讲解,深入浅出,很好,再次感谢zouxy09博主

2017-12-19 20:32:49 176

遥感复习资料

遥感复习资料

2012-11-15

空空如也

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

TA关注的人

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