May 5, 2013
linux下安装zeromq消息队列软件
"在上一节 消息中间件的技术选型心得-RabbitMQ、ActiveMQ和ZeroMQ 我们介绍了一些相关的消息队列软件.这里我们对安装zeromqq这款软件的安装及php使用方法介绍一下.\ncentos下安装zeromq消息队列软件.\n一.安装服务端\ncd ~ wget http://download.zeromq.org/zeromq-3.2.3.tar.gz tar zxvf zeromq-3.2.3.tar.gz cd zeromq-3.2.3 ./configure # –prefix=/usr/local/zeromq make \u0026amp;\u0026amp; make install **二.安装php扩展 **\ngit clone git://github.com/mkoppanen/php-zmq.git cd php-zmq phpize ./configure –with-php-config=/usr/local/php/bin/php-config make \u0026amp;\u0026amp; make install 执行完以后,会提示:\nInstalling shared …"
May 5, 2013
消息中间件的技术选型心得-RabbitMQ、ActiveMQ和ZeroMQ
"RabbitMQ、ActiveMQ和ZeroMQ都是极好的消息中间件,但是我们在项目中该选择哪个更适合呢?很多开发者面临这个烦恼。下面我会对这三个消息中间件做一个比较,看了后你们就心中有数了。\nRabbitMQ是AMQP协议领先的一个实现,它实现了代理(Broker)架构,意味着消息在发送到客户端之前可以在中央节点上排队。此特性使得RabbitMQ易于使用和部署,适宜于很多场景如路由、负载均衡或消息持久化等,用消息队列只需几行代码即可搞定。但是,这使得它的可扩展性差,速度较慢,因为中央节点增加了延迟,消息封装后也比较大。\nZeroMQ 是一个非常轻量级的消息系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常可以发现它。与RabbitMQ相比,ZeroMQ支持许多高级消息场景,但是你必须实现ZeroMQ框架中的各个块(比如Socket或Device等)。ZeroMQ非常灵活,但是你必须学习它的80页的手册(如果你要写一个分布式系统,一定要阅读它)。 ActiveMQ居于两者之间,类似于ZemoMQ,它可以部署于代理模式和P2P模式。类似于RabbitMQ,它易于实现高级场景,而 …"
May 5, 2013
editplus查找替换的正则表达式应用
"表达式 说明 \\t 制表符. \\n 新行. . 匹配任意字符. | 匹配表达式左边和右边的字符. 例如, “ab|bc” 匹配 “ab” 或者 “bc”. [] 匹配列表之中的任何单个字符. 例如, “[ab]” 匹配 “a” 或者 “b”. “[0-9]” 匹配任意数字. [^] 匹配列表之外的任何单个字符. 例如, “[^ab]” 匹配 “a” 和 “b” 以外的字符. “[^0-9]” 匹配任意非数字字符. * 其左边的字符被匹配任意次(0次,或者多次). 例如 “be*” 匹配 “b”, “be” 或者 “bee”.\n其左边的字符被匹配至少一次(1次,或者多次). 例如 “be+” 匹配 “be” 或者 “bee” 但是不匹配 “b”. ? 其左边的字符被匹配0次或者1次. 例如 “be?” 匹配 “b” 或者 “be” 但是不匹配 “bee”. ^ 其右边的表达式被匹配在一行的开始. 例如 “^A” 仅仅匹配以 “A” 开头的行."
April 23, 2013
golang中实现自定义数据类型struct
"可以参考: golang中的函数\nfunc.go\npackage main import ( \u0026#34;fmt\u0026#34; ) type stu struct { Name string //首字母大写,允许其它包直接使用,可以直接使用 stu.Name = \u0026#39;test\u0026#39; 也可以使用 setName和getName age int //不允许外面的包使用,可以使用 setAge和getAge方法 } func main() { perl := new(stu) perl.Name = \u0026#34;zhang\u0026#34; // age setAge(perl, 30) age := getAge(perl) fmt.Printf(\u0026#34;%v\\n\u0026#34;, age) //name var name string perl.setName(\u0026#34;sun\u0026#34;) name = perl.getName() fmt.Printf(\u0026#34;%i\\n\u0026#34;, name) //print struct fmt.Printf(\u0026#34;%v\\n\u0026#34;, perl) } …"
April 23, 2013
开发jquery插件
"jquery插件开发文档:\n以下为一简单的实例:\nchajia.js:\n(function($) { //录入框点击事件 $.fn.alertWhileClick = function() { $(this).click(function(){ window.console.log(‘execute click event’); alert($(this).val()); }); window.console.log(‘ok2’); } //获取页面最大div的最大高度 $.fn.maxHeight = function(){ var max = 0; this.each(function(){ window.console.log(‘a’); max = Math.max(max, $(this).height()); }); return max; } })(jQuery); //插件用法 $(function(){ $(‘#login_username’).alertWhileClick(); var tallest = $(‘div’).maxHeight(); …"
April 9, 2013
使用nohup在后台运行scp
"对于scp的用法见:\n需要从远程拷贝一个比较大的文件,所以要让SCP在后台运行\ngoogle搜了一下都是说使用ssh的public key让两台机器可以不用密码连接\n但不是每个人都有这个条件允许两台机器无密码通行的\n所以可以使用下面的方法实现:\n1.nohup scp user@server:path/file localpath\n2.输入密码\n3.按Ctrl+z挂起当前进程\n4.使用命令bg让挂起的进程继续运行"
March 19, 2013
sphinx分布式索引简介
"sphinx分布式索引原理:\n当searchd收到一个对分布式索引的查询时,它做如下操作:\n连接到远程代理\n执行查询\n(在远程代理执行搜索的同时)对本地索引进行查询\n接收来自远程代理的搜索结果\n将所有结果合并,删除重复项\n将合并后的结果返回给客户端\n在应用程序看来,普通索引和分布式索引完全没有区别。\n任一个searchd实例可以同时做为主控端(master,对搜索结果做聚合)和从属端(只做本地\n搜索)。这有如下几点好处:\n集群中的每台机器都可以做为主控端来搜索整个集群,搜索请求可以在主控端之间获 得负载平衡,相当于实现了一种HA(high availability,高可用性),可以应对某个\n节点失效的情况。\n如果在单台多CPU或多核机器上使用,一个做为代理对本机进行搜索的searchd实例 就可以利用到全部的CPU或者核。\n更好的HA支持已在计划之中,到时将允许指定哪些代理之间互相备份、有效性检查、跟踪\n运行中的代理、对检索请求进行负载均衡,等等。\nsphinx分布式索引配置:\nindex dist1\n{\nlocal index to be searched\nthere can be …"
March 9, 2013
linux下启动mysql提示”mysql deamon failed to start”错误的解决办法
"有台linux服务器,系统为centos系统.\n描述:\n网站突然连接不上数据库,于是朋友直接重启了一下服务器。进到cli模式下,执行 service myqsld start 发现还是提示”mysql deamon failed to start”错误信息.\n/etc/init.d/mysqld start\nMySQL Daemon failed to start.\nStarting mysqld: [FAILED]\n查看mysqld的log文件\n#less /var/log/mysqld.log\n/usr/libexec/mysqld: Can’t change dir to ‘XXX’ (Errcode: 13)\n首先是查看数据库日志\nmysqld started\n[Warning] Can’t create test file xxx.lower-test [Warning] Can’t create test file xxx.lower-test /usr/libexec/mysqld: Can’t change dir to ‘/xxx’ (Errcode: 13) …"
February 27, 2013
在zend stuido下使用git插件教程
"上一节zend stuido下安装了git软件插件。下面我们来讲一下git插件的使用方法.\n由于我们目前已经创建好了git项目。所以这里只介绍直接从现成的git项目仓库导入.\n选择菜单”文件(File)”-\u0026gt;”Import”\n点击”Browse…”选择存放git的目录,然后点击”Search”按钮这样就可以读取一些git配置信息,并在上面显示出来项目目录下的所有文件.\n最后一步是选择当前项目的名字,这个随便起的。最后点击”Finish”按钮就可以了。\n这时在IDE左侧会看到项目名字及项目结构信息。\n下面可以修改一个文件,然后在左侧的导航里选择修改的文件,右键点击,选择”Team” 菜单,再选择”Commit”菜单,会弹出一个对话框,在”Commit message”对话框时里输入提示备注信息。点击”Commit”按钮就可以了。"
February 27, 2013
zend studio 安装git插件
"搞php的用zend studio这个ide工具的开发人员应该不在少数,而对于我们团队开发使用svn和git版本控制软件也特别多的。我们公司团队使用的是zendstuido 10与git这两个软件。但默认情况下zendstuido并不支持git这个插件的,这个时候需要我们来手动安装git插件。方法如下:\nzend studio菜单:Help -\u0026gt; Install new software…\n下一步会提示一些是否授受协议之类的。直接选择 我同意(i agree)就可以了。\n下面我们来讲一下如何在zend stuido下使用git插件"