架构设计
鑫鑫_
W3C,MUSIC,JAVA
展开
-
出现javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
今天研究网上的java版的微信模拟登录群发消息的代码时,运行报错handshake alert:unrecognized_name,调试发现完整的错误为javax.net.ssl.SSLProtocolException: handshake alert:unrecognized_name 在百度上发现有网友说是因为JDK的版本不对导致,笔者更换了jdk的版本发现问题依旧,最后看到另一个网友的解决转载 2015-06-12 16:40:23 · 6480 阅读 · 2 评论 -
Dynamic Code Evolution for Java dcevm 原理
在hostswap dcevm中我们对Dynamic Code Evolution VM有了一个简单的了解,这篇文章将介绍Dynamic Code Evolution VM的实现原理。有两个概念需要区别下:Dynamic Code Evolution (下文简称DCE):泛指java在运行时修改程序的技术.例如aop等.Dynamic Code Evolution VM(下文简称D转载 2014-04-12 22:04:14 · 623 阅读 · 0 评论 -
hostswap dcevm
什么是dcevm dcevm(DynamicCode Evolution Virtual Machine)是java hostspot的补丁(严格上来说是修改),允许(并非无限制)在运行环境下修改加载的类文件.当前虚拟机只允许修改方法体(method bodies),decvm,可以增加 删除类属性、方法,甚至改变一个类的父类。原理参见Dynamic Code Evolut转载 2014-04-12 22:03:43 · 562 阅读 · 0 评论 -
JVM系列五:JVM监测&工具[整理中]
前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案。正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置,每个参数的设置都需要对JVM进行长时间的监测,并不断进行调整才能找到最佳设置方案。本文将介绍如果通过工具及Java api来监测JVM的运行状态,并详细介绍各工具的使用方法。 需要监测的数据:(内存使用情况 谁使用了内存 GC的状况转载 2014-04-12 22:02:07 · 483 阅读 · 0 评论 -
JVM系列二:GC策略&内存申请、对象衰老
JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenu转载 2014-04-12 21:56:46 · 489 阅读 · 0 评论 -
JVM系列一:JVM内存组成及分配
JVM系列一:JVM内存组成及分配java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆转载 2014-04-12 21:55:50 · 465 阅读 · 0 评论 -
从几个sample来学习Java堆,方法区,Java栈和本地方法栈
最近在看《深入理解Java虚拟机》,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构:感觉有必要通过几个实在的例子来加深对这几个区域的了解1)Java堆所有对象的实例分配都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节,sample如下所示:转载 2014-04-12 22:31:48 · 523 阅读 · 0 评论 -
关于java的JIT知识
刚看Practical java ,对jit不是很明白:搜索结果如下: 什么是JIT?JIT是just in time,即时编译技术。使用该技术,能够加速java程序的执行速度。下面,就对该技术做个简单的讲解。首先,我们大家都知道,通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经转载 2014-04-12 22:23:21 · 464 阅读 · 0 评论 -
JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
java application项目(非web项目)改进前:-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xloggc:logs/gc.log-Dsun.rmi.dgc转载 2014-04-12 22:00:39 · 426 阅读 · 0 评论 -
JVM系列三:JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同转载 2014-04-12 21:59:18 · 417 阅读 · 0 评论 -
使用 Apache Lucene 和 Solr 4 实现下一代搜索和分析
登录 (或注册)中文IBM技术主题软件下载社区技术讲座搜索 developerWorks打印本页面用电子邮件发送本页面新浪微博人人网腾讯微博搜狐微博网易微博DiggFacebookTwitterDeliciousLinked In转载 2014-05-12 10:20:21 · 1004 阅读 · 0 评论 -
Java中的ReentrantLock和synchronized两种锁定机制的对比
原文:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造转载 2014-05-15 17:28:11 · 397 阅读 · 0 评论 -
使用btrace需要注意的几个问题
1.@ProbeClassName String clazz此处String不能写为java.lang.String2.location=@Location(Kind.RETURN)public static void traceExecute(AnyType[] args,@ProbeClassName String clazz,@ProbeMethodN转载 2014-04-12 22:04:56 · 542 阅读 · 0 评论 -
HttpClient4 Post XML数据
HttpClient4 Post XML数据最近项目中用到SOAP,要求客户端POST SOAP数据过去,整理一下自己写的东西。 POST XML一般有两种方法,一种是指定参数名,将该参数来进行XML数据的传输,这是最常用的一种方式。 这次我想说明的另外一种,直接将XML数据以流的方式写入请求。 Servlet POST方法中来接受传送过转载 2014-05-14 10:08:45 · 701 阅读 · 0 评论 -
[置顶] 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sh转载 2015-06-26 16:50:16 · 1039 阅读 · 0 评论 -
tcprstat工具安装与使用
tcprstat工具安装与使用tcprstat是免费开源tcp分析工具,通过监控网络传输来统计分析请求的响应时间使用方法:tcprstat是安装在server端,统计分析本地网卡地址请求的响应时间,可以用于临时分析,也可定时任务做信息收集下载# wget http://github.com/downloads/Lowercases/tcprstat/tcpr转载 2015-06-26 11:05:48 · 564 阅读 · 0 评论 -
只打印IBatis的sql语句
原创 2014-12-04 06:03:17 · 562 阅读 · 0 评论 -
CXF+Spring配置ip地址拦截器
转自网络:http://www.blogjava.net/zzzlyr/articles/372858.html谢谢原作者! 首先介绍下CXF的拦截器:简单地说,CXF使用流水线型(或者说总线型)处理机制,它的核心是一个Bus。一个客户端的请求或者一个对客户端桩代码的调用被组织成为一个Message。同时,所有的CXF功能都组织成Interceptor挂接在Bu转载 2015-01-08 12:41:36 · 1517 阅读 · 0 评论 -
重温:Spring 的编程式事务管理及声明式事务管理
开始之前关于本教程本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务。通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之。先决条件本教程假定您已经掌握了 Java 基础知识,并对 Spring 有一定了解。您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等。本文将直接使用这些概念而不做转载 2014-09-02 16:42:27 · 475 阅读 · 0 评论 -
Spring MVC学习笔记
1.CGI:(Common Gateway Interface)公共网关接口,一种在web服务端使用的脚本技术,使用C或Perl语言编写,用于接收web用户请求并处理,最后动态产生响应给用户,但每次请求将产生一个进程,重量级。2.一种JavaEE web组件技术,是一种在服务器端执行的web组件,用于接收web用户请求并处理,最后动态产生响应给用户。但每次请求只产生一个线程(而且有线程池),轻转载 2014-09-05 15:12:18 · 626 阅读 · 0 评论 -
Spring源码分析之——导入spring-framework源代码到Eclipse
本人最近想要研究spring的源代码,但当要导入spring sub project到Eclipse里面去的时候遇到了不少麻烦(其实都怪自己想当然)。 找到spring-framework的gitHub主页(http://springsource.org/spring-framework),也没看README部分的说明就直接copy了工程的源码下载地址https://github.com转载 2014-09-05 15:09:28 · 539 阅读 · 0 评论 -
Spring源码学习一_下载Spring项目源码并编译为Eclipse项目
Spring源码学习一_下载Spring项目源码并编译为Eclipse1.下载Spring源码 git下载地址:https://github.com/SpringSource/spring-framework/2.下载完成后,编译前需满足的先决条件1)当前系统中安装了gradle,如果为安装,可以从:http://www.gradle.org/downloads,选择一转载 2014-09-05 15:10:27 · 948 阅读 · 0 评论 -
OAuth1.0协议
OAuth1.0协议概要OAuth提供了一种client代表资源的拥有者访问server的方法,也就是在资源拥有者不向第三方提供证书(通常是指用户名和密码)的情况下,允许第三方使用用户代理重定向访问服务器上的资源。 1 介绍OAuth协议最初是设计用于解决一个最普遍的问题,如何代理访问受保护的资源,,于是在2007年10月建立OAuth1.0的一些标准转载 2014-05-27 18:16:06 · 757 阅读 · 0 评论 -
HotSpot VM GC 的种类
collector种类 GC在 HotSpot VM 5.0里有四种:incremental (sometimes called train) low pause collector已被废弃,不在介绍.类别serial collectorparallel collector( throughput collector )co转载 2014-06-12 14:45:13 · 468 阅读 · 0 评论 -
在eclipse开发环境中使用Java搭建OAuth Server和OAuth Client
1. OAuth协议OAuth协议是各类开放平台验证第三方应用程序权限的常用方法。在此不多做解释,详情见百度百科 2. 资源介绍我们借助Google Code上的开源项目(下载地址:http://code.google.com/p/oauth/ ) 来搭建OAuth服务器和客户端,首先使用SVN将Java部分的代码checkout。这个项目是使用Maven进行管理的,对转载 2014-05-27 14:32:19 · 1784 阅读 · 1 评论 -
JVM系列七:JDK5.0中JVM堆模型、GC垃圾收集详细解析
目录(?)[-]基本概念堆Heap分代堆模型YoungNursery年轻代OldTenured年老代Permanent持久代GC的类型基本GC收集算法GC收集器类型并行并发的区别年轻代的痛参考资料前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次转载 2014-04-23 10:59:46 · 729 阅读 · 0 评论 -
JVM系列六:java6_garbage collection(垃圾回收)
基本收集算法复制(copy):将堆内分成两个相同空间,从根(ThreadLocal的对象,静态对象)开始访问每一个关联的活跃对象,将空间A的活跃对象全部复制到空间B,然后一次性回收整个空间A。因为只访问活跃对象,将所有活动对象复制走之后就清空整个空间,不用去访问死对象,所以遍历空间的成本较小,但需要巨大的复制成本和较多的内存标记清除(mark-sweep):收集器先从根开始访问转载 2014-04-23 10:55:44 · 583 阅读 · 0 评论 -
学习Solr不错的系列文章
1)Solr 3.5 配置及应用 (1)Solr 3.5 配置及应用(一) 地址:http://blog.csdn.net/chunming8302/article/details/7321367 (2)Solr 3.5 配置及应用(二) 地址:http://blog.csdn.net/chunming8302/article/details/7321475转载 2014-05-05 18:37:40 · 457 阅读 · 0 评论 -
Express.js中文入门指引手册
来源于:http://www.csser.com/board/4f77e6f996ca600f78000936Express 是基于 Node.js,高性能、一流的web开发框架。本手册由一回于 2011-4-24 首次翻译,如今已经过去接近一年,express 最新的版本已经与当时翻译有些脱节,为了方便内容更新,将使用 csser 开发的贴板功能进行维护,也方便大家针对细节进转载 2012-06-08 10:42:35 · 3619 阅读 · 0 评论 -
Redis消息通知系统的实现
链接:http://huoding.com/2012/02/29/146最近忙着用Redis实现一个消息通知系统,今天大概总结了一下技术细节,其中演示代码如果没有特殊说明,使用的都是PhpRedis扩展来实现的。内存比如要推送一条全局消息,如果真的给所有用户都推送一遍的话,那么会占用很大的内存,实际上不管粘性有多高的产品,活跃用户同全部用户比起来,都转载 2012-05-28 13:57:06 · 478 阅读 · 0 评论 -
Netty 3.1 中文用户手册(一)-序言
原文地址:http://www.jboss.org/file-access/default/members/netty/freezone/guide/3.1/html_single/index.html Netty 3.1 中文用户手册(一)-序言Netty 3.1 中文用户手册(二)-开始Netty 3.1 中文用户手册(三)-架构总览转载 2012-03-01 17:21:57 · 466 阅读 · 0 评论 -
HAProxy
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。转载 2012-02-29 15:21:31 · 434 阅读 · 0 评论 -
Netty 3.1 中文用户手册(三)-架构总览
原文地址:http://www.jboss.org/file-access/default/members/netty/freezone/guide/3.1/html_single/index.html Netty 3.1 中文用户手册(一)-序言Netty 3.1 中文用户手册(二)-开始Netty 3.1 中文用户手册(三)-架构总览第二章. 架构总转载 2012-03-01 17:23:11 · 453 阅读 · 0 评论 -
Dynamo一个缺陷的架构设计(译)
Dynamo一个缺陷的架构设计(译)在云计算的时代,Dynamo可以说是一本实现分布式存储的红宝书,借鉴Dynamo实现的产品如雨后春笋般冒出。前段时间本人曾在Twitter上戏称这年头,如果一个号称有“海量数据”的互联网公司,不做一个自己的Dynamo, 出去都不好意思跟人打招呼(http://twitter.com/xmpp/status/8023241449)另外转载 2012-02-29 15:07:51 · 1153 阅读 · 0 评论 -
理解RESTful架构
作者: 阮一峰日期: 2011年9月12日越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环转载 2012-02-29 15:06:19 · 376 阅读 · 0 评论 -
用supervisord管理杂乱的服务
Supervisord是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效。环境centospython2.4安装wget http://pypi.python.org/packages/source/s/supervisor/supervisor-3.0a10.tar.gz#md5=99c6fbd45bade87301296b7a597转载 2012-02-29 15:15:46 · 784 阅读 · 0 评论 -
Netty 3.1 中文用户手册(二)-开始
原文地址: http://www.jboss.org/file-access/default/members/netty/freezone/guide/3.1/html_single/index.html Netty 3.1 中文用户手册(一)-序言Netty 3.1 中文用户手册(二)-开始Netty 3.1 中文用户手册(三)-架构总览 第一章.转载 2012-03-01 17:22:35 · 665 阅读 · 0 评论 -
NIO.2 入门,第 2 部分: 文件系统 API
本文是介绍 Java 7 中的 More New I/O APIs for Java (NIO.2) 的两部分文章的第二部分。 正如在 第一部分 中探索的异通道 API 一样, NIO.2 的文件系统用以前 Java 版本处理 I/O 的相关方法,填补了一些重大的空白。 依照 NIO.2 Java 规范要求(JSR 203):Java 平台早就需要一个文件系统接口而不是 java.io转载 2012-03-01 17:19:46 · 374 阅读 · 0 评论 -
REDIS新的存储模式DISKSTORE
Redis容量及使用规划在使用Redis过程中,我们发现了不少Redis不同于Memcached,也不同于MySQL的特征。(本文主要讨论Redis未启用VM支持情况)1. SchemaMySQL: 需事先设计Memcached: 无需设计Redis: 小型系统可以不用,但是如果要合理的规划及使用Redis,需要事先进行类似如下一些规划数据项: va转载 2012-02-29 14:32:53 · 801 阅读 · 0 评论 -
FastDFS+Nginx 集成并实现断点续传(二)
1.5 安装配置Nginx 这一步非常重要, 需要安装Nginx并给Nginx安装fastdfs-nginx-module模块,以便支持下载和断点续传功能。具体步骤: 执行nginx_install_1.4.2.sh脚本,脚本内容:Shell代码 #!/bin/bash BUILD_DIR="/data/soft" IN转载 2013-08-28 15:52:46 · 4370 阅读 · 1 评论