国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Java使用starling分布式消息隊列異步處理事務(wù)

介紹:
  Starling是一個支持MemCache協(xié)議的輕量級持久化服務(wù)器。Starling是讓創(chuàng)建網(wǎng)絡(luò)訪問隊列或者多個隊列異常簡單,也就是說多點和多臺機器間的異步工作進(jìn)程。它是著名微博客網(wǎng)站Twitter開發(fā)用來處理大量的隊列消息,以及保持服務(wù)的響應(yīng)。Starling已經(jīng)在生產(chǎn)環(huán)境中使用,不僅是Twitter在使用,F(xiàn)iveRuns同樣在使用。FiveRuns甚至還根據(jù)自己的應(yīng)用做了改進(jìn) ,他們認(rèn)為網(wǎng)站速度快了很多.
   這是一個支持memcache協(xié)議的輕量級持久化服務(wù)器,因此使用php/perl/ruby/java等多種客戶端都沒問題,可以將較慢的處理邏輯通過消息隊列放在后臺處理,同時也支持多點分布式處理。
   由于starling是目前twitter在生產(chǎn)環(huán)境中運行的,經(jīng)過實踐檢驗過,穩(wěn)定性應(yīng)該不成問題。

 


安裝:
   1.安裝linux下的開發(fā)工具包,最好使用red hat的添加刪除程序安裝.
 (1)在可視化窗口下載打開"添加刪除程序",找到"開發(fā)->開發(fā)工具"打鉤,更新.插入 對應(yīng)的linux安裝盤.
   2.安裝ruby和ruby gem
 (1)安裝錢的準(zhǔn)備
 檢查系統(tǒng)是否已經(jīng)安裝了 ruby,
 #rpm -qa | egrep '(ruby)|(irb)'
 如果已安裝,而且不是你所要的版本,則需要先卸載她,如,
 #rpm -e ruby-docs-1.8.1-7.EL4.2 \
 ruby-1.8.1-7.EL4.2 \
 irb-1.8.1-7.EL4.2 \
 ruby-libs-1.8.1-7.EL4.2 \
 ruby-mode-1.8.1-7.EL4.2 \
 ruby-tcltk-1.8.1-7.EL4.2 \
 ruby-devel-1.8.1-7.EL4.2

 (2)安裝 Ruby
 假設(shè) Ruby 安裝到 /usr/local/ruby
 #mkdir /usr/local/ruby
 #tar -zxvf ruby-1.8.4.tar.gz
 #cd ruby-1.8.4
 #./configure --prefix=/usr/local/ruby
 #make
 #make install

 (3)設(shè)置路徑
 #vi /etc/profile
 在該文件中加入,
 RUBY_HOME=/usr/local/ruby
 PATH=$PATH:$RUBY_HOME/bin
 export RUBY_HOME PATH

 (4)檢查是否安裝成功
 重新登錄,
 #ruby -v
 如果能顯示 ruby 的版本信息(ruby 1.8.4 (2005-12-24) [i686-linux]),則說明已安裝成功。

 (5)安裝 Ruby Gems
 #tar -zxvf rubygems-0.9.0.tgz
 #cd rubygems-0.9.0
 #ruby setup.rb

 (6)檢查是否安裝成功
 #gem -v
 如果能顯示 gem 的版本信息(0.9.0),則說明已安裝成功。
   3.安裝和運行 Starling
 (1)輸入gem install memcache-client starling命令,自動安裝starling.
 (2)輸入#starling --help檢查是否安裝成功,輸出幫助信息及安裝成功.
 (3)啟動Starling
 #starling -h 0.0.0.0 -d -p 22122
 #netstat –lnp

編寫Java客戶端程序:
   java客戶端將使用,XMemcached作為memcache的client.  XMemcached是一個基于java nio的memcached客戶端。具有速度快,支持分布式訪問多個memcached服務(wù)的特點.
  1.下載XMemcached http://xmemcached.googlecode.com/files/xmemcached-1.2.0-stable-include-dependencies.zip
  2.把下載的zip解壓,把里面的jar包都加到一個java項目的classpath中,還需要額外增加一個log4j的包,不然會報錯.
  3.寫一個放數(shù)據(jù)和一個取出數(shù)據(jù)的類
=============放數(shù)據(jù)============================
public class SetQueueTest {

 /**
  * @param args
  * @throws Exception
  */
 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  //連接starling
    //XMemcachedClient是線程安全的,可以被多線程使用  
    XMemcachedClient client= new XMemcachedClient("192.168.4.243", 22122);
    while(true){
   //存儲操作  
     if (!client.set("hello", 0, "dennis"+System.currentTimeMillis())){  
          System.err.println("set error");  
     }
     else{
      System.out.println("ok");
     }
     Thread.sleep(2);
    }
 }

}

=============取數(shù)據(jù)==================
public class GetQueueTest {

 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  //連接starling
    //XMemcachedClient是線程安全的,可以被多線程使用  
    XMemcachedClient client= new XMemcachedClient("192.168.4.243", 22122);
  //存儲操作
    while(true){
     String name=(String)client.get("hello");
    //如果隊列中已經(jīng)沒有數(shù)據(jù)了,休息一下再試
     if(name==null){
      Thread.sleep(5);
      continue;
     }
     System.out.println(name);
   
    }
 }

}

性能測試

這是別人用php測試的結(jié)果,僅供參考.

測試條件:

key的長度16B
value的長度100B,
8個并發(fā)寫入進(jìn)程
每個進(jìn)程插入10,000條記錄
平均每個進(jìn)程花了7秒完成寫入操作,那么照這樣計算:

10000 * 8 / 7 = 每秒寫入11428次

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MQ消息隊列
Twitter網(wǎng)站架構(gòu)學(xué)習(xí)筆記
Gearman分布式遠(yuǎn)程過程處理框架 - Linux
大規(guī)模分布式消息中間件簡介
該如何選擇消息隊列?
java B2B2C Springcloud仿淘寶電子商城系統(tǒng)-RocketMQ與Kafka對比
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服