注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zjcjack的博客

 
 
 

日志

 
 

Scribe应用实例  

2012-07-05 22:34:58|  分类: scribe |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

源代码里所给的example很简单,但大体上了模拟了其运行的过程,分三个部分。可参考里面的README文件:Configurarion(配置)Running Scribe Server(运行服务器)Logging messages(记录日志)先运行Scribe example来看看效果。


1.Example1:向已经启动的Server发送消息,验证是否被记录下来。

a.创建日志信息存放目录:

  1. mkdir /tmp/scribetest  
b.用example1.conf配置文件启动Scribe服务:

  1. scribed examples/example1.conf  
c.开启另一个终端,使用scribe_cat 向scribe服务发送信息:

  1. echo "hello world" | ./scribe_cat test  

测试过程中你很可能会出现如下错误提示:

  1. Traceback (most recent call last):  
  2.       File "./scribe_cat", line 24,in <module>  
  3.         from scribe import scribe  
  4.       ImportError:no module named scribe  

也就是说python导入模块scribe失败,但我们打开/usr/lib/python2.6/site-packages,发现里面是有scribe的模块的,所以很可能是PYTHONPATH没有配置正确。使用如下命令进行配置:进入到/etc目录,然后输入命令vi profile(profile文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行),在此文件中添加如下内容:

  1. export  PYTHONPATH= ”/usr/lib/python2.6/site-packages”  
  2. source /etc/profile  

也可找到系统安装Python的路径(如我的是/usr/local/python2.6),将/usr/lib/python2.6/site-packages下内容拷贝到/usr/local/lib/python2.6/site-packages下即可。

d.Verify that the message got logged:

  1. cat /tmp/scribetest/test/test_current  
  2. #检查scribe状态(requires root):  
  3. ./scribe_ctrl status  
  4. #检查scribe连接数 (you should see 1 message 'received good'):  
  5. ./scribe_ctrl counters  
  6. #关闭scribe服务:  
  7. ./scribe_ctrl stop  



2. Example2:启动中心服务器和客户端服务器,然后开启一个终端并输入三条命令,并查看结果:
示意图如下:

执行如下命令:

  1. #启动中央服务器  
  2.     scribed example2central.conf &  
  3.     #启动客户端服务器  
  4.     scribed example2client.conf &  
  5.     mkdir /tmp/scribetest2  
  6.     scribed examples/example2central.conf  
  7.     scribed examples/example2client.conf  
  8.     echo "test message" | ./scribe_cat -h localhost:1464 test2  
  9.     echo "this message will be ignored" | ./scribe_cat -h localhost:1464 ignore_me  
  10.     echo "123:this message will be bucketed" | ./scribe_cat -h localhost:1464 bucket_me  

查看结果:

  1. cat /tmp/scribetest/test2/test2_current  
  2. cat /tmp/scribetest/bucket*/bucket_me_current  
  3. ./scribe_ctrl status 1463  
  4. ./scribe_ctrl status 1464  
  5. ./scribe_ctrl counters 1463   #查看中心服务器的统计数据  
  6. ./scribe_ctrl counters 1464   #查看客户端服务器的统计数据  



当客户端服务器讲收到的信息发送给中心服务器后,会删除本地的存储。结果显示:客户端收到三条消息,发送了三条消息;服务器端收到三条消息,忽略了一条消息。


3) Example3:如同Example2启动中心服务器和客户端服务器,但本例测试的是在中心服务器突然down掉的情况下,客户端服务器的缓冲存储功能。

  1. echo  "test message 1" | ./scribe_cat -h localhost:1464 test3   #发送消息1  
  2. cat  /tmp/scribetest/test3/test3_current                     #结果:test  message 1  
  3. ./scribe_ctrl stop 1463                                                     #down掉中心服务器  
  4. ./scribe_ctrl  status 1463                                                #结果:Failed to get status  
  5. echo "test message 2" | ./scribe_cat -h localhost:1464 test3      #发送消息2  
  6. ./scribe_ctrl status 1464                           #结果:WARNING - Failed to connect  
  7. echo "test message 3" | ./scribe_cat -h localhost:1464 test3     #发送消息3  
  8. scribed examples/example2central.conf                      #重新启动中心服务器  
  9. ./scribe_ctrl status 1463                           #结果:ALIVE  
  10. ./scribe_ctrl status 1464                           #结果:ALIVE  
  11. cat /tmp/scribetest/test3/test3_current  

结果:

  1. test message 1  
  2.    
  3. test message 2  
  4.    
  5. test message 3  



全部正常接收。


  评论这张
 
阅读(369)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017