कॉलिंग org.apache.zookeeper.server.quorum.QuorumPeerMain.main() काम नहीं कर रहा है।क्या यूनिट परीक्षणों के लिए कहें, प्रक्रिया में एक ज़ूकीपर सर्वर उदाहरण शुरू करना संभव है?
उत्तर
फोन ZooKeeper
आप ZooKeeperServerMain
वर्ग पर अमल करने के लिए है शुरू करने के लिए।
आप एम्बेडेड मोड में ZooKeeper
शुरू करने के लिए निम्न कोड का उपयोग कर सकते हैं।
Properties startupProperties = ...
QuorumPeerConfig quorumConfiguration = new QuorumPeerConfig();
try {
quorumConfiguration.parseProperties(startupProperties);
} catch(Exception e) {
throw new RuntimeException(e);
}
zooKeeperServer = new ZooKeeperServerMain();
final ServerConfig configuration = new ServerConfig();
configuration.readFrom(quorumConfiguration);
new Thread() {
public void run() {
try {
zooKeeperServer.runFromConfig(configuration);
} catch (IOException e) {
log.error("ZooKeeper Failed", e);
}
}
}.start();
यूनिट परीक्षणों के लिए जाने का यह तरीका है। QuorumPeerMain का उपयोग केवल मल्टी सर्वर (क्लस्टर) जुकीपर के लिए है। – sourcedelica
स्वीकार्य उत्तर से यह एक बहुत साफ समाधान है। –
यह पहले क्लास के संदर्भ में उपयोगी है, लेकिन परीक्षणों के बीच इसे बंद करना (नोड्स को साफ करने के लिए, उदाहरण के लिए) गैर-तुच्छ है - मैंने क्यूरेटर-आधारित समाधान को छोड़ दिया और स्विच किया। (thread.stop/interrupt में JUnitRunner को रोकने के बाद) –
आप इस तरह कुछ उपयोग कर सकते हैं।
int clientPort = 21818; // none-standard
int numConnections = 5000;
int tickTime = 2000;
String dataDirectory = System.getProperty("java.io.tmpdir");
File dir = new File(dataDirectory, "zookeeper").getAbsoluteFile();
ZooKeeperServer server = new ZooKeeperServer(dir, dir, tickTime);
NIOServerCnxn.Factory standaloneServerFactory = new NIOServerCnxn.Factory(new InetSocketAddress(clientPort), numConnections);
standaloneServerFactory.startup(server); // start the server.
और यह बंद करने के लिए सिर्फ standaloneServerFactory.shutdown()
ServerConfig config = new ServerConfig();
config.parse(new String[] {port, dir});
ZooKeeperServerMain zk = new ZooKeeperServerMain();
zk.runFromConfig(config);
आप इस तरह से ज़ूकीपर सर्वर नहीं चला सकते हैं क्योंकि यह zk.runFromConfig (config) के बाद निम्न कोड i.e. कोड को अवरुद्ध करेगा; निष्पादित होने से। –
एक अल्पकालिक बंदरगाह (zkPort
द्वारा दिखाया गया है) के उपयोग को जोड़कर बिल्डिंग 1 के जवाब पर और नवीनतम ZK एपीआई के लिए अद्यतन:
int tickTime = 2000;
int numConnections = 5000;
String dataDirectory = System.getProperty("java.io.tmpdir");
File dir = new File(dataDirectory, "zookeeper").getAbsoluteFile();
ZooKeeperServer server = new ZooKeeperServer(dir, dir, tickTime);
standaloneServerFactory = ServerCnxnFactory.createFactory(0, numConnections);
int zkPort = standaloneServerFactory.getLocalPort();
standaloneServerFactory.startup(server);
आप शायद इस तरह चिड़ियाघर रखरखाव सर्वर शुरू नहीं कर सकते क्योंकि यह सभी बाद के कोड को स्टैंडअलोन ServerFactory.startup (सर्वर) के बाद निष्पादित करने से रोक देगा; –
Netfix Curator एक रूपरेखा opensourced बनाने के लिए जुकीपर का उपयोग और भी सुविधाजनक है। यह परीक्षण सर्वर वर्ग में बनाया गया है। आप Maven का उपयोग करते हैं तो बस अपने प्रोजेक्ट की pom.xml
से जोड़ें:
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-test</artifactId>
<version>2.2.0-incubating</version>
<scope>test</scope>
</dependency>
और यहाँ परीक्षण अनिवार्य कर रहे हैं।
TestingServer zkTestServer;
@Before
public void startZookeeper() throws Exception {
zkTestServer = new TestingServer(2181);
cli = CuratorFrameworkFactory.newClient(zkTestServer.getConnectString(), new RetryOneTime(2000));
}
@After
public void stopZookeeper() throws IOException {
cli.close();
zkTestServer.stop();
}
cli
किसी भी परीक्षण डेटा को बनाना बहुत आसान है।
cli.create().forPath("/a1", "testvalue".getBytes());
मेरे लिए यह curi.start() क्यूरेटर संस्करण 2.10.0 –
@ माइकलबॉकिंग धन्यवाद का उपयोग कर काम नहीं किया! मुझे पहले 'cli.start()' को कॉल करने की भी आवश्यकता थी, फिर उसने काम करना शुरू कर दिया –
जेफबॉर्न के उत्तर का एक अद्यतन संस्करण।
int clientPort = 2199; // not standard
int numConnections = 5000;
int tickTime = 2000;
String dataDirectory = System.getProperty("java.io.tmpdir");
File dir = new File(dataDirectory, "zookeeper").getAbsoluteFile();
ZooKeeperServer server = new ZooKeeperServer(dir, dir, tickTime);
ServerCnxnFactory factory = new NIOServerCnxnFactory();
factory.configure(new InetSocketAddress(clientPort), numConnections);
factory.startup(server); // start the server.
// ...shutdown some time later
factory.shutdown();
- 1. क्या कुछ यूनिट परीक्षणों को अनदेखा करना संभव है?
- 2. प्रक्रिया सर्वर से बाहर COM कई उदाहरण शुरू करता है
- 3. क्या यूनिट परीक्षणों के तहत एंड्रॉइड सेवाओं का नकल करना संभव है?
- 4. यूनिट परीक्षणों में हैशसेट
- 5. क्या पाइथन यूनिट परीक्षणों के लिए कोई दृश्य उपकरण है?
- 6. एक अलग प्रक्रिया शुरू करना
- 7. क्या यूनिट परीक्षणों के मेमोरी उपयोग को प्रोफाइल करना संभव है?
- 8. एंड्रॉइड: एक ही कार्य में एक गतिविधि के कई उदाहरण शुरू करना संभव है?
- 9. क्या javanit परीक्षणों में java.lang.instrument.Instrumentation का उपयोग करना संभव है?
- 10. ज़ूकीपर
- 11. क्या ज़ूकीपर में सभी वंशज नोड्स पर घटनाओं के लिए देखना संभव है?
- 12. डीबगिंग डब्ल्यू/प्रक्रिया शुरू करने के लिए एएसपी.NET देव सर्वर
- 13. यूनिट परीक्षणों में PHP फ़ंक्शंस का मजाक
- 14. क्या एक सर्वर एक अनंत प्रक्रिया है जो पृष्ठभूमि प्रक्रिया के रूप में चल रहा है?
- 15. क्या ज़ूकीपर ऑब्जेक्ट कैशिंग के लिए उपयुक्त है?
- 16. क्या किसी अन्य जावा प्रक्रिया में किसी अन्य जावा प्रक्रिया को मारने/रोकने के लिए एक जेवीएम में जावा प्रक्रिया के लिए संभव है?
- 17. आरएसपीसी यूनिट परीक्षणों में दौड़ की स्थिति को सिमुलेट करना
- 18. क्या शॉर्टकट के साथ सेवा शुरू करना संभव है?
- 19. क्या आईफोन में एक्स 11 सर्वर पोर्ट करना संभव है?
- 20. "पूर्ण" यूनिट परीक्षणों को बदलने के लिए कब ठीक है?
- 21. यूनिट परीक्षणों में यादृच्छिकता और/या पुनरावृत्तियों का उपयोग करना?
- 22. क्या विजुअल स्टूडियो सी # में परीक्षणों का क्रम निर्दिष्ट करना संभव है?
- 23. सी # में यूनिट परीक्षण का एक उदाहरण?
- 24. क्या 7zip संपीड़न फिर से शुरू करना संभव है?
- 25. यूनिट परीक्षणों में assertArrayEquals का उपयोग
- 26. आप अपने यूनिट परीक्षणों के साथ क्या परीक्षण करते हैं?
- 27. क्या जावास्क्रिप्ट में document.cookie को मॉक करना संभव है?
- 28. क्या यूएसी एक और प्रक्रिया शुरू किए बिना एक प्रक्रिया को बढ़ा सकता है
- 29. पायथन में, यूनिट परीक्षणों के दौरान कुछ कोड अक्षम करने के लिए एक अच्छा पैटर्न क्या है?
- 30. यूनिट परीक्षणों में डेटटाइम.अब कैसे नकल करें?
इसके अलावा, इकाई में इस्तेमाल के लिए एक स्मृति में चिड़ियाघर संचालक कार्यान्वयन के साथ क्यूरेटर ढांचे जहाजों – manku
क्यूरेटर एक परीक्षण चिड़ियाघर संचालक के साथ जहाज है परीक्षण, लेकिन यह स्मृति में _not_ है। यह एक temp निर्देशिका में डिस्क पर डेटा स्टोर करता है। –