Dengan pembangunan berterusan perniagaan Internet, aplikasi tunggal tidak lagi dapat memenuhi keperluan keperluan perniagaan yang kompleks, dan seni bina perkhidmatan mikro secara beransur-ansur menjadi model seni bina perniagaan yang popular. Spring Cloud ialah salah satu teknologi sokongan yang penting di bawah sistem seni bina perkhidmatan mikro, dan pelaksanaan fungsi penemuan dan pendaftaran perkhidmatannya adalah sangat penting. Artikel ini akan menerangkan secara terperinci pendaftaran perkhidmatan dan fungsi penemuan dalam Spring Cloud.
Dalam seni bina perkhidmatan mikro, setiap modul berfungsi ialah perkhidmatan bebas dan perkhidmatan perlu berkomunikasi antara satu sama lain, jadi mekanisme diperlukan untuk mengurusnya. Komunikasi antara perkhidmatan. Mekanisme pendaftaran dan penemuan perkhidmatan adalah satu mekanisme yang membolehkan perkhidmatan mendaftar secara dinamik dan menemui perkhidmatan lain supaya mereka boleh berkomunikasi dan bekerjasama.
Spring Cloud menyediakan mekanisme untuk pendaftaran dan penemuan perkhidmatan, menyepadukan pusat pendaftaran yang berbeza, seperti Eureka dan konsul. Antaranya, Eureka adalah salah satu pusat pendaftaran paling popular dengan ketersediaan dan prestasi tinggi.
Tujuan pendaftaran perkhidmatan adalah untuk mendaftarkan perkhidmatan ke pusat pendaftaran supaya perkhidmatan lain boleh menggunakannya. Dalam Spring Cloud, fungsi penemuan perkhidmatan dan pendaftaran didayakan melalui anotasi @EnableDiscoveryClient Pada masa yang sama, maklumat konfigurasi yang berkaitan perlu ditambahkan pada fail application.yml.
server: port: 8080 spring: application: name: service-demo eureka: client: service-url: defaultZone: http://localhost:8000/eureka/
Dalam konfigurasi di atas, application.name ialah nama perkhidmatan dan eureka.client.service-url.defaultZone ialah alamat pusat pendaftaran.
Tujuan penemuan perkhidmatan adalah untuk mencari contoh perkhidmatan yang diperlukan daripada pusat pendaftaran dan kemudian memanggil contoh perkhidmatan ini mengikut dasar pengimbangan beban. Spring Cloud menyediakan pelbagai penyelesaian untuk penemuan perkhidmatan dan pengimbangan beban, seperti Ribbon, Feign, dsb.
Apabila menggunakan Ribbon untuk melaksanakan penemuan perkhidmatan dan pengimbangan beban, anda perlu menambah kebergantungan yang berkaitan dalam fail pom.xml. Kod sampel adalah seperti berikut:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>2.2.6.RELEASE</version> </dependency>
Mula-mula, anda perlu menambah anotasi @EnableDiscoveryClient pada kelas permulaan untuk mendayakan pendaftaran perkhidmatan dan fungsi penemuan. Kemudian, anda boleh menggunakan anotasi @LoadBalanced untuk membuat contoh RestTemplate seimbang beban, dan kemudian gunakan tika ini untuk memanggil perkhidmatan lain Kod sampel adalah seperti berikut:
@RestController public class ServiceController { @Autowired private RestTemplate restTemplate; @RequestMapping("/getProduct") public String getProduct() { String result = restTemplate.getForObject("http://product-service/product", String.class); return "get product from " + result; } @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } } @SpringBootApplication @EnableDiscoveryClient public class ServiceDemoApplication { public static void main(String[] args) { SpringApplication.run(ServiceDemoApplication.class, args); } }
Dalam kod di atas, gunakan restTemplate. Kaedah .getForObject() untuk memanggil perkhidmatan lain , anda perlu menggunakan "nama aplikasi" dan bukannya alamat sebenar, seperti "http://product-service/product", di mana product-service ialah nama perkhidmatan.
Spring Cloud menyediakan pendaftaran perkhidmatan dan fungsi penemuan, yang membolehkan setiap contoh perkhidmatan menemui dan memanggil satu sama lain. Melalui mekanisme ini, setiap komponen dalam seni bina perkhidmatan mikro boleh diurus dan dijadualkan dengan lebih mudah, dan ketersediaan dan kebolehskalaan keseluruhan sistem boleh dipertingkatkan.
Atas ialah kandungan terperinci Pendaftaran perkhidmatan dan penemuan dalam perkhidmatan mikro Spring Cloud. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!