自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I want to know a little more.

一点一点的进步。。。

  • 博客(41)
  • 资源 (3)
  • 收藏
  • 关注

原创 八、Nginx工作线程

nginx是以多进程的方式来工作的nginx是以多进程的方式来工作的。nginx在启动后,会有一个master进程和多个worker进程。 master进程主要用来管理worker进程:包含:1、接收来自外界的信号,向各worker进程发送信号。2、监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。而基本的网络事...

2018-06-30 19:29:33 1915

原创 三、Linux查看物理CPU个数、核数、逻辑CPU个数

Linux查看物理CPU个数、核数、逻辑CPU个数CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数查看CPU信息(型号)[root@AAA ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 24 Intel(R) Xeo...

2018-06-25 14:15:55 338

原创 六、MVCC

1. MVCC简介1.1 什么是MVCCMVCC是一种多版本并发控制机制。1.2 MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用. 大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁,使用MVCC,...

2018-06-24 18:26:03 169

原创 一、Eclipse导入GitHub项目

以https://github.com/xiongyouqiang/gd-rpc 这个开源的rpc项目为演示用例通过Eclipse导入git项目 复制项目的git路径 Eclipse打开 Git Repostitories 视图  弹出show view窗口 选择ok ,进入git repositories 视图窗口 我这里已经导入从...

2018-06-23 10:07:07 10324

原创 二十七、JAVA四种引用

Java四种引用包括强引用,软引用,弱引用,虚引用。 强引用:只要引用存在,垃圾回收器永远不会回收Object obj = new Object();//可直接通过obj取得对应的对象 如obj.equels(new Object());而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放掉,这也是我们经常所用到的编码形式。...

2018-06-23 09:34:11 200

原创 二十六、ThreadLocal详解

Java并发编程:深入剖析ThreadLocal  想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。  以下是本文目录大纲:  一.对ThreadLocal的理解  二.深入解析Thre...

2018-06-23 09:20:21 250

原创 五、三次握手和四次挥手

首先,客户端与服务器均处于未连接状态,并且是客户端主动向服务器请求建立连接:客户端将报文段中的SYN=1,并选择一个seq=x,(即该请求报文的序号为x)  将这个报文发送到服务器。此时,客户端进入同步已发送状态(SYN-SEND).SYN报文段不能携带数据,但是要消耗掉一个序号。服务器收到请求报文后,若同意建立连接,则回复报文中,SYN=1,ACK=1,并选择一个seq = y,且报文中...

2018-06-21 22:21:03 123

原创 二十五、SpringMVC执行流程

1、 用户发送请求至前端控制器DispatcherServlet2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet调用HandlerAdapter处理器适配器5、 HandlerAdapte...

2018-06-21 22:17:19 107

原创 二十四、JAVA动态代理和CGLIB动态代理

一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP 3、如果目标对象没有实现了接...

2018-06-21 22:10:07 121

原创 二十三、Java中异常的分类

Java中异常的分类所有异常,都继承自java.lang.Throwable类。Throwable有两个直接子类,Error类和Exception类。ExceptionException则可使从任何标准Java库的类方法,自己的方法以及运行时任何异常中抛出来的基类型。异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种:RuntimeExce...

2018-06-21 21:39:27 355

原创 二十二、Spring事务的传播特性

Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播,即协调已经有事务标识的方法之间的发生调用时的事务上下文的规则(是否要有独立的事务隔离级别和锁) 概述当我们调用一个基于Spring的Service接口方法(如UserService#addUser())时,它将运行于Spring管理的事务 环境中,...

2018-06-21 21:24:24 161

原创 二、ES运行报错

ElasticSearch Root身份运行2018年01月02日 17:55:03阅读数:1753如果以root身份运行将会出现以下问题,这个错误,是因为使用root用户启动elasticsearch,elasticsearch是不允许使用root用户启动的[root@iZbp1epx1ncetamddfjnxwZ bin]# ./elasticsearch[2018-01-02...

2018-06-21 14:06:20 748

原创 八、全文搜索引擎 Elasticsearch 入门教程

全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST ...

2018-06-21 14:05:19 2091

原创 二十一、ConcurrentHashMap的1.7和1.8对比

ConcurrentHashMap在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap,为了对ConcurrentHashMap有更深入的了解,本文将对ConcurrentHashMap1.7和1.8的不同实现进行分析。1.7实现数据结构jdk1.7中采用Segment + HashEntr...

2018-06-13 17:07:15 154

原创 七、REDIS主从复制原理及高可用

redis主从复制过程:当配置好slave后,slave与master建立连接,然后发送sync命令。无论是第一次连接还是重新连接,master都会启动一个后台进程,将 数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master就发送文件给slave,slave将 文件保存到硬盘上,再加载到内存中,接着master就会把缓存的命令转发给slav...

2018-06-13 16:58:31 108

原创 十九、BIO、NIO、AIO区别于理解

 IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO     在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒绝请求,...

2018-06-13 16:56:43 128

原创 五、MySQL主从复制原理

MySQL主从复制原理、半同步操作步骤及原理标签(空格分隔): mysql1.1 企业Linux运维场景数据同步方案1.1.1 文件级别的异机同步方案1、scp/sftp/nc 命令可以实现远程数据同步。 2、搭建ftp/http/svn/nfs 服务器,然后在客户端上也可以把数据同步到服务器。 3、搭建samba文件共享服务,然后在客户端上也可以把数据同步到服务器。 http://taokey....

2018-06-13 15:54:25 370

原创 六、Tomcat集群

TOMCAT集群 目录 TOMCAT集群 1 1 集群 1 1.1 什么是集群 1 1.2 集群的特性 1 1.3 集群的分类 1 1.4 TOMCAT集群配置的优缺点 2 1.5 APACHE+TOMCAT 2 1.6 环境说明 2 2 软件安装 3 2.1 安装说明 3 2.2 JDK安装 3 2.3 APACHE安装 4 2.4 TOMCAT安装 4 3 集群配置 6 3.1 APACHE+...

2018-06-13 13:00:28 231

原创 五、HTTP/AJP Connector、Bio/Nio/Apr性能对比

Connector初始化/启动的时候,将初始化/启动内部的ProtocolHandler。其实ProtocolHandler只是个接口ProtocolHandler的UML图(以下这些类在org.apache.coyote包下)创建Connector对象时,Connector的构造函数内会根据server.xml的Connector标签的配置创建ProtocolHandler(默为Ht...

2018-06-13 12:50:17 1352

原创 五、电脑来电自动开机方法设置

1.首先进入BIOS(F1;F2;或者DEL)的设置主界面,选择[POWER MANAGEMENT SETUP],再选择[PWR Lost Resume State],这一项有三个选择项。选择[Keep OFF]项,代表停电后再来电时,电脑不会自动启动。  选择[Turn On]项,代表停电后再来电时,电脑会自动启动。  选择[Last State],代表停电后再来电时,电脑恢复到停电前电脑的...

2018-06-13 10:53:13 35524

原创 二十、Synchronized实现原理

记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。诚然,随着Javs SE ...

2018-06-12 19:04:54 164

原创 十八、JAVA并发编程相关

一、前言借用Java并发编程实践中的话"编写正确的程序并不容易,而编写正常的并发程序就更难了",相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作的顺序是不可预期的,本文算是对多线程情况下同步策略的一个一个简单介绍。二、 什么是线程安全问题线程安全问题是指当多个线程同时读写一个状态变量,并且没有任何同步措施时候,导致脏数据或者其他不可预见...

2018-06-07 18:21:00 121

原创 二、Linux大文件删除

在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何Linux命令行编辑器 去打开这些文件。那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空文件内容的方法。注意: 由于再Linux中一切皆文件,你需要时刻注意,确保你将要清空的文件不是重要的用户文件或者系统文件。清空重要的系统文件或者配置文件可能会引发严重的应用失败或者系统错误。提示:在下面的...

2018-06-07 18:09:22 1536

原创 三、可靠消息服务

人们一般用MQ只是实现了最大努力通知模型。我们最近尝试实现一种事务消息解决方案。接上文:分布式事务?No, 最终一致性 - 知乎专栏我们希望这个方案是轻量级的,能实际解决目前业务痛点。本文几乎看不到任何理论分析,只谈做什么,怎么做。因为涉及到一些内部资料,有所省略。实现事务消息核心是需要有一个支持消息重试的MQ。经调研,我厂有个自研的基于Redis的延时MQ服务。我们暂且叫他Del...

2018-06-07 14:02:13 2691

原创 七、分布式事务

本文对比 二阶段事务、最大努力交付以及消息最终一致性,并给出部分解决方案,最终一致性方案参考阿里RockMQ事务消息:http://blog.csdn.net/chunlong...)项目git地址:https://github.com/vvsuperman...一 2阶段事务分布式系统最终一致性有N种方案,比如2PC(2阶段事务) ,以及三段提交等等,但开销较大,实现起来复杂,比...

2018-06-07 14:01:35 137

原创 四、MySql慢查询

一、简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。二、参数说明slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)long_query_time 查询超过多少秒才记录三、设置步骤1.查看慢查...

2018-06-06 11:50:10 127

原创 二、ZooKeeper和CAP理论及一致性原则

一、CAP理论概述分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾。  ①C:Consistency,一致性,数据一致更新,所有数据变动都是同步的。  ②A:Availability,可用性,系统具有好的响应性能。  ③P:Partition tolerance,分区容错性。因此,将精力浪费在思考如何设计能满足三者的完美系统上是愚钝的,应该根据应用场景进行...

2018-06-04 20:41:37 513

原创 四、专业术语

幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品使用约支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...

2018-06-04 20:07:32 181

原创 十五、ReenTrantLock可重入锁(和synchronized的区别)

ReenTrantLock可重入锁(和synchronized的区别)总结可重入性:从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。 锁的实现:Synchronized是依赖于JVM实现的,而ReenTran...

2018-06-04 20:07:21 186

原创 十六、JAVA中类锁和对象锁

 Java的锁分为对象锁和类锁。  1. 当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内针对该对象的操作只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。  2. 然而,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。  3. 尤其关键的是,当一个线程访问o...

2018-06-04 20:07:14 215

原创 十七、volatile和synchronized区别

1、锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。  互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享数据。  可见性要更加复杂一些,它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的 —— 如果没有同步机制提供的这种可见性保证,线程看到的共享...

2018-06-04 20:07:05 76

原创 一、Zookeeper介绍

1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户2.ZooKeeper提供了什么?1)文件系统2)通知机制3.Zookeeper文件系统每个子目录项如 NameSer...

2018-06-03 20:09:07 193

原创 二、Dubbo支持的协议

    Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的。下面我们就针对Dubbo的每种协议详解讲解,以便我们在实际应用中能够正确取舍。1.dubbo协议缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。 连接个数:单连接 连接方...

2018-06-03 19:46:24 266

原创 十四、Hessian的使用以及理解

Hessian的使用以及理解Hessian版本:3.1.5将包括如下的内容:Hessian的基本使用Hessian的原理Hessian和Spring 的结合使用扩展Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。简...

2018-06-03 19:42:58 179

原创 十三、Mina-基于JAVA-NIO的网络通讯框架

Mina是什么         Mina是一个基于NIO的网络框架,使用它编写程序时,可以专注于业务处理,而不用过于关心IO操作。不论应用程序采用什么协议(TCP、UDP)或者其它的,Mina提供了一套公用的接口,来支持这些协议。目前可以处理的协议有:HTTP, XML, TCP, LDAP, DHCP, NTP, DNS, XMPP, SSH, FTP... 。从这一点来说,Mina不仅仅是一个...

2018-06-03 19:33:28 2654

原创 一、Dubbo介绍与使用

1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者...

2018-06-03 19:08:24 186

原创 十二、JAVA-NIO

Java NIO 由以下几个核心部分组成:1、Buffer2、Channel3、SelectorBuffer和Channel在深入浅出NIO之Channel、Buffer一文中已经介绍过,本文主要讲解NIO的Selector实现原理。之前进行socket编程时,accept方法会一直阻塞,直到有客户端请求的到来,并返回socket进行相应的处理。整个过程是流水线的,处理完一个请求,才能去获取并处理...

2018-06-03 19:02:22 201

原创 四、TCP与UDP比较

TCP UDPTCP与UDP基本区别  1.基于连接与无连接  2.TCP要求系统资源较多,UDP较少;   3.UDP程序结构较简单   4.流模式(TCP)与数据报模式(UDP);   5.TCP保证数据正确性,UDP可能丢包   6.TCP保证数据顺序,UDP不保证   UDP应用场景:  1.面向数据报方式  2.网络数据大多为短消息   3.拥有大量Client  4...

2018-06-03 14:41:54 279

原创 四、基于数据库实现分布式锁

一、基于数据库表要实现分布式锁,最简单的方式可能就是直接创建一张锁表,然后通过操作该表中的数据来实现了。当我们要锁住某个方法或资源的时候,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。创建这样一张数据库表:CREATE TABLE `methodLock` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `method...

2018-06-03 14:38:09 259

原创 三、基于ZK实现分布式锁

一、分布式锁介绍        分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。二、架构介绍        在介绍使用Zookeeper实现分布式锁之前,首先看当前的系统架构图                        解释: 左边的整个区域表示一个Zookeeper集群,locker是Zookeeper的一个持久节点,node_1、no...

2018-06-03 14:34:28 6638

C程序设计(第三版).谭浩强.清华大学出版社.zip

C程序设计(第三版).谭浩强.清华大学出版社pdf,因为看有些地方下载需要积分太多,不利于该资源的传播,所以重新压缩了下

2019-07-19

同济大学线性代数.zip

同济大学线性代数高清pdf。

2019-07-01

SSH整合JAR(附带一些开发常用的jar)

适合新手开发一些小项目,里面是开发必须的jar,没有多余的。

2015-04-02

空空如也

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

TA关注的人

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