Rumah > Java > javaTutorial > Bagaimana untuk menyelesaikan masalah apabila SpringBoot digunakan ke Tomcat luaran dan tidak boleh didaftarkan ke pelayan Nacos

Bagaimana untuk menyelesaikan masalah apabila SpringBoot digunakan ke Tomcat luaran dan tidak boleh didaftarkan ke pelayan Nacos

WBOY
Lepaskan: 2023-05-13 23:13:04
ke hadapan
2464 orang telah melayarinya

Apa yang berlaku

Baru-baru ini, saya melakukan sokongan persekitaran demonstrasi pembidaan projek (POC), yang perlu menyepadukan pelayan Nacos. Memandangkan projek sedia ada sudah mempunyai kebergantungan berkaitan Nacos, bukankah semudah itu? Buat pelayan baharu, konfigurasikannya dan mulakannya semula beberapa kali, bukan? Walau bagaimanapun, perkara-perkara tidak semudah yang difikirkan. Kod yang sama boleh berjaya didaftarkan apabila dijalankan dalam IDE tempatan saya, tetapi tidak boleh digunakan dalam persekitaran demo Tomcat+War.

Selepas menyahpepijat kod dari jauh, didapati bahawa rangkaian pelanggan Nacos telah dimulakan, tetapi pendaftaran tidak berjaya.

Berfikir

Saya fikir ia mungkin berkaitan dengan mod penggunaan Tomcat, jadi saya menyemak isu rasmi dan StackOverFlow

Acara ini diterbitkan sebagai sebahagian daripada Spring Boot bermula instance Tomcat terbenam . Jika anda menggunakan bekas luaran, tiada bekas terbenam untuk dimulakan dan, oleh itu, tiada acara diterbitkan – berjaya, Acara

akan dikeluarkan. Pelanggan Nacos akan menunggu acara ini berlaku sebelum mendaftarkan dirinya dengan pelayan. Dan kerana ia digunakan dalam Tomcat luaran, Tomcat terbenam tidak akan dimulakan, jadi acara ini tidak akan dicetuskan.

WebServerInitializedEventJadi penyelesaiannya ialah memanggil beberapa kod acara seperti Nacos dan biarkan mereka memulakan pendaftaran.

Kelas pendaftaran automatik Nacos ialah

, yang mewarisi kaedah

Spring Cloud seperti NacosAutoServiceRegistration mendengar acara, tetapkan nombor port dan mulakan pendaftaran. Di sini AbstractAutoServiceRegistration diperolehi daripada acara tersebut dan perlu diperolehi sendiri. AbstractAutoServiceRegistrationbind(WebServerInitializedEvent)this.port

Kedudukan di mana port ditetapkan kelihatan, ia diambil dari Bagaimana untuk menyelesaikan masalah apabila SpringBoot digunakan ke Tomcat luaran dan tidak boleh didaftarkan ke pelayan Nacos, hanya tetapkannya.

org.springframework.cloud.client.serviceregistry.Registration

PenyelesaianBagaimana untuk menyelesaikan masalah apabila SpringBoot digunakan ke Tomcat luaran dan tidak boleh didaftarkan ke pelayan Nacos

Saya menulis kelas konfigurasi lengkap dan meletakkannya di bawah ISU, yang disiarkan terus di bawah.

rreeee

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah apabila SpringBoot digunakan ke Tomcat luaran dan tidak boleh didaftarkan ke pelayan Nacos. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan