MULE kick start

The article after is a very good one to explain how the hello example to work by the Mule.

[url]http://www.devx.com/enterprise/Article/26680/0/page/1[/url]

[url]http://www.devx.com/enterprise/Article/26680/0/page/2[/url]

Mule official manual about hello example.

[url]http://mule.codehaus.org/Hello+World+Example[/url]

发表在 J2EE, 未分类 | 留下评论

php中序列化与解序列化 vs BT bencoding的编码方法

print_r( unserialize('a:7:{s:3:"aid";i:1752;s:4:"name";s:9:"cmkit.zip";s:4:"type";s:3:"zip";s:9:"attachurl";s:19:"
Mon_0506/4_1752.zip";s:8:"needrvrc";N;s:4:"size";d:71;s:4:"hits";i:0;}'));
echo serialize(12345);
echo serialize('abcde');
$arr=array(1=>'12345',2=>'abcde');
echo serialize($arr);

echo '
';
class ab{
 var $a=1;
 var $b='1';
 var $c;
 function cccc(){
  return ;
 }
}
$aa=new ab;
echo serialize($aa);
?>

输入:Array
(
[aid] => 1752
[name] => cmkit.zip
[type] => zip
[attachurl] => Mon_0506/4_1752.zip
[needrvrc] =>
[size] => 71
[hits] => 0
)
i:12345;s:5:”abcde”;a:2:{i:1;s:5:”12345″;i:2;s:5:”abcde”;}
O:2:”ab”:3:{s:1:”a”;i:1;s:1:”b”;s:1:”1″;s:1:”c”;N;}

BT种子文件使用了一种叫bencoding的编码方法来保存数据。
bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),dictionaries(字典)
编码规则如下:
strings(字符串)编码为:<字符串长度>:<字符串>
例如: 4:test 表示为字符串”test”
4:例子 表示为字符串“例子”
字符串长度单位为字节
没开始或结束标记

integers(整数)编码为:i<整数>e
开始标记i,结束标记为e
例如: i12345e 表示为整数12345
i-12345e 表示为整数-12345
整数没有大小限制
i0e 表示为整数0
lists(列表)编码为:le
开始标记为l,结束标记为e
列表里可以包含任何bencoding编码类型,包括整数,字符串,列表,字典。
例如: l4:test5abcdee 表示为二个字符串["test","abcde"]

dictionaries(字典)编码为de
开始标记为d,结束标记为e
关键字必须为bencoding字符串
值可以为任何bencoding编码类型
例如: d3:agei20ee 表示为{“age”=20}
d4:path3:C:\8:filename8:test.txte 表示为{“path”=”C:\”,”filename”=”test.txt”}

发表在 PHP, 未分类 | 留下评论

mysql终级优化

经过半年来与WJL 主服务器的战斗,经过无数次WJL主服务器的DOWN机与库表修复,得到以
下MYSQL终极优化经验,与各位分享。
一、一定要有MYSQL最新的手册,manual,chm格式的最好,方便搜索与作书签;
二、不管是linux还是bsd,一定要选择最稳定的MYSQL版本。版本太新不好!!!
比如,要是装个MYSQL5。X,那现有的服务器多半要重编PHP,因为人家5。0用了新的认
证协议;我就是吃了这个亏,浪费N多时间;(PHP的问题这里不讨论)
三、一定要多建库,不要把什么都放在一个库里;一般一个库就是一个目录,磁盘IO性能可
可以提升不少,而且MYSQL会用一个新的进程来处理不同库的请求;
四、把mysql/data目录放在一个独立的磁盘上,与WEB所在的磁盘分开,降底IO负荷;
五、根据服务器硬盘条件合理配置my.cnf;
back_log:默认为50,加大到200;
interactive_timeout:原为28800,改小;
key_buffer_size:默认8M,my.ini-huge推荐为384M,WJL主机内存为1G,设为200
m左右,并根据高峰时的内换页平率变;内存越大,这个值可设越高,但不能太高。
max_connections:100,加大1024。
record_buffer:加大,当explan sql时发现file sort又多又慢时,加大,16M;
table_cache:64->512;
关log-bin如果不复制备服务。
一般的信息发布程序不要用InnoDB事务表,事务与存储过程必竟比吃资源。

六、如果有条件就加大内存,如果内存不足,用另一台机器作为专用的MYSQL服务器,交叉
线与WEB或其它应用主服务器(如网游:WOW等)对联,用千兆网卡;
七、最好用linux,不要用BSD作MYSQL服务器。BSD的MYSQL版本不全;
以上只是一部分,欢迎大家补充指正!
希望明天晚上WJL主服务器不要再烂。再烂只有负荷分开。。。。
贴个1G内存,日访问量在10W以上(有ipb论坛,在线150人左右)的WJLWEB服务器的MYSQL配置:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
################################# 2005 01 06
port            = 3306
skip-locking

key_buffer = 128M
max_allowed_packet = 1M
table_cache = 512
sort_buffer = 16M
read_buffer_size = 2M
#thread_cache = 8
query_cache_size= 32M
# Try number of CPU’s*2 for thread_concurrency
# thread_concurrency = 8
# by yejun for speed#############
back_log                =500
interactive_timeout     =7200
net_buffer_length       =64K
max_connections         =1000
record_buffer           =16M
thread_cache_size       =80
wait_timeout            =7200
#################################

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 – 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

发表在 未分类 | 留下评论

mysql4.1.18安装文档RH9 2.4.20-8 smp

su 成root
主机没有GCC所以只好装RPM 二进制包
在mysql.com下载4.1.18最新rpm包(注意不是下rpm src)
md5sun check一下发现没错。
rpm -e mysql旧的版本
rpm -ivh mysql新版本
哦HO发现有一个静态*.so库文件与新版confflict..这个so 又不好del,别的软件在用。
只好下非rpm包二进制版
md5sum check OK。
cp /usr/local/mysql下面
./configure 安装数据库目录等
启动
出错。
为什么?
大家想想。呵呵。

##其实问题的原因很简单就是因为su 成了root 误导的:(

安装完成二进制包后,将support-files下面的my-meddile.cnf 考到/etc/my.cnf

一般WEB主机配置用meddle型配置就差不多,我们的主机并发是500-700个HTTP连接,用这个很正常。要注意是的:my.cnf配置里面:
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
下面有一行:
# Replication Master Server (default)
# binary logging is required for replication
log-bin

# required unique id between 1 and 2^32 – 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id       = 1
要把log-bin #掉。否则严重影响速度!

安装完成后,mysql就在/usr/local/mysql下面(rpm安装在/usr/libexec/下面)

打开服务:$usr/local/mysql/bin/mysqld_safe &

修改root密码,默认的四个账号不安全;

发表在 未分类 | 留下评论

2004 年10月九寨-黄龙5日自游人~

川大4人自游人组

发表在 未分类, 游山玩水 | 留下评论