- 博客(179)
- 资源 (18)
- 收藏
- 关注
原创 JVM常用内存参数配置
一、 常用参数 -Xms JVM启动时申请的初始Heap值,默认为操作系统物理内存的1/64但小于1G。默认当空余堆内存大于70%时,JVM会减小heap的大小到-Xms指定的大小,可通过-XX:MaxHeapFreeRation=来指定这个比列。Server端JVM最好将-Xms和-Xmx设为相同值,避免每次垃圾回收完成后JVM重新分配内存;开发测试机JVM可以保留默认值。
2017-11-08 09:55:22
68458
9
转载 JVM内存模型
一、 分区概述 JVM定义了若干个程序执行期间使用的数据区域。某些区域(例如:堆区、方法区)里的数据在JVM启动的时候创建,在JVM退出的时候销毁(线程共享);而某些区域(例如:栈区、程序计数器区)的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁(线程独享)。区域图如下: 1.1程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码
2017-11-06 11:09:29
1143
1
原创 Exception处理
1 原则 如果被调用方显示的向上Throw了Exception , 那么调用方【必须显示地处理】Exception(向上Throw或者Try...Catch); 2 避免异常堆栈信息被吞掉 如果被调用方Try...Catch了Exception,但没有打印Exception堆栈信息;而此时调用方也无法获得Exception的信息,那么【
2017-07-28 16:09:56
1578
2
原创 Linux常用开发命令
一、 将一个命令的结果作为下一个命令的参数符号:` ` 说明:反引号,在键盘的左上角,数字1的左边,不要将其同单引号(’)混淆。 功能:反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。 示例:(tomcat.pid文件中存放有容器的进程Id) $() 说明:效果同` `,写shell脚步时...
2017-07-18 17:20:32
2270
3
原创 Linux常用系统命令
一、搜索find格式:“find ”举例:搜索在根目录下的所有test文件find / -name 'test' 更多:find - -helplocate说明:要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有本地所有文件信息。Linux系统
2017-06-16 06:36:41
996
4
原创 log4j使用及详细配置说明
一、 首先简单介绍log4j的使用步骤 整体上分为如下几个步骤:1、引入log4j-*.*jar,的Jar包;2、添加配置文件(log4j.xml或log4j.properties);3、包装log工具类在业务中使用。此为传统的使用步骤,不过我们可以直接用lombok包装好的log工具类,具体步骤:1.1 引入jar包 org.project
2017-06-11 17:37:38
2551
5
原创 解决Ajax请求跨域问题
上篇文章提到,由于浏览器的同源策略,使得,AJAX请求只能发给同源的网址,否则就报错。除了架设服务器代理,如Nginx(浏览器请求同源服务器,再由后者请求外部服务),有三种方法规避这个限制: 一、 JSONP JSONP是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,老式浏览器全部支持,服务器改造非常小。 它的基本思想是,网页通过添加一个元素,向
2016-11-25 14:40:30
10961
4
原创 浏览器同源策略及Cookie的作用域
如题,本文主要介绍两方面内容:首先简单介绍浏览器的同源策略与其带来的问题;其次,介绍Cookie的作用域,即Cookie与Domain(域名)的上传关系,即浏览器在什么时候提交什么Cookie到服务器,即浏览器是通过怎样的规则筛选Cookie并提交到服务器的。一、 浏览器同源策略1.1 概述 1995年,同源政策由 Netscape 公司引入浏览器
2016-11-25 12:40:24
11663
3
原创 Maven仓库核心配置
一、首先在IDE中配置maven的localrepository与settings.xml的路径:二、然后看settings.xml的核心配置: 2.1 地仓库必须配置 /Users/user/Work/m3/repository 2.2 远程仓库之中央仓库可选择性配置 因为maven本身已经配置了中央仓库(${M2
2016-11-25 12:18:48
3769
3
原创 Mac下抓包工具—Charles
一、 简介 主要介绍如下几个常用操作: 1、Charles抓取手机端Http请求 2、Charles抓取手机端Https请求 3、Charles抓取Mac的PC端Web浏览器Http请求二、 下载&破解 1、下载: http://www.charlesproxy.com/ 2、破解: Ø 先下载破解的charles.
2016-11-25 11:37:29
3028
1
转载 帮你深入理解OAuth2.0协议
1. 引言如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间。是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题。豪车一般配备两种钥匙:主钥匙和泊车钥匙。当你到酒店后,只需要将泊车钥匙交给服务生,停车的事情就由服务生去处理。与主钥匙相比,这种泊车钥匙的使用功能是受限制的:它只能启动发动机并让车行驶一段有限的距离,可以锁车,但无法打开后备箱,无法使用车内
2016-04-29 16:45:26
2486
1
转载 Ubantu下搭建Hadoop2.x完全分布式集群
工具/原料linux系统(本篇使用的是CentOS v6.5)Hadoop安装包(本篇使用的是hadoop v2.6.0)环境要求1需要安装JDK6.0以上版本(可自行解压安装或使用自带的软件安装包,如yum)2需要无密码登录的SSH环境(安装ssh及sshd,具体配置步骤在
2015-08-19 21:34:50
1510
1
原创 Ubantu下搭建Hadoop1.x完全分布式集群
一、 目标 准备3台Ubantu的Linux服务器h1、h2、h3。h1为主节点,担任NameNode、SecondNameNode、JobTracker三个角色;h2和h3作为两个从节点,担任DataNode和TaskTracker两个角色。 二、 步骤预览 三、 环境需求 开始搭建集群前,我
2015-08-19 21:25:18
1266
1
原创 Linux上安装Dubbo控制台
Dubbo管理控制台开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。1. 下载Dubbo 地址:http://code.alibabatech.com/mvn/releases/com/alibaba/dubbo-admin/2.4.1/dubbo-admin-2.4.1.war 我的tomcat安装在/opt/目录下
2015-08-19 17:46:27
6953
1
原创 Dubbo简介及实例
1、概念 Dubbo是一个分布式服务框架,以及阿里巴巴内部的SOA服务化治理方案的核心框架。其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。说通俗点,就是首先将程序组件化成一个个相对独立的服务,然后就可以对服务进行分布式;而且,它有注册中心通过监听,实时发现着新服务,并部署,还可以推送给客户端;它还集成了负载均衡的解决方
2015-08-19 16:51:08
3320
2
原创 ActiveMQ实战
ActiveMQ是JMS规范的一个实现产品,即对JMS的一套接口进行了实现。所以下面我们先对JMS与ActiveMQ进行一个简单介绍,然后再介绍ActiveMQ的P2P与PubSub两种开发模式。一、 JMS简介 JMS即Java消息服务,是J2EE的13规范之一,是一套面向消息中间件(MOM)的应用程序接口。用在两个程序之间,或分布式系统中发送消息,进行
2015-08-19 12:05:01
6335
2
原创 Nginx+Tomcat搭建高性能负载均衡集群
一、 工具 nginx-1.8.0 apache-tomcat-6.0.33二、 目标 实现高性能负载均衡的Tomcat集群: 三、 步骤 1、首先下载Nginx,要下载稳定版: 2、然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-
2015-08-19 11:45:23
123316
49
原创 Nginx简介
一、 概念 Nginx——Ngine X,是一款高性能的反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;也是一个Http服务器。也就是说Nginx本身就可以托管网站,进行Http服务处理,也可以作为反向代理服务器使用。二、 正向代理和反向代理 首先,代理服务器一般指局域网内部的机器通过代理服务器发送请求到互联网上的服
2015-08-19 11:27:07
6084
4
原创 Memcache启动&存储原理&集群
一、 windows下安装启动 首先将memcache的bin目录加入到Path环境变量中,方便后面使用命令: 然后执行 memcached –dinstall 命令安装memcache的服务: 然后去计算进的服务页面可以看到已成功安装: 启动memcache的后台服务程序:
2015-08-19 11:20:38
4010
1
原创 WebService实例&调用本质&权限控制
这里首先做一个用CXF开发WebService的实例。然后介绍WebService的调用本质与权限控制。一、 实例1.1 下载apache-cxf 地址如下:http://cxf.apache.org/download.html,要下载稳定版。 1.2 使用CXF开发WebService服务端 每个
2015-08-18 11:34:28
9159
2
原创 WebService入门
一、 简介 WebService不是框架,而是一种跨平台、跨语言的规范。主要是为了解决不同平台、不同语言所编写的应用之间如何相互调用的问题。如下图所示: 二、 实际用途 也就是我们企业实际开发中,WebService的实际应用场景,下面举几个例子: Ø 同一个公司的新、旧系统的整合。新、旧系统可能是不同平台不同语言。
2015-08-18 10:57:28
1559
2
转载 MongoDB——分片
原文地址:http://www.cnblogs.com/huangxincheng/archive/2012/03/07/2383284.html在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存就吃不消了,针对这样的场景我们该如何应对。 一:分片 mongodb采用将集合进行拆分
2015-08-03 21:16:23
1006
4
原创 MongoDB——主从复制&副本集
前面我说到了,MongoDB数据库支持服务器之间的数据复制。支持主从模式及服务器之间的相互复制。目的当然是实现负载均衡与故障恢复。Mongo中内置了两种技术:主从复制、副本集。下面就简单介绍这两种模式的配置。一、 主从复制 主从复制是一个简单的数据库同步备份的集群技术。模型如下: 需要注意: 在数
2015-08-03 21:11:27
4831
5
原创 MongoDB——简介与安装
MongoDB是几大NoSQL数据库类型中的文档型数据库。所以我们这里还是要对如今很流行的NoSQL进行介绍。一、 NoSQL 1.1 概念 NotOnly Sql,泛指非关系型数据库。NoSQL的拥护者们提倡运用非关系型的数据存储,通常的应用如:模式自由、支持简易复制、简单的API、最终的一致性(非ACID)、大容量数据等。NoSQL被我们用得最多的当数key-
2015-08-03 20:47:47
1076
6
原创 Redis——Java操作
前面所有对Redis的操作都是在DOS窗口中进行的,前面我们也提到了,Redis几乎对所有的主流高级语言(包括C、C++、C#、Java、PHP、Perl、Python、Ruby、Objective-C、JavaScript等等)都提供了驱动包,即操作的API。这里就非常简单的介绍一下Java中对Redis的操作。 操作非常简单,只需要导入Redis对Java的驱动包—jedis
2015-07-31 17:37:18
1192
6
原创 Redis——发布订阅模式&虚拟内存
一、 发布订阅消息 发布订阅(pub/Sub)是一种消息通信模式,主要的目的是解除消息发布者和消订阅者之间的耦合,Redis作为一个pub/sub的server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向Redis Server订阅自己感兴趣的消息类型,Redis将信息类型称为通道(channel).当发布者通过publish
2015-07-31 17:31:42
1466
7
原创 Redis——事务&持久化
一、 事务处理 Redis对事务的支持比较简单,或者说它的事务是有缺陷的。它只能保证一个Client发起的事务中的命令可以连续执行,中间不会插入其它client端的命令。缺陷在于,如果一个client将两条命令放到一个事务了,执行的时候第二条命令发送错误,但此时Redis的事务不会回滚第一条命令。如下图: Redis事务的执行原理如下:当client端
2015-07-31 17:24:22
1423
5
原创 Redis——安全设置&主从复制
一、 安全设置 我们前面的所有操作都没有进行安全认证,即,只要你连上Redis的server你就可以为所欲为。这样显然是不合理的。下面我们就设置客户端连接server后进行任何操作都需要密码验证。 注意,因为Redis速度相当快,前面我们说过它的set操作每秒钟可达110000(11万)次,get操作每秒钟可达81000次(当然不同的服务器配置性能不同)。如果
2015-07-31 17:09:47
1073
5
原创 Redis——五种数据类型
Redis共有strings、hashs、lists、sets、sorted sets五种数据类型,可以说已经比较丰富了。下面只对这几种数据类型的数据结构与用途做简要介绍。至于每种数据类型的操作API,这里只简单一提,不再一一详细介绍,有需要的用户可以Google即可。一、 strings string是最简单的类型,一个Key对应一个Value。string类型是类型安
2015-07-31 16:54:54
4039
5
原创 Redis——简介
一、 NoSql简介 之前转载了一个NoSql的系列文章,讲的非常系统和全面,所以这里只简单一提。NoSql泛指“非关系型数据库”,也常常被翻译为NotOnly Sql。NoSql中被我们用得最多的当数key-value存储,当然还有其他的文档型的(例:Mongo)、列存储、图型数据库、xml数据库等。 这类数据库和传统的关系型数据库不一样,不一定遵循传
2015-07-31 16:38:58
4029
5
转载 NoSQL架构实践(三)——以NoSQL为缓存
原文地址:http://www.infoq.com/cn/news/2011/03/nosql-architecture-practice-3/在《NoSQL架构实践》系列的前面两篇文章中,介绍了《以NoSQL为主》和《以NoSQL为辅》的架构。由于NoSQL数据库天生具有高性能、易扩展的特点,所以我们常常结合关系数据库,存储一些高性能的、海量的数据。从另外一个角度看,根据NoSQL的高性
2015-07-29 22:20:12
2000
5
转载 NoSQL架构实践(二)——以NoSQL为主
前面一篇《NoSQL架构实践(一)——以NoSQL为辅》主要介绍了以NoSQL为辅助的架构,这种架构实施起来比较简单,易于理解,由于其中也使用了传统的关系数据库,让开发者更容易控制NoSQL带来的风险。接下来我们继续深入下去,换另外一个角度,“以NoSQL为主”来架构系统。(三)纯NoSQL架构只使用NoSQL作为数据存储。图 4-纯NoSQL架构在一些数据
2015-07-29 22:17:50
995
4
转载 NoSQL架构实践(一)——以NoSQL为辅
原文地址:http://www.infoq.com/cn/news/2011/02/nosql-architecture-practice/前面《为什么要使用NoSQL》和《关系数据库还是NoSQL数据库》两篇从大体上介绍了为什么要用NoSQL,何时该用NoSQL。经常有朋友遇到困惑,看到NoSQL的介绍,觉得很好,但是却不知道如何正式用到自己的项目中。很大的原因就是思维固定在MySQL中
2015-07-29 22:15:31
1687
3
转载 关系数据库还是NoSQL数据库
原文地址:http://www.infoq.com/cn/news/2011/01/relation-db-nosql-db上一篇简单的说明了为什么要使用NoSQL。接下来我们看下如何把NoSQL引入到我们的项目中,我们到底要不要把NoSQL引入到项目中。在过去,我们只需要学习和使用一种数据库技术,就能做几乎所有的数据库应用开发。因为成熟稳定的关系数据库产品并不是很多,而供你选择的
2015-07-29 22:14:40
1122
3
转载 NoSQL开篇—为什么要使用NoSQL
【编者按】NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面。今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会。非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展
2015-07-29 22:07:24
1200
3
原创 Java类加载器
1. 系统加载器简介 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器(BootStrap、ExtClassLoader、AppClassLoader),每个类加载器负责加载特定位置的类。 类加载器本身也是Java类(BootStrap除外),因为它本身也要被类加载器加载,这样显然一定有第一个类加载器不是Java类,没错,正是BootStrap类加载器。它是由C++语
2015-07-29 17:40:02
1014
3
原创 Java反射—结合框架谈注解
1. 概念 首先,要理解注解的作用。注解的作用很简单、明确,它就是一种标记。在程序中加入了注解,就等于为程序(例如:类、方法)打上了某种标记;没加注解,则表示没有加标记。以后,我们就可以在其它程序中通过反射来得到,加了注解的有哪些类,没加注解的有哪些类。这样就可以对这两种类进行不同的处理。 例如,我们可以在Spring中定义一个注解@SpringClazz,如果
2015-07-29 10:24:48
1230
4
原创 Java反射—模拟Spring的Aop
1. 大概流程 上篇文章已经结合Java反射解释了SpringAop的原理,这里我们简单模拟以下Spring的Aop实现。大体流程如下: Ø 创建一个properties配置文件模拟Spring配置文件。 Ø 创建一个增强接口与一个实现类模拟Spring的Advice。 Ø 创建一个生成代理的工厂类,并在InvocationHandler类的invoke方法中织
2015-07-28 21:52:16
2391
3
原创 Java反射—运用反射生成jdk动态代理
1. 核心类&接口 在Java的java.lang.reflect包下提供一个Proxy类和一个InvocationHandler接口,通过使用这个类和接口可以生成jdk动态代理类或动态代理对象。 Proxy是所有动态代理类的父类,它提供了两个静态方法来创建动态代理类和动态代理对象,如下: Ø static ClassgetProxyClass(Cl
2015-07-28 21:42:23
6139
3
原创 Java发送Email—使用org.apache.commons.mail
上篇文章介绍了自己手动的实现发送普通Email、HTML类型的Email以及带附件的Email。其实apache的commons项目下有个email子项目,它对JavaMail API进行了封装,用起来特变方便。下面就简单介绍。1. 首先配置需要的jar包 需要将mail.jar和commons-email.jar添加到我们的CLASSPATH中即可,如下图:
2015-06-24 18:02:21
21369
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人