Pages: 22/290 First page Previous page 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Next page Final page [ View by Articles | List ]
Jun 15
Jun 15
环境:centos6.5.0
打开控制面板
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management

重启mq生效
service rabbitmq-server stop
service rabbitmq-server start

维护账户
新增rabbitmqctl add_user 账户名 密码
设为超级管理员rabbitmqctl set_user_tags 账户名 administrator
查看账户rabbitmqctl list_users
查看账户rabbitmqctl delete_user guest
Jun 15
之前的node httpapi一直使用forever守护,但有时候forever也会莫名奇妙的挂掉,最近尝试使用python来做守护进程(暂定为littledog),通过查收pid,如果没有就启动,但是遇到个问题,在启动的时候直接运行
#node /Service/Api/app.js
显示正常
但是在littledog里执行这句命令的时候始终无法执行
最终找到解决方案
#/usr/local/node/bin/node /Service/Api/app.js
即讲node的地址写全
May 27

 1.用途说明

free命令用来显示内存使用情况。display information about free and used memory on the system。

free 命令相对于top 提供了更简洁的查看系统内存使用情况:

其中的相关说明:

Mem:表示物理内存统计

-/+ buffers/cached:表示物理内存的缓存统计

Swap:表示硬盘上交换分区的使用情况(这里我们不去关心

系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。

我们使用total1、used1、free1、used2、free2 等名称来代表上面统计数据的各值,1、2 分别代表第一行和第二行的数据。

total1: 表示物理内存总量。

used1: 表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。

free1: 未被分配的内存。

shared1: 共享内存,一般系统不会用到,这里也不讨论。

buffers1: 系统分配但未被使用的buffers 数量。

cached1: 系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。

used2: 实际使用的buffers 与cache 总量,也是实际使用的内存总量。

free2: 未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。

2.常用参数

b 以字节为单位显示。

-k 以K字节为单位显示。默认显示。

-m 以兆字节为单位显示。

-s 每隔多少秒重复执行。可编写一个脚本用于监控。

3.数值的单位是m。

Mem开头的行:total是指内存总数。比如这台机器4G内存,实际上已经扣除掉了作为显存的部分。

used是指操作系统已经使用的内存数。这部分既包括操作系统本身使用的部分,也包括应用程序已经使用的部分,还包括缓存的部分。

free是指操作系统还没有使用的内存数。我们通常看到这部分比较小。

shared已经废弃不用,总是显示0。

buffers和cached是指作为缓存的内存数。
-/+ buffers/cache开头的行:(重点看这行)

used列是指应用程序总共使用的内存数。等于Mem.used-Mem.buffers-Mem.cached。

free列是指应用程序还未使用的内存数。这个数据才是我们需要关注的空闲可用内存数。等于Mem.free+Mem.buffers+Mem.cached。如果此行中free列的数据太小,那么就需要优化程序或者增加物理内存了。

May 19

/**
* 观察者模式应用场景实例
*
* 免责声明:本文只是以哈票网举例,示例中并未涉及哈票网任何业务代码,全部原创,如有雷同,纯属巧合。
*
* 场景描述:
* 哈票以购票为核心业务(此模式不限于该业务),但围绕购票会产生不同的其他逻辑,如:
* 1、购票后记录文本日志
* 2、购票后记录数据库日志
* 3、购票后发送短信
* 4、购票送抵扣卷、兑换卷、积分
* 5、其他各类活动等
*
* 传统解决方案:
* 在购票逻辑等类内部增加相关代码,完成各种逻辑。
*
* 存在问题:
* 1、一旦某个业务逻辑发生改变,如购票业务中增加其他业务逻辑,需要修改购票核心文件、甚至购票流程。
* 2、日积月累后,文件冗长,导致后续维护困难。
*
* 存在问题原因主要是程序的"紧密耦合",使用观察模式将目前的业务逻辑优化成"松耦合",达到易维护、易修改的目的,
* 同时也符合面向接口编程的思想。
*
* 观察者模式典型实现方式:
* 1、定义2个接口:观察者(通知)接口、被观察者(主题)接口
* 2、定义2个类,观察者对象实现观察者接口、主题类实现被观者接口
* 3、主题类注册自己需要通知的观察者
* 4、主题类某个业务逻辑发生时通知观察者对象,每个观察者执行自己的业务逻辑。
*
* 示例:如以下代码
*
*/
#===================定义观察者、被观察者接口============
/**
*
* 观察者接口(通知接口)
*
*/
interface ITicketObserver //观察者接口
{
    function onBuyTicketOver($sender, $args); //得到通知后调用的方法
}

/**
*
* 主题接口
*
*/
interface ITicketObservable //被观察对象接口
{
    function addObserver($observer); //提供注册观察者方法
}
#====================主题类实现========================
/**
*
* 主题类(购票)
*
*/
class HipiaoBuy implements ITicketObservable { //实现主题接口(被观察者)
    private $_observers = array (); //通知数组(观察者)
  

    public function buyTicket($ticket) //购票核心类,处理购票流程
{
       // TODO 购票逻辑
      

       //循环通知,调用其onBuyTicketOver实现不同业务逻辑
       foreach ( $this->_observers as $obs )
           $obs->onBuyTicketOver ( $this, $ticket ); //$this 可用来获取主题类句柄,在通知中使用
    }
  
    //添加通知
    public function addObserver($observer) //添加N个通知
{
       $this->_observers [] = $observer;
    }
}

#=========================定义多个通知====================
//短信日志通知
class HipiaoMSM implements ITicketObserver {
    public function onBuyTicketOver($sender, $ticket) {
       echo (date ( 'Y-m-d H:i:s' ) . " 短信日志记录:购票成功:$ticket
");
    }
}
//文本日志通知
class HipiaoTxt implements ITicketObserver {
    public function onBuyTicketOver($sender, $ticket) {
       echo (date ( 'Y-m-d H:i:s' ) . " 文本日志记录:购票成功:$ticket
");
    }
}
//抵扣卷赠送通知
class HipiaoDiKou implements ITicketObserver {
    public function onBuyTicketOver($sender, $ticket) {
       echo (date ( 'Y-m-d H:i:s' ) . " 赠送抵扣卷:购票成功:$ticket 赠送10元抵扣卷1张。
");
    }
}
#============================用户购票====================
$buy = new HipiaoBuy ();
$buy->addObserver ( new HipiaoMSM () ); //根据不同业务逻辑加入各种通知
$buy->addObserver ( new HipiaoTxt () );
$buy->addObserver ( new HipiaoDiKou () );
//购票
$buy->buyTicket ( "一排一号" );

?>
May 17
“我的互联网+ ”博客正式上线,“我的互联网+ ”是一个专注“互联网+”资讯与技术分享的博客!访问地址http://tommyhu.com
May 15
centos 上面默认的yum源是国外的,有的时候速度很不给力,下面介绍如何将yum源更改为网易的
方法/步骤


Quotation

网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错,将yum源设置为163yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。具体设置方法如下:
1,进入yum源配置目录
cd /etc/yum.repos.d
2,备份系统自带的yum源
mv CentOS-Base.repo CentOS-Base.repo.bk
下载163网易的yum源:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
3,更新玩yum源后,执行下边命令更新yum配置,使操作立即生效
yum makecache
4,除了网易之外,国内还有其他不错的yum源,比如中科大和搜狐的,大家可以根据自己需求下载
中科大的yum源:
wget http://centos.ustc.edu.cn/CentOS-Base.repo
sohu的yum源
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
理论上讲,这些yum源redhat系统以及fedora也是可以用 的,但是没有经过测试,需要的站长可以自己测试一下。
May 15
centos6.5安装python-MySQLdb
命令如下:

安装过程:
Pages: 22/290 First page Previous page 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Next page Final page [ View by Articles | List ]