2013-06-06 20 views
6

Programlı olarak Cassandra düğümleri oluşturuyoruz (otomatik üreten yaml ve CassandraDaemon kullanıyor). İdeal olarak, yapılandırma gereksinimleri nedeniyle farklı ana bilgisayarlarda farklı bağlantı noktaları kullanabilecektik. Bu mümkün mü (tohum belirtimi veya özel bir sınıfın uygulanması yoluyla)? Tohum listesinin sadece IP adreslerini alabildiği ve portları değil gibi göründüğü görülmektedir.Cassandra kümesindeki düğümler için farklı bağlantı noktaları kullanmak mümkün mü?

cevap

3

Cassandra ağ kodunda ilgili source'a baktıktan sonra, bunun desteklenmediği açıktır. newSocket() yönteminde, uzak düğüme ait bağlantı noktası, statik DatabaseDescriptor.getSSLStoragePort()'dan (aşağıdaki alıntı) elde edilir. Bu, herhangi bir ana bilgisayar veya farklı bir değer sağlamaz:

public Socket newSocket() throws IOException 
{ 
    // zero means 'bind on any available port.' 
    if (isEncryptedChannel()) 
    { 
     return SSLFactory.getSocket(DatabaseDescriptor.getEncryptionOptions(), endPoint(), DatabaseDescriptor.getSSLStoragePort(), FBUtilities.getLocalAddress(), 0); 
    } 
    else { 
     return new Socket(endPoint(), DatabaseDescriptor.getStoragePort(), FBUtilities.getLocalAddress(), 0); 
    } 
} 
2

https://github.com/pcmanus/ccm'a bakın, aynı düğümde çok katmanlı cassandra örnekleri kullanıyorlar. Bunu nasıl yaptığını görebilirsiniz.

+0

Teşekkürler, ancak aynı düğümde birden çok örnek istemiyorum. Farklı bağlantı noktalarını kullanarak aynı kümedeki (ancak farklı ana bilgisayarlarda) örnekleri soruyorum. –

+0

anladığım kadarıyla, bu ccm nesnesi, farklı bağlantı noktalarında aynı düğümde farklı örnekler çalıştırıyor, böylece örnekler bağlantı noktalarında çakışmıyor ve daha sonra bunları aynı kümeye yerleştiriyor. Yani aynı düğümde olmaları değil, farklı portlarda çalışan farklı örneklere sahip olmaları ile ilgili olarak, –

+0

bir göz attım ama farklı portları kullanma konusunda herhangi bir kanıt görmedim. Aynı düğümde farklı IP'ler kullanıyorlar, bu yüzden farklı bağlantı noktaları kullanmaları gerekmiyor. Bu fikrin uzantısında –

İlgili konular