- 浏览: 30147 次
最新评论
-
ruanxianqing:
按照你的思路8080提供服务,9090升级完毕但是这个时候需要 ...
基于Nginx实现Java项目无缝升级
文章列表
一:转换如:十进制数12.34,多项式表示: 1*10^1 + 2*10^0 + 3*10^(-1) + 4*10^(-2)化简为二进制表示:整数部分:除2取余,直到商为0,倒序取余表达式 商 余 12/2 6 06/2 3 03/2 1 11/2 0 1 结果为 1100小数部分: 乘2取整,直到小数部分为0或满足精度后(截取),顺序取值表达式 积 整数部分 0.34*2 0.68 ...
输入法中的全角与半角
- 博客分类:
- 杂文记事
问:输入法为什么有全角半角之分
这要从发展史说起:1. 二进制计算机普遍遵循冯诺依曼结构体系,它规定了计算机内部以二进制为主要数制(这和电路有关),所以计算机只认识二进制的0或1。其它符号比如十进制的[2-9],字母[a-zA-Z],标点符号,中文等等是不认识的。那么,当我们说"a"的时候,它是怎么理解的呢?2. 编码表即然计算机只认识01符号,那我们就可以建立一套"映射系统",比如a <--> 00000001b <--> 00000010
数据校验码(奇偶,海明,循环冗余CRC)
- 博客分类:
- 杂文记事
奇偶校验码假设源数据 B = b0b1..bn-1,送到目标部件后,B' = b'0b'1..b'n-1为判断数据是否正确,可以向B添加校验位P,奇校验时P使得序列中1的个数为奇数;偶校验时P使得序列中1的个数为偶步骤如下1. 源部件端求出奇(偶)校验位P (异或) 若奇校验,则 P = bn-1⊕bn-2..⊕b0⊕1,当B序列中1的个数为奇数时,P=0,否则 P=1 若偶校验,则 P = bn-1⊕bn-2..⊕b0 ,当B序列中1的个数为偶数时,P=0,否则 P=12. 目标部件求出奇(偶)校验位P' (异或),方法同上3. 由于B与P是一同发送的,假设目标部件接收到 ...
Java内存设置与监控分析
- 博客分类:
- 杂文记事
设置Java运行时内存(tomcat为例)
JAVA_OPTS="-server -Xms2048M -Xmx2048M -Xmn512M -XX:PermSize=256M -XX:MaxPermSize=256M";
server模式,堆内存2G,新生代512MB,永久代256MB,收集器由jvm自动选择。
各区域大小应根据应用的实际情况调整,推荐参数为:不配置。
内存分配情况查看
查看堆内存分配情况:jmap -heap pid
活动实例采集:jmap–histo:live pid
内存回收情况( jstat -gcutil pid 300 ...
Mysql 杂文记事
- 博客分类:
- 杂文记事
物理结构
MySQL物理结构主要由三部分文件组成:日志文件,数据文件,复本文件。
1. 日志文件
ErrorLog:记录了MyQL Server运行过程中所有较为严重的警告和错误信息,以及MySQL
Server每次启动和关闭的详细信息。
BinLog:BinLog是MySQL Server中最为重要的日志之一,它将所有修改数据库数据的query以二进制形式记录到日志文件中,包括执行时间,消耗资源以及相关的事务信息,所以binlog
Ant_Ivy项目安装记事
- 博客分类:
- 杂文记事
简述
ant 是一款项目管理工具,能将软件开发各生命周期的活动联系起来,实现自动化编译、测试、部署等工作。ivy则专注于依赖管理,通常是与ant一起使用的,目前开源项目都喜欢选择ant + ivy或maven实现项目管理。
maven是一款基于ant的后起之秀,主要思想是互通的,具体语法实现可另行参考文档:
Ant:http://ant.apache.org
Ivy:http://ant.apache.org/ivy
Maven:http://maven.apache.org
Ant安装
1. 下载最新安装包:http://ant.apache.org
spring 上下文被重复加载的问题记事
- 博客分类:
- 杂文记事
项目环境:springmvc, spring, hibernate
事情是这样的,项目在启动时需要启动一个线程,执行扫描任务,因为不是例行性任务,所以不考虑quartz,要完成这个功能,可以有多种实现方法,比如:
1. 自定义监听器
public class StartupListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
ServletContext context = event.getServle ...
简述
Btrace是Java平台的动态追踪工具,可以在运行时向字节码文件注入追踪代码,无侵入性地对项目进行缺陷分析。Btrace可以通过命令行或VisualVM插件的方式与项目集成。
Btrace可能因为以下原因而引起Jvm崩溃,所以在使用时应该谨慎行事:
1. Btrace 向JVM提交了非法的.class文件(bug in BTrace instrumentor)
2. Hotswap bug in HotSpot JVM
约束
Btrace为了确保数据安全,对追踪代码做了以下限制:
1. 不能创建新对象,新数组
2. 不能抛异常,捕获异常
3. 不能调用外 ...
字符集与编码整理日志
- 博客分类:
- 杂文记事
字符集
字符是各类文字,符号的总称,包括各国家文字,标点符号,图形符号,数字,非打印控制字符等。字符集就是字符的集合,不同字符集包含的字符范围是不一样的,所以不同字符集对字符的表达能力是有差异的。常见的字符集有ASCII,GBx,Big5,Unicode。
字符编码
计算机以二进制序列传输/存储数据,在字符保存之前需要先建立字符到数值的映射关系,这一过程叫做字符编码。比如ASCII约定字符 ’a’ = 0x61,当保存 ‘a’ 时,先从编码表得到数值0x61,然后再做相应保存,解码时也需要使用同一编码规则,否则就有可能因为编码规则不一致,导致解码失败(乱码)。
举例:新建 ...
时区划分
由于地球自转的关系(自西向东),所以东边比西边先看到太阳。在同一时刻东边可能是清晨,西边可能是深夜,对这一时刻的描述就会造成混乱,即时间定义的混乱。
为了克服时间上的混乱,于1884年华盛顿召 ...
Java项目性能瓶颈定位
- 博客分类:
- 杂文记事
文章目标
当Java项目出现性能瓶颈的时候,通常先是对资源消耗做分析,包括CPU,文件IO,网络IO,内存;之后再结合相应工具查找消耗主体的程序代码。本文主要介绍系统资源消耗的分析过程,以及常用的Java线程分析方法。
...
基于Nginx实现Java项目无缝升级
- 博客分类:
- 杂文记事
文章目标
本文主要介绍Nginx安装配置,代理服务器搭建等基础知识,然后通过代理方式,实现Java项目无缝升级,提高系统可用性。
Nginx安装配置
安装
我的环境是CentOS6,请读者根据自身环境选择相应的安装方式,以下内容参考自:http://nginx.org/en/docs
wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rp ...
MongoDB 安装配置
- 博客分类:
- 杂文记事
安装配置
首先到官网 https://www.mongodb.org/downloads 选择合适的安装包,下载后解压缩:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.0.7.tgz
tar -zxvf mongodb-linux-x86_64-rhel62-3.0.7.tgz
#重命名并移动到/opt目录
mv mongodb-linux-x86_64-rhel62-3.0.7 mongodb
mv mongodb /opt
#创建数据库文件目录及日志文件
mkdir ...
Solr SpellCheck 应用
- 博客分类:
- Solr
文章目标
通过对各类型的SpellCheck组件学习,完成项目拼写检查功能。本文使用基于拼写词典的实现方式,solr版本为5.3.0。
SpellCheck 简述
拼写检查是对用户错误输入,响应正确的检查建议。比如输入:周杰轮,响应:你是不是想找 周杰伦 ? Solr的拼写检查大致可分为两类,基于词典与基于Solr索引。
基于词典的拼写检查
FileBasedSpellChecker是基于外部,自定义的拼写文件(spelling.txt)作为拼写词典,通过 n-gram与Levenshtein distance算法,生成独立的拼写索引文件,与Solr主索引无关。配置方式 ...
SolrJ 技术应用
- 博客分类:
- Solr
SolrJ简述
Solr 允许客户端使用Http方式与服务端交互,同时也支持编程语言通信。SolrJ就是基于Java语言的交互实现,通过SolrJ编程接口,可以完成所有Solr支持的文档服务。
文章目标
通过对SolrJ编程接口学习,完成项目基本检索任务,包括索引,查询,分页,高亮,Facet。以下内容是基于 solr5.3.0版本的,请读者选择性阅读。
安装SolrJ
在使用SolrJ之前,需要确保相关包已经添加到类路径下,包安装有以下两种方式:
手动安装:
需要将 solr-5.3.0\dist 目录下的solr-solrj-5.3.0.jar(编译时)与 ...