連接到卡桑德拉0.7我有很多的麻煩試圖升級我existing library從卡桑德拉0.6至0.7β1的。我原本以爲這是一個操作問題的順序,所以我決定把它分解成基本的東西。在.NET
這裏是我將被起訴
TTransport framedTransport = new TFramedTransport(new TSocket("localhost", 9160));
TTransport socketTransport = new TSocket("localhost", 9160);
TProtocol framedProtocol = new TBinaryProtocol(framedTransport);
TProtocol socketProtocol = new TBinaryProtocol(socketTransport);
然後我試圖改變所述客戶端的設置通過以下方式切換輸入和輸出的協議的基本設置:
var client = new Cassandra.Client(framedProtocol, framedProtocol); // all framed
var client = new Cassandra.Client(socketProtocol, socketProtocol); // all socket
var client = new Cassandra.Client(framedProtocol, socketProtocol); // in: framed out: socket
var client = new Cassandra.Client(socketProtocol, framedProtocol); // in: socket out: framed
然後我執行下面的程序,它使用來自from the download的默認Cassandra配置,我正在做一個簡單的請求,例如計數,因爲沒有插入數據,我希望它返回零。
framedTransport.Open();
socketTransport.Open();
Console.WriteLine("Start");
client.set_keyspace("Keyspace1");
var key = System.Text.Encoding.ASCII.GetBytes("MyKey");
var columns = new List<byte[]>(new[] { System.Text.Encoding.ASCII.GetBytes("MyColumn") });
var column_parent = new ColumnParent {
Column_family = "Standard1"
};
var predicate = new SlicePredicate {
Column_names = columns
};
client.get_count(key, column_parent, predicate, ConsistencyLevel.ALL);
Console.WriteLine("Done");
Console.Read();
我上面提供的4個不同設置中的每一個都無法執行。他們中的一些只是鎖定,另一些則拋出異常。所以基本上我被卡住了,試圖獲得一個與.NET框架一起使用新Cassandra 0.7的連接。
下面是我發現的每個問題類型:
all framed
:上set_keyspaceall socket
鎖定了:拋出無效的方法名: 'set_keyspace' 上set_keyspacein: framed out: socket
:鎖起來的set_keyspacein: socket out: framed
:鎖定set_keyspace
我99%肯定它與我在Cassandra的Thrift層做的事情有關,因爲我無法獲得這個簡單的應用程序的工作。但是,如果你想瀏覽我的0.7分支,你可以在這裏找到:
http://github.com/managedfusion/fluentcassandra/tree/0.7
所以這是你的故障運行cassandra,你已經投了-1爲jbellis答案,而他提到最常見的情況時,連接到0.7? – 2010-09-17 05:38:34
順便說一句,不要使用環境變量。 – 2010-09-17 05:44:05
除了使用環境變量之外,沒有其他輕鬆啓動Cassandra批處理文件的方法。而傑貝利斯被拒絕了,因爲他所說的一切都是個人意見,而事實上根本不是事實。 C#Thrift代碼沒有錯誤,它是Thrift中沒有經歷0.2到0.4之間任何更改的庫中的一個。其次,爲進出指定不同的協議並不是瘋狂的行爲,特別是如果你想使用不同的服務器進行讀寫。它被拒絕了,因爲它實際上都不是基於它的。順便說一句,你不應該使用投票系統進行惡意行爲。 – 2010-09-18 12:45:38