自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 问答 (1)
  • 收藏
  • 关注

原创 FTP连接池

开发目的:使用FTP连接池来管理FTP连接,以避免不断的连接FTP造成性能下降。 1、FTP连接池,建立一个java类FtpConnectionPooling package com.dripstone.ftp;import java.util.concurrent.BlockingQueue;import java.util.concurrent.PriorityB...

2013-07-31 11:23:24 340

原创 Hessian源码浅析-HessianSkeleton

 Hessian服务端核心对象HessianSkeleton 主要做两件事1.把客户端请求的流反序列化  得到 对应的方法名称 参数2. 服务类(service)对应方法执行完成 把结果序列化到输出流hessian服务端暴露服务是通过HessianServlet [java] view plaincopyprint?public class Hes...

2013-07-31 11:20:06 84

原创 Redis复制与可扩展集群搭建

   Redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件全量传输给slave,然后再将dump后的操作实时同步到slave中。下面是一篇介绍Redis复制原理的文章,文章作者为新浪微博的田琪同学(@摇摆巴赫)。本文会讨论一下Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题。Redis复制流...

2013-07-31 11:19:56 63

原创 Java实现FTP文件上传与下载

实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式),分别为:1、通过JDK自带的API实现;2、通过Apache提供的API是实现。 第一种方式package com.cloudpower.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutp...

2013-07-31 11:19:45 65

原创 自己写的FTPClient的使用

首先来个FtpInfo类package org.javawo.components.ftp;/*** FTP连接参数VO类* * @author 杨涛**/public class FtpInfo {/** 登录用户名*/private String name;/** 登录密码*/private String password;/** 登录IP地址*/private String ip...

2013-07-31 11:15:45 1118

原创 Hessian源码浅析-HessianProxy

 Hessian客户端主要是通过proxy代理来实现 当客户端调用远程接口方法时 会被HessianProxy 代理  HessianProxy invoke方法主要做以下工作1.把调用的 方法名称 参数 序列化2.通过HttpURLConnection向服务端发送调用请求3.服务端返回的结果 反序列化Proxy是由HessianProxyFactory创建Hessi...

2013-07-29 20:48:12 94

原创 Hessian 原理分析

  <!-- [if !supportLists]-->一.      <!-- [endif]-->远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http 、 tcp 、 udp 等等, http 、 tcp 、 udp 都是在基于 Socket 概念上为某...

2013-07-29 20:43:46 89

原创 关于hessian中使用Session的问题

   本帖旨在讨论hessian的session以及cookie问题,对于hessian的使用网上和官方已经有很多例子,故不在此做讨论。   最近在做一个项目,client面临多种平台的手机客户端以及pc浏览器的flash,在寻找rpc方案的过程中,最初选择使用phprpc,而phprpc没有Objective-c的client版本(Hprose虽有此版,但似乎收费),后转道hess...

2013-07-29 16:09:45 340

原创 JVM致命错误日志(hs_err_pid.log)解读

致命错误出现的时候,JVM生成了hs_err_pid<pid>.log这样的文件,其中往往包含了虚拟机崩溃原因的重要信息。因为经常遇到,在这篇文章里,我挑选了一个,并且逐段分析它包含的内容(文件可以在文章最后下载)。默认情况下文件是创建在工作目录下的(如果没权限创建的话JVM会尝试把文件写到/tmp这样的临时目录下面去),当然,文件格式和路径也可以通过参数指定,比如:...

2013-07-29 14:17:33 296

原创 使用堆外内存

 有时候对内存进行大对象的读写,会引起JVM长时间的停顿,有时候则是希望最大程度地提高JVM的效率,我们需要自己来管理内存(看起来很像是Java像C++祖宗的妥协吧)。据我所知,很多缓存框架都会使用它,比如我以前使用过的EhCache(给它包装了个酷一点的名字,叫BigMemory),以及现在项目中的Memcached。在nio以前,是没有光明正大的做法的,有一个work around的...

2013-07-29 14:15:02 99

原创 MySQL 使用Navicat8和命令行执行存储过程

首先来看一下执行存储过程的表结构:number, intname, varchar(20)address, varchar(20)city, varchar(15) 1. 使用命令行执行存储过程 mysql> delimiter $mysql> create procedure CustomerInsert (in inumb...

2013-07-25 19:59:32 409

原创 JDK7新特性 监听文件系统的更改

我们用IDE(例如Eclipse)编程,外部更改了代码文件,IDE马上提升“文件有更改”。Jdk7的NIO2.0也提供了这个功能,用于监听文件系统的更改。它采用类似观察者的模式,注册相关的文件更改事件(新建,删除……),当事件发生的,通知相关的监听者。 java.nio.file.*包提供了一个文件更改通知API,叫做Watch Service API. 实现流程如下 1...

2013-07-23 20:39:18 78

原创 Netty初步之hello world .

Java的网络操作一直比较复杂,虽然说在加入NIO之后简单了些,但还不是我这些菜鸟玩得起的,由于存在大量低层操作和协议处理,所以在使用上面还是很难。迄今为止,还没有用NIO写出稳定可靠的网络操作,也许这和具体的应用需求较少也有关系吧。大概也有人和我对NIO有同样的想法,他们最NIO进行了一些封装,所以就有了MIna和现在的Netty。Netty提供异步的、事件驱动的网...

2013-07-23 20:36:06 63

原创 解决c3p0和MySQL集成情况下,连接长时间闲置后重新使用时报错的问题

 MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断开的连接依然有效。在这种情况下,如果客户端代码向 c3p0 连接池请求连接的话,连接池就会把已经失效的连接返回给客户端,客户端在使用该失效连接的时候即抛出异常。   解决这个问题的办法有三种:   1. 增加 MySQL 的 wait_timeout 属性的值。   修改 /...

2013-07-23 11:24:16 247

原创 关于流量升高导致TIME_WAIT增加,MySQL连接大量失败的问题

  搜索有个应用就是每次都会去查一个接口,接口返回用户的信息数据,从而展现不同的筛选和排序效果。大致流程如下AD: 2013云计算架构师峰会超低价抢票中 搜索有个应用就是每次都会去查一个接口,接口返回用户的信息数据,从而展现不同的筛选和排序效果。大致流程如下s.taobao.com(hz)-> memcache ->电信custom接口 -&g...

2013-07-23 11:17:52 461

原创 mysql长连接和短连接的问题

什么是长连接?其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。通常的短连接操作步骤是:连接-》数据传输-》关闭连接;而长连接通常就是:连接-》数据传输-》保持连接-》数据传输-》保持连接-》…………-》关闭连接;这就要求长连接在没有数据通信时,定时发送数据包,以维持连接状态,短连接在没有数据传输时直接关闭就行了什么...

2013-07-23 11:15:55 81

原创 消息系统kafka及其变种Jafka、Metamorphosis (MetaQ)

    1、Kafka : 基于scalakafka是一个发布订阅的消息系统,关注于海量数据、性能和吞吐量,不关注可靠性和事务。-------------------- 以下内容来自oschina的介绍 kafka是一种高吞吐量的分布式发布订阅消息系统,她有如下特性:通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定...

2013-07-18 03:17:27 122

原创 用消息队列和消息应用状态表来消除分布式 事务(转载)

  由于数据量的巨大,大部分Web应用都需要部署很多个数据库实例。这样,有些用户操作就可能需要去修改多个数据库实例中的数据。传统的解决方法是使用分布式事务保证数据的全局一致性,经典的方法是使用两阶段提交协议。长期以来,分布式事务提供的优雅的全局ACID保证麻醉了应用开发者的心灵,很多人都不敢越雷池一步,想像没有分布式事务的世界会是怎样。如今就如MySQL和PostgreSQL这类...

2013-07-18 03:15:04 67

原创 MetaQ初探

  MetaQ(全称Metamorphosis)是一个高性能、高可用、可扩展的分布式消息中间件,,MetaQ具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播和日志数据传输等场景,METAQ在阿里巴巴各个子公司被广泛应用,每天转发250亿+条消息。主要应用于异步解耦,Mysql数据复制,收集日志等场景。总体结构 主要特点生...

2013-07-18 03:13:58 104

原创 my.cnf文件选项

分类: Mysql/postgreSQL mysqld服务器维护两种变量。全局变量影响服务器的全局操作。会话变量影响具体客户端连接相关操作。可以在选项文件或命令行中设置全局变量。用Set命令设置会话变量,当然它也可以设置全局变量。就像oracle里面的初始化参数文件一样。下面是一些常用的选项说明,MySQL的管方文档上也有。如mysql> SET GL...

2013-07-17 20:55:45 93

原创 mysql慢查询日志分析

分类: Mysql/postgreSQL Mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql启动的时候加入一些参数。 如果在my.cnf里面修改,需增加如下几行 long_query_time = 10 log-slow-queries =long_query_time 是指执行超过多...

2013-07-17 20:55:29 48

原创 快速了解MYSQL性能优化

快速了解MYSQL性能优化 2009-02-23 23:41:57分类: Mysql/postgreSQL (1)、back_log: 要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。 back_log值指出在MySQL暂时停止回答新请求之前的短时间内多...

2013-07-17 20:55:16 120

原创 Linux系统高负载 MySQL优化

Linux系统高负载 MySQL优化(1)博客分类:mysql 东东MySQLLinuxCache配置管理算法 Java代码    同时在线访问量继续增大对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机或者时不时的服务器卡一下这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多...

2013-07-17 20:54:56 145

原创 Linux系统自带Mysql、Apache、Php卸载

卸载步骤如下:    卸载Mysql    [root@localhost ~]# rpm -qa|grep mysql    mod_auth_mysql-2.6.1-2.2    php-mysql-4.3.9-3.15    mysql-devel-4.1.20-1.RHEL4.1    mysql-4.1.20-1.RHEL4.1    mysqlclien...

2013-07-17 20:54:29 92

原创 linux下 mysql字符集的修改

安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同一目录下,只需修改其中的my.ini文件,重起后就生效了;所以先来看看linux下MySQL的数据库文件、配置文件和命令文件分别在不同的目录 :     1、数据库目录,其所创建...

2013-07-16 23:12:10 83

原创 CentOS Linux下MySQL 5.1.x的安装、优化和安全配置

发表于: Linux, MySQL, 个人日记 | 作者: 谋万世全局者标签: centos,Linux,mysql,优化,安全配置,安装下载页面:http://dev.mysql.com/downloads/mysql/5.1.html#downloads到页面底部,找到Source downloads,这个是源码版本,下载第1个Tarballgroupadd m...

2013-07-16 23:11:36 289

原创 linux下mysql优化之thread_concurrency

无数的mysql优化教程中提到修改thread_concurrency。大部分人都这样说:“thread_concurrency对mysql的性能有很大的影响,特别是在多核或多cpu环境下,错误设置会导致mysql不能充分利用cpu,而导致性能上不去。thread_concurrency应该设置为CPU个数或核数的2倍,比如双核或双cpu应该设置为4。“以上说明听起来好像很有道理很...

2013-07-16 23:09:57 633

原创 MySQL my.cnf参数配置优化详解

PS:本配置文件针对Dell R710,双至强E5620、16G内存的硬件配置。CentOS 5.6 64位系统,MySQL 5.5.x 稳定版。适用于日IP 50-100w,PV 100-300w的站点,主要使用InnoDB存储引擎。其他应用环境请根据实际情况来设置优化。# 以下选项会被MySQL客户端应用读取。# 注意只有MySQL附带的客户端应用程序保证可以读取这段内容。# 如果你想...

2013-07-16 23:09:43 48

原创 MySQL MyISAM/InnoDB高并发优化经验

 最近做的一个应用,功能要求非常简单,就是 key/value 形式的存储,简单的 INSERT/SELECT,没有任何复杂查询,唯一的问题是量非常大,如果目前投入使用,初期的单表 insert 频率约 20Hz(次/秒,我喜欢这个单位,让我想起国内交流电是 50Hz),但我估计以后会有 500Hz+ 的峰值。目前的工作成果,额定功率 200Hz(CPU 占用 10 – 20,load...

2013-07-16 23:09:25 58

原创 linux下更改MySQL数据库目录位置

MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步个人页面登陆交谈 <!-- comment --><!-- 1 -->MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:  1、home目...

2013-07-12 10:45:18 59

原创 MYSQL数据目录和日志文件

1、Mysql数据默认情况下,通过RPM包安装的MYSQL数据目录为/var/lib/mysql.通过查看/etc目录下MYSQL配置文件my.cnf或者使用管理工具mysqladmin,可以得到mysql数据库目录的路径。#cat /etc/my.cnf#mysqladmin variables | more其中datadir定义了mysql数据目录的位置2、MYSQL数据目录中包含了由服务...

2013-07-12 10:44:55 452

原创 MYSQL启用日志,和查看日志

分类: Mysql/postgreSQL 是否启用了日志mysql>show variables like 'log_bin';怎样知道当前的日志mysql> show master status;看二进制日志文件用mysqlbinlogshell>mysqlbinlog mail-bin.000001或者shell>mysqlbinlo...

2013-07-12 10:43:28 89

原创 Tomcat的体系结构

Tomcat的体系结构图一      图二:   Tomcat 6.0支持Servlet2.5和Jsp2.1规范,由一系列嵌套的组件组成。Service组件:Tomcat服务器的实例。一个JVM中生成一个,可以在一台服务器上配置不同的端口,从而启动多个Tomcat实例。Connector组件:负责连接客户端与应用程序。接受来自客户端的请求以及...

2013-07-12 10:43:01 59

原创 tomcat中的几点配置说明

  1. 如何加大tomcat连接数在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75acceptCount:允许的最大连接数,应大于等于ma...

2013-07-12 10:42:45 41

原创 Linux MySQL更改MySQL数据库目录位置

MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:       1、home目录下建立data目录phpma.comcd /homemkdir data       2、把MySQL服务进程停掉:mysqladmin -u root -p shutdown       3、把/var/lib/mysql整...

2013-07-11 09:00:09 47

原创 MySQL配置文件my.cnf 例子最详细翻译

MySQL配置文件my.cnf 例子最详细翻译,可以保存做笔记用。#BEGIN CONFIG INFO#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大#TYPE: SYSTEM#END CONFIG INFO## 此mysql配置文件例子针对4G内存。# 主要使用INNODB#处理复杂队列并且连接数量较少的mysql服务器## 将此文件复...

2013-07-11 08:59:36 76

原创 CentOS更改MySQL存储目录位置

<!-- end: entry_title_box -->-mysql默认的数据文件存储目录为/var/lib/mysql假如要把目录移到/home/mysqldata下需要进行下面几步:1、home目录下建立mysqldata目录cd /homemkdir mysqldata2、停止mysql进程mysql -u root -p shutdown3...

2013-07-11 08:59:22 137

原创 mysql利用二进制日志来进行恢复数据的实例操作

mysql 利用二进制日志来进行恢复数据的实例操作备份开始前的工作环境准备:1、创建用于保存二进制日志文件的目录# mkdir /mybinlog# chown mysql.mysql /mybinlog2、修改配置文件# vim /etc/my.cnflog-bin=/mybinlog/mysql-bin 二进制日志目录及文件前缀innodb_file_per_table = 1 启...

2013-07-11 08:59:03 150

原创 Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)

PS:昨天一同事遇到mysql 5.5中文乱码问题,找我解决。解决了,有个细节问题网上没人说,我就总结一下。一、登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下:+--------------------------+----------------------------+| Variable_name | Value |+--...

2013-07-11 08:58:52 246

原创 Linux高负载下优化MYSQL

 同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能。安装好mysql后,配制文件应该在/usr/local/mysql/share/mysql目录中,配制文件有几个,有my-huge.cnf m...

2013-07-10 13:50:24 151

空空如也

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

TA关注的人

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