klien tcp hazelcast untuk layanan tambahan melalui spi

Saya telah membaca dokumentasi tentang memperluas hazelcast http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#extending-hazelcast karena saya melakukan hal yang hampir persis sama. sayangnya dokumentasi hanya menyajikan cara terhubung dari aplikasi anggota yang memiliki akses ke CounterService dan dapat memperoleh instance proxy.

Saya mencoba membuat klien yang dapat berinteraksi dengan CounterService dari luar cluster HC melalui TCP. Adakah yang bisa mengarahkan saya ke mana saya bisa membaca lebih lanjut tentang hal itu. apakah ada alasan mengapa interaksi seperti itu tidak dijelaskan dalam manual?

Atau apakah ini sesederhana mengkonfigurasi klien asli Java? Saya agak bingung, terima kasih atas bantuannya.


person kamiseq    schedule 18.07.2016    source sumber


Jawaban (2)


Inilah yang Anda butuhkan. Anda perlu mengkonfigurasi Java Native Client. Konfigurasinya dijelaskan dengan sangat baik di situs HAzelcast dan juga sangat mirip dengan konfigurasi server Hazelcast.

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

Kurang lebih inilah yang perlu Anda konfigurasikan:

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

Setelah Anda mendapatkan instance HazelcastInstance (yang klien). Anda bisa mendapatkan penangan ke objek terdistribusi Anda dengan menggunakan:

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

Berdasarkan komentar Anda, saya melihat Anda belum menentukan Proxy dan Operasi untuk Layanan Anda. harap baca dokumentasi berikut dengan cermat dan kirimkan kode Anda jika Anda memerlukan bantuan tambahan:

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

person Alexander Petrov    schedule 18.07.2016
comment
Oke, tapi bagaimana Anda bisa menggunakan API yang diekspos oleh layanan Counter saya? (dalam dokumentasi Counter memiliki metode inc()). masih belum jelas bagi saya bagaimana menghubungkan kedua bagian itu. - person kamiseq; 19.07.2016
comment
Oke, Anda perlu 4 hal. 1 layanan - Saya yakin Anda sudah memilikinya. 2. Anda harus memiliki proxy yang akan bertindak sebagai gerbang lokal ke layanan tersebut. Proksi ini harus dibuat dari dalam metode createDistributedObject di layanan Anda. 3. Anda perlu mendefinisikan operasi perluasan AbstrakOperasi 3. Anda memerlukan kode klien, kode ini ada di atas dalam jawaban saya. Setelah Anda mendapatkan objek Terdistribusi dari klien Anda dengan instance.getDistributedObject(CounterService.NAME, k+counter) Anda dapat mentransmisikannya ke - person Alexander Petrov; 19.07.2016
comment
Saya sedang mengatur infrastruktur pengujian saya dan memverifikasi bahwa ini berfungsi seperti yang Anda gambarkan. jadi tidak ada validasi runtime jika proxy yang diperoleh adalah yang benar-benar dapat memanipulasi dengan layanan jarak jauh. - person kamiseq; 19.07.2016

jadi sementara itu saya menanyakan pertanyaan yang sama pada grup hazelcast dan pertama-tama mereka akan mencoba menambahkan dokumentasi yang hilang tentang topik tersebut. kedua Anda perlu menggunakan generator klien dari antarmuka Anda sendiri.

ini tautannya https://groups.google.com/forum/#!topic/hazelcast/QS1UovGLOhQ

person kamiseq    schedule 12.08.2016