- 博客(77)
- 资源 (44)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Centos6.5下ngnix+tomcat+redis的集群+session共享
环境准备1.tomcat版本:tomcat7 tomcat下载及安装,目前很多好的资源和步骤,此处省略。2.jdk版本:jdk1.7 jdk下载及安装,目前很多好的资源和步骤,此处省略。3.redis版本以及下载地址、安装步骤
2016-08-01 14:20:36
1562
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 浅谈web架构之架构设计(总结)
架构模式先来说说模式: 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地用该方案而不必做重复工作 。先来说说常见的网站架构模式。这里没有涉及具体实现过程,只是简单介绍其思想和原理,方便日后有用到再深入了解。分层分层是企业应用系统中最常见的一种架构模式,将系统在 横向维度 上切分成几个部分,每个部分负责一部分相对比较单一
2016-07-14 11:47:16
8909
原创 Springboot启动原理解析
我们开发任何一个Spring Boot项目,都会用到如下的启动类@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Application.class,args);}}从...
2019-05-31 10:40:46
309
原创 今天,让我们彻底搞定maven!
今天,让我们彻底搞定maven!前言在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的.....OK,博主就曾经被Maven“伤害”过,那么该专题的目的...
2019-05-31 09:40:04
248
原创 最简单配置oracle与plsql developer【附带软件下载】
1.由于oracle安装文件超过2G,并且失败会卸载容易产生残留,因此这里不推荐使用。2.这里安装的方法,推荐使用instantclient客户端来当做oracle最简单的文件。3.下载instantclient和plsql developer,地址为https://download.csdn.net/download/zzjstudent/106969294.解压下载后的目录|“...
2018-09-30 08:52:08
428
原创 SpringContextUtil工具类-获取spring中的bean对象
/** * 获取spring中的bean对象工具类 * @date 2018-07-23 17:42 */@Componentpublic class SpringContextUtil implements ApplicationContextAware { /** * Spring应用上下文环境 */ private static Appl...
2018-08-27 15:16:47
9999
原创 大型网站架构系列:20本技术书籍推荐
学习是技术人员成长的基础,本次分享20本技术方面的书籍,这些书不是每一本都是经典,但是每一本都有其特点。以下20本大部分本人都看过,因此推荐给大家。(本次推荐的20本只是一个参考,比如像Head First,Java编程思想等经典书籍是大家都知道,因此不在推荐之列)本次分享大纲大型网站架构系列分布式系统系列BAT技术文学系列架构设计系列本次分享总结一、大型网站架构系列第一本:《大型网站技术架构:核...
2018-04-17 09:00:53
1098
原创 Mybatis中的association用法
这篇文章我们将来学习一些 association 用法表结构DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` int(11) NOT NULL auto_increment, `name` varchar(10) NOT NULL, `gender` char(1) NOT NULL, `major`...
2018-04-12 09:37:15
554
原创 Java 常见内存溢出异常与代码实现
Java 堆 OutOfMemoryErrorJava 堆是用来存储对象实例的, 因此如果我们不断地创建对象, 并且保证 GC Root 和创建的对象之间有可达路径以免对象被垃圾回收, 那么当创建的对象过多时, 会导致 heap 内存不足, 进而引发 OutOfMemoryError 异常./** * @author xiongyongshun * VM Args: java -Xms10m ...
2018-04-11 09:52:33
1216
原创 分布式Session常见解决方案
前言沉思君在之前的文章《谈谈HTTP状态保持》里介绍了有关HTTP状态保持的知识点,我们知道HTTP协议本身是无状态的,因此在使用HTTP协议进行通信的过程中,需要借助Session机制进行状态的保持。然而在大型网站中,我们的服务器数量通常不止一台,可能是几十台甚至几百台之多,用户发起的HTTP请求通常要经过像Ngnix之类的负载均衡器之后,再路由到具体的服务器上,由于Session默认是存储在单...
2018-04-04 12:15:28
1294
1
原创 Maven 集成Tomcat或tomcat7插件
Maven已经是Java的项目管理标配,如何在JavaEE开发使用Maven调用Web应用,是很多同学关心的问题。本文将介绍,Maven如何介绍Tomcat插件。Maven Tomcat插件现在主要有两个版本,tomcat-maven-plugin和tomcat7-maven-plugin,使用方式基本相同。tomcat-maven-plugin 插件官网:http://mojo.
2017-12-12 13:26:41
3809
原创 部署maven项目到tomcat resources里面配置文件无法部署到tomcat下
解决myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题。有时候是src/main/resources下面的,有时候是src/main/java下面的。把没有编译的文件,先点击:Excluded,然后再点击:Remove,即可。
2017-12-12 10:05:32
1355
原创 删除数据库中重复的记录(保留一条)-oracle、mysql版
一、oracle版有关数据重复操作的语句重点为:由于oracle中group时只支持查询出来的字段为 group by后面的字段,所以,这里需要利用oracle独有的关键字rowid来进行操作查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (se
2017-09-20 09:52:58
558
原创 解决Http或Https中下载中文文件乱码和无法下载问题
一、解决无法下载中文文件问题在下载时,经常通过url方式链接到指定文件路径的方式进行下载文件,但是如果文件含有中文时,往往出现http 404 无法找到文件的错误,原因就是文件中包含中文的问题,因此需要tomcat的配置文件中设置编码,如下:1.HTTPS的端口8443的编码设置 maxThreads="150" keystoreFile="D:\Jav
2017-08-15 11:41:27
11318
原创 配置HTTPS服务器之Apache
配置https服务器(apache)1. 确认open_ssl模块已经安装,检查apache已经加载/usr/lib/apache2/modules/mod_sso.so2. 生成证书和密钥a) 生成密钥openssl genrsa 1024 > server.keyb) 生成csr文件openssl req -new -key server.key > server.csrc
2017-08-14 18:19:22
540
原创 配置HTTPS服务器之Tomcat
简要记录主要步骤备忘1、进入到jdk下的bin目录2、输入如下指令keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore -validity 36500附:d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。"-va
2017-08-14 18:16:51
588
原创 Java 内存模型与线程
前言并发是计算机发展的成就。(并发,同一时段发生;并行,同一时刻发生)我们知道,早期计算机只能串行的进行运行(最古老的打孔)。而经过多年的发展,计算机可以“同时”做很多事情。但悲剧的是,因为CPU速度和其它设备之间的速度差别太大,比如磁盘IO、网络传输、数据库访问等等,如果不希望CPU在进行这些操作时一直处于等待的状态,就要充分压榨它的性能让它干别的事情。目前在服务器端,衡
2017-08-11 12:29:10
284
原创 java多线程-线程内存模型
1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Java内存模型和线程之前,先简单介绍一下硬件的效率与一致性。2.硬件的效率与一致性
2017-06-14 13:34:37
582
原创 《彻底理解》虚拟机三种网络模式
基于以上内容。所以我们需要懂得1.虚拟化2.Linux3.java基础下面来详细介绍1.虚拟化刚开始学习,上来就安装了虚拟机wmware station,然后创建虚拟机,安装Linux。但是问题来了。虚拟机的网络难住,因为缺乏这方面的知识,所以不得不停下来,学习虚拟机的网络,该怎么搞。虚拟机网络分为三种:1.briage2.host-only3.nat
2017-06-06 10:09:53
2291
原创 activemq应用场景-公司实际运用举例
1.通用性消息队列在大型电子商务类网站,如京东、淘宝、去哪儿等网站有这深入的应用,队列的主要作用是消除高并发访问高峰,加快网站的响应速度。在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧。在使用队列后,用户的请求发给队列后立即返回(当然不能直接给用户提示订单提交成功,京东上提示:您“您提交了订单,请等待系统确认”
2017-05-16 15:09:42
7290
4
转载 JVM调优总结
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms355
2017-03-08 11:18:35
365
原创 系统架构:消息队列的详尽用法
一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用
2017-03-07 13:52:00
1540
原创 B树索引-详细介绍
B-Tree索引是最常见的索引结构,默认创建的索引就是B-Tree索引。一、B树索引的结构B-树索引是基于二叉树结构的。B-树索引结构有3个基本组成部分:根节点、分支节点和叶子节点。其中根节点位于索引结构的最顶端,而叶子节点位于索引结构的最底端,中间为分子节点。 叶子节点(Leaf node):包含条目直接指向表里的数据行。 分支节点(Branch no
2017-02-23 13:31:57
1171
原创 java中String的等号、equals、hashcode之间的区别与联系
前一段时间自己想写几行代码,所以就有了以下的代码: public class TestString_1 { public static void main(String[] args) { String str1="this is test"; String str2="this is test"; String str3=new String("this is test"
2017-02-14 17:33:10
788
转载 Mysql数据库分库和分表方式(常用)
本文主要给大家介绍Mysql数据库分库和分表方式(常用),涉及到mysql数据库相关知识,对mysql数据库分库分表相关知识感兴趣的朋友一起学习吧本文主要给大家介绍MySQL数据库分库和分表方式(常用),涉及到mysql数据库相关知识,对mysql数据库分库分表相关知识感兴趣的朋友一起学习吧1 分库1.1 按照功能分库按照功能进行分库。常见的分成6大库:1
2017-02-13 09:41:30
618
原创 SQL优化大全
sql语句优化 性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对之进行简化。常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN)2)考虑使用临时表或表变量存放中间结果。3)少用子查询4)
2016-11-16 18:29:17
1037
原创 Netty5用户手册之六:netty核心之ChannelHandler用法详解
概述 主要介绍四个主要的核心类:ChannelPipeline、ChannelHandlerContext、ChannelHandler、Inbound VS Outbound(入站和出站)等。netty提供了强大的类来处理输入和输出的数据,通过ChannelHandler可以快速编写出可重用的、高性能的代码程序。下面一一介绍这些核心类的用法:ChannelPipeline类的用
2016-10-24 10:07:11
11493
1
原创 Netty5用户手册之五:netty中流数据的传输处理问题
在如tcp/ip的以流为基础传输数据中,数据被接收后,被保存在一个socket接收缓冲区中。不幸的是,这个以流为基础的缓冲区buffer不是一个包packet的队列,而是一个字节byte队列。这意味着,即使你发送两个消息message作为2个独立的包,操作以系统不会把他们作为两个消息message,而是仅仅当做一堆字节
2016-10-19 18:19:35
6383
原创 Netty5用户手册之四:使用netty实现Timer客户端和服务端程序
服务端 这个协议使用来实现time协议。它与前一个例子不同的是它会发送一个包含32字节大小的int消息,不接受任何请求并且一旦发送消息马上关闭连接。这个例子中,将会学会怎么去构建并发送一个消息,并且完成发送后关闭连接。 由于我们将会忽略接收到的数据而是去发送一个消息当连接创建的时候,我们不能用channelRead方法了。替代它的我们需要覆盖channelActive方
2016-10-19 17:34:09
2723
原创 Netty5用户手册之三:使用netty实现EchoServer程序
编写EchoServer服务端程序 上一章节中,我们已经已经处理了数据并且没有给出任何响应。但是作为一个服务端,通常需要给请求一个响应结果。下面的echo协议例子中无论接收了什么消息均为客户响应了一个消息回去。 与discard仅仅不同的是echo实现了替代discard中的释放代码为接收数据并且打印出接收到的消息到控制台。因此仅仅修改channelRead方法即
2016-10-19 16:43:02
1622
原创 Netty5用户手册之二:使用netty实现Discard服务器程序
编写一个discard服务器程序 世界上最简单的协议不是‘hello world’而是discard。他是一个丢弃任何接收到的数据并且无任何响应的协议。 为了实现dicard协议,我们只需要做一件事就是忽略所有接收到的数据。让我们从handler处理器的实现开始,handler在netty中是一个用来处理io事件的的处理器。import io.netty
2016-10-19 11:56:40
1439
原创 Netty5用户手册之一:netty的作用
引入问题 目前,我们使用第三方应用程序后者类库来实现不同系统之间的通信,例如,我们经常使用一个http客户端类库通过webservice的方式来远程调用一个web服务器上的逻辑来实现检索信息。 然而,一个通用的目的协议或者他的实现不能很好的扩展而导致覆盖不全面。比如,我们不能用一个通用的http服务器去实现交换一个很大的文件、email消息或者实时的消息如金融消
2016-10-19 11:18:49
1517
原创 JVM底层是如何实现synchronized---转
目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家
2016-10-17 18:14:02
359
原创 企业级系统模块通信:面向服务RPC和消息中间件
总得来看,企业级系统模块通信的方式通常情况下,无非两种。 同步方式:REST、RPC方式实现;异步方式:消息中间件(消息队列)方式实现。 同步方式的优点:可以基于http协议之上,无需中间件代理,系统架构相对而言比较简单。缺点是:客户端和服务端紧密耦合,并且要实时在线通信,否则会导致消息发送失败。 异步方式的优点:客户端和服务端互相解耦,双方可以不产生依赖。缺点是:由
2016-10-17 10:03:57
1122
转载 理解 Thread.Sleep 函数
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0)
2016-10-12 17:32:25
415
原创 Java内存模型&JVM参数
1.工作内存和主内存 Java内存模型对顶所有的变量都存储在主内存中(JVM内存的一部分),每个线程有自己独立的工作内存,工作内存保存了当前线程使用的对主内存变量的赋值。线程对这些变量的操作都在自己的工作内存中进行,而不能直接操作主内存和其他线程对应的工作内存中存储的变量或者变量副本。线程间的变量访问需要主内存来完成。
2016-10-12 11:53:23
411
原创 java中非阻塞网络编程中NIO知识点介绍
java.nio包中的主要类1.ServerSocketChanne类:ServerSocket的替代类,支持阻塞通信与费阻塞通信。2.SocketChannel类:Socket的替代类,支持阻塞通信与非阻塞通信。3.Selector类:为ServerSocketChannel监控接收连接就绪事件,为SocketChannel监控连接就绪、读就绪、写就绪等事件。4.Selectio
2016-09-27 18:42:33
627
转载 java知识系统介绍
一、并发编程 + activemq + 实战案例并发编程基础篇第一天1、课程大纲简要介绍2、线程基础概念、线程安全概念、多个线程多个锁概念3、对象锁的同步和异步4、脏读概念、脏读业务场景5、Synchronized概念、Synchronized代码块、Synchronized其他细节第二天1、Volatile关键字概念、线程优
2016-09-23 11:31:49
896
原创 聊聊并发-Java中的Copy-On-Write容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。
2016-09-23 10:05:30
556
原创 Java程序员进化为架构师掌握的知识
一:Java知识1、进制转换2、Java基本数据类型面向对象相关知识3、类、接口、抽象类this关键字、static关键字、final关键字方法的参数传递机制Java垃圾回收机制四种内部类的实现方式方法重写(override)与重载(overload)的联系与区别通过多态实现程序代码的松耦合Java 异常体系详解(checked exception
2016-09-18 13:37:57
887
系统架构设计师教程(带目录 第4版).pdf
2017-10-24
gethashes.exe 代码获取 渗透工具
2017-09-30
commons-logging的jar包
2017-09-26
quip windows版下载
2017-09-25
zkclient-1.0(Jar包和源码包)
2016-11-22
Java并发编程的艺术(最新完整版)
2016-11-10
Java并发编程实战 带目录
2016-10-26
Netty In Action中文版(附带目录)
2016-10-20
ssh最新搭建步骤
2014-08-08
html5方式上传插件uplodifive以及示例
2018-10-22
MyEclipse或Eclipse中使用Egit插件(Eclipse中Egit插件的使用方法)
2017-12-11
基于SSM框架的后台管理系统源码(SpringMVC+Mybatis+Mysql+Easyui)
2017-10-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人