自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 高性能网站架构之负载均衡 Nginx+tomcat+redis实现tomcat集群

上一篇文章给大家讲了Nginx的安装,那么这篇文章为大家讲一下Nginx+Tomcat实现负载均衡。          先说说为什么要用ngnix 做负载均衡,其实做负载均衡的最出名的莫过于F5了,F5是在硬件设施,动辄几万,几十万,几百万不等,对于一般的小公司来说,这也是一笔很大的开销,所以能尽...

2016-01-20 18:39:32

阅读数 12136

评论数 9

原创 高性能网站架构之负载均衡 Nginx的安装

环境准备          如果要使用Nginx的常用功能,那么首先需要确保该Linux操作系统上至少安装了如下软件。Linux上有许多软件安装方式,yum只是其中比较方便的一种,其他方式这里不再赘述。这些软件均采用该方式安装       (1)GCC编译器        GCC(GNU Com...

2016-01-19 12:52:48

阅读数 4392

评论数 6

原创 高性能网站架构之负载均衡 Nginx的简介

什么是Nginx          Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。事实...

2016-01-19 12:37:57

阅读数 4365

评论数 6

原创 Linux下Tomcat中catalina.out文件切割

最近由于系统在生产环境中出现了一个bug,自己在开发环境中复现不出来,所以需要查日志,于是就logs下找日志了。使用命令 vim catalina.out 命令查看,但是怎么也打不开,然后我看了看文件的属性,我去,吓坏我了, 8个多G,怎么这么大,后来想想确实有可能,我们在服务器上部署了三个系统,...

2016-01-14 18:08:48

阅读数 6569

评论数 3

原创 高性能网站架构之缓存篇--Redis使用配置端口转发

最近在学习redis,由于财力有限,所以只能选择虚拟机练练手,本人使用的vmware 11,安装的系统是centos6.7,redis版本是3..0.2 。如何安装请参考本人上一篇文章。          安装完redis以后,我们是不是要迫不及待的想使用一下呢。那么我们要在程序中对redis进行...

2016-01-07 13:02:56

阅读数 6040

评论数 10

原创 高性能网站架构之缓存篇--Redis安装配置

简介      Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。      Redis从它的许多竞争继承来的三个主要特点:           Redis数据库完全在内存中,使用磁盘仅用于持久性。           相比许多键值数据存储...

2016-01-06 00:04:07

阅读数 7303

评论数 7

原创 一篇文章读懂 MySQL 中的锁

数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以 MySQL 自然也不能例外。MySQL 数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为...

2018-11-28 20:57:06

阅读数 153

评论数 0

原创 一篇文章读懂java线程池

在日常的工作当中,线程池是我们经常使用的。但是我们在使用过程中并没有考虑过会不会有什么问题,我们配置的参数是否正确,到底应该如何配置线程池的各个参数,才能使机器发挥最大的性能。所以根据作者多年的使用线程池的经验,做本次分享,让众多的工程师的门更能详细的了解线程的使用,能够更加正确使用线程池。 通...

2018-08-09 16:15:43

阅读数 133

评论数 0

原创 如何彻头彻尾了解 MySQL 的索引

如果正确合理设计并且使用索引的 MySQL 是一辆兰博基尼的话,那么没有设计和使用索引的 MySQL 就是一个人力三轮车。没有索引的表,单表查询可能几十万数据就是瓶颈,那到底该如何应对互联网企业的上亿的数据? MySQL 中的 InnoDB 存储引擎的核心在于索引,索引的核心在于 B+tree,...

2018-07-20 17:21:47

阅读数 142

评论数 0

原创 史上最全面的线程池介绍

敬请期待 https://gitbook.cn/gitchat/activity/5b4731ca260b1f16129ecb0f

2018-07-13 17:03:26

阅读数 160

评论数 0

原创 基于 AbstractQueuedSynchronizer 的并发类实现

公平模式ReentrantLock实现原理 前面的文章研究了AbstractQueuedSynchronizer的独占锁和共享锁,有了前两篇文章的基础,就可以乘胜追击,看一下基于AbstractQueuedSynchronizer的并发类是如何实现的。 ReentrantLock显然是...

2017-08-31 20:59:41

阅读数 287

评论数 0

原创 JAVA REENTRANTLOCK、SEMAPHORE 的实现与 AQS 框架

ReentrantLock是JDK提供的一个可重入互斥锁,所谓可重入就是同一个锁允许被已经获得该锁的线程重新获得。可重入锁的好处可以在递归算法中使用锁,不可重入锁则导致无法在递归算法中使用锁。因为第二次递归时由于第一次递归已经占有锁,而导致死锁。本文我们将探讨JDK中ReentrantLock的实...

2017-08-31 20:58:34

阅读数 341

评论数 0

转载 消息队列设计

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、Ro...

2017-08-17 14:25:19

阅读数 310

评论数 0

原创 Zookeeper全解析—Paxos灵魂

原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。 那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Se...

2017-08-13 16:33:23

阅读数 286

评论数 0

原创 3des 加密

有两句话是这么说的:  1)算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。  2)编程就是算法和数据结构,算法和数据结构是编程的灵魂。  注意,这可不是我说的,是无数程序员总结的,话说的很实在也很精辟,若想长久可持续发展,多研究算...

2017-07-30 21:30:26

阅读数 612

评论数 0

原创 加密

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。本文给大家分享java常用的几种加密算法,需要的朋友可以参考下,对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密...

2017-07-30 21:27:01

阅读数 268

评论数 0

原创 zabbix 监控jvm

Zabbix版本: Zabbix 3.0.2 一、服务端配置 1、安装jdk(版本1.7.0_79) 安装与配置比较简单,过程省略。执行java -version命令,出现类似界面表示成功。   2、安装Zabbix-Java-gateway Zabbix2.0起添加了支持用于...

2017-06-30 22:16:24

阅读数 4615

评论数 3

原创 HashMap的工作原理

1.前言     在探讨HashMap源码之前,先说一下HashCode,为什么呢?因为HashMap有一个特性是Key是唯一值,如何确定key的唯一性呢,这就用到了hash算法。在HashMap(jdk1.7)的put方法实现中首先利用了hash()生成key的hashCode,然后比较key...

2016-09-07 18:49:42

阅读数 2676

评论数 6

原创 将字符串转json

第一种方式: 使用js函数eval(); testJson=eval(testJson);是错误的转换方式。 正确的转换方式需要加(): testJson = eval("(" + testJson + ")"); eval()的速度非常快,但是他可...

2016-08-05 16:13:15

阅读数 635

评论数 2

原创 Maven+Jetty运行项目无法热修改html处理

今天在使用Maven+Jetty运行JavaWeb工程时,发现无法在运行状态下修改JS、HTML文件,即无法热修改,网上搜了一下,整合了很多文章最终搞定。 现象 此时在Eclipse中修改index.html文件时 不允许进行修改。 原因:如果NIO被支持的话,Jetty会使用...

2016-08-03 15:56:52

阅读数 1441

评论数 1

原创 Java并发编程:Lock

上一篇博客写了synchronized, 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺陷讲起,然后再讲述java.util.concurrent.locks包下常用的有哪些类和接...

2016-05-31 19:33:56

阅读数 2832

评论数 3

原创 Java并发编程:阻塞队列

使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程从一个空的阻塞队列中取元素,此时线程会被阻塞直到阻塞队列中有了...

2016-05-27 21:38:33

阅读数 678

评论数 2

原创 synchronized详解

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。      一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完...

2016-05-26 18:11:19

阅读数 3114

评论数 1

原创 彻底理解java语言的线程安全volatile用法

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volat...

2016-05-18 17:53:58

阅读数 13994

评论数 2

原创 nio详解

下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。 复制代码 代码如下: IO                NIO 面向流            面向缓冲 阻塞IO            非阻塞IO 无                选择器 ...

2016-04-30 21:46:12

阅读数 1700

评论数 2

原创 io详解

一、什么是流        首先什么是流:流(Stream)的概念来源于UNIX中的管道(pipe)概念,在unix中,管道是一条不间断的字节流,用来实现程序和进程间的通信,或者读写外围设备、外部文件等。流,必须有源端和目的端,可以是文件,内存或者网络等。流的创建是为了更方便的处理数据的输入...

2016-04-30 21:44:32

阅读数 735

评论数 3

原创 Spring的IOC原理[通俗解释一下]

1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。 图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转...

2016-04-30 15:57:49

阅读数 1693

评论数 2

原创 谈谈对Spring IOC的理解

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。 ...

2016-04-30 15:56:07

阅读数 10895

评论数 5

原创 Java四种线程池的使用

Java通过Executors提供四种线程池,分别为:        newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。        newFixedThreadPool 创建一个定长线程池,可控制线程最大并发...

2016-03-31 21:07:48

阅读数 846

评论数 3

原创 JAVA多线程实现的三种方式

JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。 1、继承Thread类实现多线程 ...

2016-03-31 21:00:02

阅读数 796

评论数 4

原创 高性能网站架构之缓存篇—Redis集群增删节点

上一篇文章,我们搭建了redis-cluster集群,这篇博客跟大家讲一下如何在一个运行的集群上增加节点或者删除节点。 Redis集群添加节点        首先我们要新建立一个节点,将redis01 复制一份改为redis07,然后修改端口号也改为7007 ,然后我们执行[root@loca...

2016-03-10 15:28:32

阅读数 2975

评论数 4

原创 高性能网站架构之缓存篇—Redis集群搭建

看过 高性能网站架构之缓存篇--Redis安装配置和高性能网站架构之缓存篇--Redis使用配置端口转发 这两篇文章的,相信你已经对redis有一定的了解,并能够安装上,进行简单的使用了,但是在咱们的实际应用中,使用redis肯定不会使用单机版,不光是redis不能使用单机版,其他的也不会使用,所...

2016-03-09 15:22:15

阅读数 18590

评论数 10

原创 2015年终总结

又到了写年终总结的时候了,每次到写总结的时候,想想好像没有什么东西可以写,但是仔细的坐下来想想,其实还有很多东西的,这一年学习的知识很多,也经历了很多。          这一年想想是最关键的一年了,在这一年了自己的知识方面的学习,确实有很多,一开始感觉学啥感觉都会,到最后,怎么感觉学啥都不会了...

2016-02-28 20:40:37

阅读数 4227

评论数 14

原创 Java 上传文件到ftp服务器

前两篇文章我们搭建了一个ftp服务器,并对服务器进行了相应的配置,这篇文章我们来说一下我们如何上传文件。          先介绍一下项目,本项目采用的是spring mvc +spring +mybatis ,用maven 进行项目管理。看一下项目结构 。               ...

2016-02-26 15:30:03

阅读数 35752

评论数 41

原创 vsftpd配置文件详解

上一篇文章我们将vsftpd服务器架设成功了,但是我们还要对该服务器做一些配置以便方便我们使用。我们要修改的配置文件是/etc/vsftpd/vsftpd.conf文件。          我们在修改配置文件之前一定要记得做备份,这是一个非常好习惯。在/etc/vsftpd 目录下执行cp vs...

2016-02-26 11:11:42

阅读数 5103

评论数 4

原创 ftp服务器的安装

背景简介        最进由于工作上的原因需要搭建一台文件服务器作为文件服务器,这样做主要处于两点考虑,第一可以单独服务器做为独立用途,tomcat服务器只是提供服务器使用,文件服务器提供存取文件图片使用。第二,方便以后做tomcat集群,所以存取文件图片的操作都去另外一台服务器上操作。  ...

2016-02-25 14:40:01

阅读数 2012

评论数 4

原创 Linux 下安装svn服务器及错误集锦

由于公司新买了一台服务器,然后要从新搭建svn服务器,这个任务落到了我的身上,都要过年了。好吧,抱怨是穷人的专利。不能这样,打起精神开干。前后用了一个多小时,不过还是安装好了,期间遇到了好多问题,不过都一一的解决了! 准备工作          装有Centos6.7系统的机器一台       ...

2016-02-04 16:36:26

阅读数 5339

评论数 3

原创 JMS与MDB

上一篇文章讲了实体bean,了解了实体Bean的在工作流程中的使用,这篇文章我们来看一下消息驱动bean的使用。我们先来了解一下JMS.          JMS是Java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。JMS支持两种消息模型:Point-to-Point(P...

2015-12-19 11:17:12

阅读数 2068

评论数 6

原创 Ejb的实体bean

在上一篇文章中,我们学习了EJB的会话bean,这篇文章我们来说一下EJB的实体bean,说到实体bean,就不得不说JPA了,JPA是在EJB3.0的时候提出来的,但是他不局限于EJB3.0,而是适用于整个J2EE,他是一种规范。          JPA定义了一系列的注解,@Entity,@T...

2015-12-18 13:13:21

阅读数 1883

评论数 3

原创 有状态EJB和无状态EJB的区别

前边的文章中,简单的介绍了ejb的三种bean,我们这片文章通过实例来看一下有状态的会话bean和无状态的会话bean的区别。          我们建立一个ejb项目,分别创建两个接口, 两个实现类,每个类中都有相同的方法,并在每个类中有一个静态变量,用来存放数据。代码如下所示。至于如何发布ej...

2015-12-16 22:04:48

阅读数 3147

评论数 2

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