ไคลเอนต์ Hazelcast TCP สำหรับบริการเพิ่มเติมผ่าน spi

ฉันได้อ่านเอกสารเกี่ยวกับการขยาย Hazelcast แล้ว http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#extending-hazelcast ขณะที่ฉันกำลังทำสิ่งเดียวกันเกือบทั้งหมด น่าเสียดายที่เอกสารประกอบเพียงแสดงวิธีการเชื่อมต่อจากแอปสมาชิกที่สามารถเข้าถึง CounterService และสามารถรับอินสแตนซ์พร็อกซีได้

ฉันพยายามสร้างไคลเอนต์ที่สามารถโต้ตอบกับ CounterService จากภายนอกคลัสเตอร์ HC ผ่าน TCP ใครสามารถชี้ให้ฉันเห็นว่าฉันสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่ไหน มีเหตุผลใดบ้างที่การโต้ตอบดังกล่าวไม่ได้อธิบายไว้ในคู่มือ?

หรือนี่เป็นเรื่องง่ายเหมือนการกำหนดค่าไคลเอ็นต์เนทีฟ Java หรือไม่? ฉันสับสนนิดหน่อย ขอบคุณสำหรับความช่วยเหลือ


person kamiseq    schedule 18.07.2016    source แหล่งที่มา


คำตอบ (2)


นี่คือสิ่งที่คุณต้องการ คุณต้องกำหนดค่า Java Native Client การกำหนดค่าได้รับการอธิบายอย่างดีบนเว็บไซต์ HAzelcast และยังคล้ายกับการกำหนดค่าของเซิร์ฟเวอร์ Hazelcast มาก

http://docs.hazelcast.org/docs/3.6.2/manual/html-single/index.html#hazelcast-java-client

นี่คือสิ่งที่คุณต้องกำหนดค่าไม่มากก็น้อย:

ClientConfig clientConfig = new ClientConfig();
clientConfig.getGroupConfig().setName("dev").setPassword("dev-pass");
clientConfig.getNetworkConfig().addAddress("10.90.0.1", "10.90.0.2:5702");

เมื่อคุณได้รับอินสแตนซ์ของ HazelcastInstance (ไคลเอนต์) คุณสามารถรับตัวจัดการไปยังวัตถุแบบกระจายของคุณได้โดยใช้:

instance.getDistributedObject(CounterService.NAME, k+"counter") 

จากความคิดเห็นของคุณ ฉันเห็นว่าคุณยังไม่ได้กำหนดพร็อกซีและการดำเนินการสำหรับบริการของคุณ โปรดอ่านเอกสารต่อไปนี้อย่างละเอียดและโพสต์โค้ดของคุณหากคุณต้องการความช่วยเหลือเพิ่มเติม:

http://docs.hazelcast.org/docs/3.5/manual/html/spiproxy.html

person Alexander Petrov    schedule 18.07.2016
comment
โอเค แต่คุณสามารถใช้ API ของบริการ Counter ของฉันได้อย่างไร (ในเอกสารประกอบ Counter มีวิธี inc()) ยังคงไม่ชัดเจนสำหรับฉันว่าจะเชื่อมต่อทั้งสองชิ้นนี้อย่างไร - person kamiseq; 19.07.2016
comment
โอเค คุณต้องการ 4 สิ่ง 1 บริการ - ฉันเชื่อว่าคุณมีอยู่แล้ว 2. คุณต้องมีพรอกซีที่จะทำหน้าที่เป็นเกตเวย์ในเครื่องไปยังบริการ ควรสร้างพร็อกซีนี้จากภายในเมธอด createDistributedObject ในบริการของคุณ 3. คุณต้องกำหนดการดำเนินการที่ขยาย AbstractOperation 3. คุณต้องมีรหัสไคลเอ็นต์ รหัสนี้อยู่ด้านบนในคำตอบของฉัน เมื่อคุณได้รับ Distributed object จากไคลเอนต์ของคุณด้วย instance.getDistributedObject(CounterService.NAME, k+counter) คุณสามารถส่งไปที่ - person Alexander Petrov; 19.07.2016
comment
ฉันกำลังตั้งค่าโครงสร้างพื้นฐานการทดสอบและยืนยันว่าการทำงานนี้เป็นไปตามที่คุณอธิบาย ดังนั้นจึงไม่มีการตรวจสอบรันไทม์หากพร็อกซีที่ได้รับเป็นพร็อกซีที่สามารถจัดการกับบริการระยะไกลได้จริง - person kamiseq; 19.07.2016

ในขณะเดียวกัน ฉันก็ถามคำถามเดียวกันกับกลุ่มของ Hazelcast และก่อนอื่นพวกเขาจะพยายามเพิ่มเอกสารที่ขาดหายไปเกี่ยวกับหัวข้อนี้ ประการที่สองคุณต้องใช้ตัวสร้างไคลเอนต์จากอินเทอร์เฟซของคุณเอง

นี่คือลิงค์ https://groups.google.com/forum/#!topic/hazelcast/QS1UovGLOhQ

person kamiseq    schedule 12.08.2016