自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (6)
  • 论坛 (6)
  • 收藏
  • 关注

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

上一篇文章给大家讲了Nginx的安装,那么这篇文章为大家讲一下Nginx+Tomcat实现负载均衡。         先说说为什么要用ngnix 做负载均衡,其实做负载均衡的最出名的莫过于F5了,F5是在硬件设施,动辄几万,几十万,几百万不等,对于一般的小公司来说,这也是一笔很大的开销,所以能尽量的使用软件,还是使用软件,效果上虽然会差一些,但是还是能够起到一定的作用的。环境准备

2016-01-20 18:39:32 12466 9

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

环境准备          如果要使用Nginx的常用功能,那么首先需要确保该Linux操作系统上至少安装了如下软件。Linux上有许多软件安装方式,yum只是其中比较方便的一种,其他方式这里不再赘述。这些软件均采用该方式安装      (1)GCC编译器       GCC(GNU CompilerCollection)可用来编译C语言程序。Nginx不会直接提供二进制可执行程序(1

2016-01-19 12:52:48 4433 6

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

什么是Nginx         Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、新

2016-01-19 12:37:57 4532 6

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

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

2016-01-14 18:08:48 7928 3

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

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

2016-01-07 13:02:56 6286 10

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

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

2016-01-06 00:04:07 7645 7

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

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

2018-11-28 20:57:06 205

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

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

2018-08-09 16:15:43 170

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

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

2018-07-20 17:21:47 222

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

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

2018-07-13 17:03:26 234

原创 基于 AbstractQueuedSynchronizer 的并发类实现

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

2017-08-31 20:59:41 337

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

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

2017-08-31 20:58:34 473

转载 消息队列设计

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你

2017-08-17 14:25:19 362

原创 Zookeeper全解析—Paxos灵魂

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

2017-08-13 16:33:23 318

原创 3des 加密

有两句话是这么说的: 1)算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。 2)编程就是算法和数据结构,算法和数据结构是编程的灵魂。 注意,这可不是我说的,是无数程序员总结的,话说的很实在也很精辟,若想长久可持续发展,多研究算法还是很有必要的,今天我给大家说说加密算法中的对称加密算法,并且这里将教会大家对称加密算法的编程使用。

2017-07-30 21:30:26 979

原创 加密

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。本文给大家分享java常用的几种加密算法,需要的朋友可以参考下,对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,

2017-07-30 21:27:01 317

原创 zabbix 监控jvm

Zabbix版本: Zabbix 3.0.2一、服务端配置1、安装jdk(版本1.7.0_79)安装与配置比较简单,过程省略。执行java -version命令,出现类似界面表示成功。 2、安装Zabbix-Java-gatewayZabbix2.0起添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”,它是用java写的一个程

2017-06-30 22:16:24 5045 3

原创 HashMap的工作原理

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

2016-09-07 18:49:42 2740 6

原创 将字符串转json

第一种方式:使用js函数eval();testJson=eval(testJson);是错误的转换方式。正确的转换方式需要加(): testJson = eval("(" + testJson + ")");eval()的速度非常快,但是他可以编译以及执行任何javaScript程序,所以会存在安全问题。在使用eval()。来源必须是值得信赖的。需要使用更安全的json解析器。在服

2016-08-05 16:13:15 687 2

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

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

2016-08-03 15:56:52 1518 1

原创 Java并发编程:Lock

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

2016-05-31 19:33:56 2871 3

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

使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程从一个空的阻塞队列中取元素,此时线程会被阻塞直到阻塞队列中有了元素。当队列中有元素后,被阻塞的线程会自动被唤醒(不需要我们编写代码去唤醒)。这样提供了极大的方便性。

2016-05-27 21:38:33 703 2

原创 synchronized详解

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

2016-05-26 18:11:19 3150 1

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

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要特性

2016-05-18 17:53:58 14686 2

原创 nio详解

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

2016-04-30 21:46:12 1748 2

原创 io详解

一、什么是流       首先什么是流:流(Stream)的概念来源于UNIX中的管道(pipe)概念,在unix中,管道是一条不间断的字节流,用来实现程序和进程间的通信,或者读写外围设备、外部文件等。流,必须有源端和目的端,可以是文件,内存或者网络等。流的创建是为了更方便的处理数据的输入输出。       其次,对于输入流输出流如何区分,相信有很多人闹不清楚,本人也是很长时间弄不

2016-04-30 21:44:32 781 3

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

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

2016-04-30 15:57:49 1918 2

原创 谈谈对Spring IOC的理解

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

2016-04-30 15:56:07 11086 5

原创 Java四种线程池的使用

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

2016-03-31 21:07:48 892 3

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

JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程       继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了

2016-03-31 21:00:02 841 4

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

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

2016-03-10 15:28:32 3083 4

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

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

2016-03-09 15:22:15 18923 10

原创 2015年终总结

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

2016-02-28 20:40:37 4259 14

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

前两篇文章我们搭建了一个ftp服务器,并对服务器进行了相应的配置,这篇文章我们来说一下我们如何上传文件。         先介绍一下项目,本项目采用的是spring mvc +spring +mybatis ,用maven 进行项目管理。看一下项目结构 。                如果单独做测试的话不用这么费劲,写一个简单的测试类就ok了!而在这个项目中,parent是所有项

2016-02-26 15:30:03 37688 43

原创 vsftpd配置文件详解

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

2016-02-26 11:11:42 5365 4

原创 ftp服务器的安装

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

2016-02-25 14:40:01 2099 4

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

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

2016-02-04 16:36:26 6283 3

原创 JMS与MDB

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

2015-12-19 11:17:12 2312 6

原创 Ejb的实体bean

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

2015-12-18 13:13:21 1982 3

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

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

2015-12-16 22:04:48 3445 2

Grid++report报表设计器

Grid++Report是一款C/S与B/S集成报表工具,功能全面易学易用。C/S开发适用于VB.NET,C#,VB,VC,Delphi,BCB,VFP,易语言等。B/S开发适用于ASP.NET,ASP,PHP,JSP等,支持所有WEB服务器。开发C/S报表与B/S报表共享相同的开发知识与设计资源。提供独有的报表查询显示功能,让报表查询显示、打印、打印预览及数据导出等功能集成一体化实现。轻松实现通用报表、表格报表、动态报表、多层表头、票据与发票套打、交叉表、表中表及各种特殊报表等。提供详尽帮助文档与各种编程平台下的丰富例子,安装中包括可直接运行例子程序,安装后即刻体验此报表工具。包括简体中文版、繁体中文版与英文版。经过数年的发展,已经被多家有影响力的通用软件厂商采用,其用户遍布各行各业,已经成为用户受众面最广的国产报表开发工具。

2013-08-25

Log Explorer4.2

点击“View DDL Commands”里面就有很多drop table 命令   点击下面的“undo”按钮是生成表结构的语句(create table ....)   点击下面的“Salvage”按钮是生成插入语句的(insert into ...values....)   想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行   T-sql代码就可以了   例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....   log explorer使用的几个问题   对数据库做了完全 差异 和日志备份   备份时选用了删除事务日志中不活动的条目   再用Log explorer打试图看日志时   提示No log recorders found that match the filter,would you like to view unfiltered data   选择yes,就看不到刚才的记录了

2013-08-09

msdn for vb

用于设计vb程序时疑难问题解答。对于学习vb的非常有帮助。

2013-06-19

用redis共享session

tomcat用redis共享session需要的jar

2016-01-20

cas server

用于单点登录中cas server的的安装!

2015-01-23

cas-client-3.2.1

单点登录cas 的客户端,用于实现.net单点登录的客户端安装配置!

2015-01-23

张宏杰的留言板

发表于 2020-01-02 最后回复 2020-01-02

centos6.7 安装redis报错

发表于 2016-01-04 最后回复 2016-01-14

我想学习一下非结构化数据库,有什么非结构化数据库管理系统呢你?

发表于 2014-01-03 最后回复 2016-01-04

win8 系统Dll无论如何都注册不上,肿么办?

发表于 2013-12-05 最后回复 2014-01-03

最短路径问题

发表于 2013-11-29 最后回复 2013-12-05

如何用vb实现在一个地图中实现两点定位,并模拟车辆行驶?

发表于 2013-11-28 最后回复 2013-12-05

空空如也

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

TA关注的人 TA的粉丝

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