Tata kelola layanan dapat dikatakan sebagai modul inti dan dasar paling dalam arsitektur Microservice. Ini terutama digunakan untuk mewujudkan pendaftaran otomatis dan penemuan berbagai contoh layanan mikro.
Spring Cloud Eureka adalah bagian dari Spring Cloud Netflix Microservices Suite, yang terutama bertanggung jawab untuk menyelesaikan fungsi tata kelola layanan dalam arsitektur layanan mikro.
Artikel ini menggunakan contoh kecil sederhana untuk berbagi cara mengelola layanan melalui eureka:
=============== Saya adalah garis pemisah yang cantik ==================================
1. Bangun pusat pendaftaran layanan
Daftar Pertama Struktur Direktori Lengkap:
Proses konstruksi adalah sebagai berikut:
1. Buat Proyek Maven: Eureka (implementasi spesifik dihilangkan)
2. Ubah file POM dan perkenalkan dependensi
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/maven.romp.romp.romp. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <nodelversion> 4.0.0 </podelversion> <Groupid> com.sam </groupid> <ArTifactid> eureka </artifactid> <version> 0.0.1-Snapshot </Version> </artifactid> <versi> 0.0.1-snapshot </Version> </artifactid> <version> 0.0.1-snapshot </Version> </Version> <groupid> org.springframework.boot </proupid> <ArtiFacTId> Spring-boot-starter-parent </arttifactid> <version> 1.5.1.release </version> </parter> <poperties> <javaversion> 1.8 </javaversion> </Properties> <! <groupid> org.springframework.cloud </groupid> <ArtifactId> ketergantungan cloud-cloud </t Artifactid> <version> camden.sr6 </version> <yype> pom </type> <scepope> </scope-! <GroupId> org.springframework.cloud </groupid> <ArtifactId> Spring-cloud-starter-eureka-server </artifactid> </gandendency> </dependency> </dependencies> </project>
3. Buat kelas startup
/** * * @EnableEureKaserver * Pusat pendaftaran layanan yang digunakan untuk menentukan bahwa proyek ini adalah eureka */@enableeureKaserver@springbootApplicationPublic Class Public Eurekaapp {public static void main (string [] args) {springApplication.run (eurekaapp.class, args); }} 4. Konfigurasikan file application.properties
#Set The TomCat Service Port Number Server.port = 1111#Atur nama layanan spring.application.name = eureka-serviceeureure.instance.hostname = localhost#Center register tidak perlu mendaftarkan dirinya Eureka.client.register-with-eureka = false#Register Center tidak perlu menemukan layanan eure.flient. Leureka.client.serviceurl.defaultzone = http: // $ {eureka.instance.hostname}: $ {server.port}/eureka 5. Mulai layanan dan aksesnya, dan kita akan melihat gambar seperti ini:
2. Daftarkan penyedia layanan
Daftar Pertama Struktur Direktori Lengkap:
Proses konstruksi adalah sebagai berikut:
1. Buat Proyek Maven: Hello-Service (implementasi spesifik dihilangkan)
2. Ubah file POM dan perkenalkan dependensi
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/maven.romp.romp.romp. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <nodelversion> 4.0.0 </modelversion> <groupid> com.sam </groupid> <Artifactid> Hello-service </arttifactid> <version> 0.0.1-Snapshot </Version> </Artartifactid> <version> 0.0.1-Snapshot </Version> </Artartifactid> <version> 0.0.1-Snapshot </Version> </Artartifactid> <version> 0.0.1-Snapshot </Version> <GroupId> org.springframework.boot </groupid> <ArTifactId> Spring-Boot-Starter-Parent </arttifactid> <version> 1.5.1.release </version> </indu <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR6</version> <type>pom</type> <scope>import</scope> </dependency> </dependency> </dependencyManagement> <dependencies> <!-- Introducing eureka client dependencies--> <dependency> <GroupId> org.springframework.cloud </groupid> <ArTifactId> Spring-cloud-starter-eureka </stifactid> </dependency> </dependency> </dependencies> </project>
3. Buat kelas startup
/***** @enableDiscoveryclient* Biarkan layanan menggunakan Eureka Server* untuk mengimplementasikan pendaftaran dan penemuan layanan**/@enableDiscoveryclient@springbootApplicationPublic kelas helloapp {public static void main (string [] args) {springapplication.run (helloapp.class, args); }}4. Buat pengontrol
@RestControllerPublic kelas HelloController {Logger Logger = LoggerFactory.getLogger (HelloController.class); @Autowired Discoveryclient Discoveryclient; @RequestMapping ("/Hello") Public String Hello () {ServiceInstance Instance = DiscoveryClient.GetLocalServiceInstance (); // Cetak Layanan ID Logger.info ("*********" + instance.getServiceId ()); kembalikan "Halo, ini Hello-Service"; }} 5. Konfigurasikan file application.properties
server.port = 9090#Setel nama layanan spring.application.name = hello-service#atur URL dari pusat pendaftaran layanan. Layanan ini harus mendaftarkan dirinya dengan pusat pendaftaran layanan eureka.client.serviceurl.defaultzone = http: // localhost: 1111/eureka
6. Mulai dan Tes
1.) Setelah memulai, konsol Hello-Service akan memiliki kata ini (xxx mewakili nama PC Anda)
Salin kode sebagai berikut: Instance Terdaftar Hello-Service/XXX: Hello-Service: 9090 dengan status up (replikasi = false)
Kata -kata berikut akan dicetak pada konsol Eureka (xxx mewakili nama PC Anda)
Salin kode sebagai berikut: Instance Terdaftar Hello-Service/XXX: Hello-Service: 9090 dengan status up (replikasi = false)
2.) Kunjungi LocalHost: 1111 lagi dan Anda akan menemukan bahwa ada layanan yang terdaftar di pusat pendaftaran
3. Penemuan dan Konsumsi Layanan
Struktur direktori lengkap adalah sebagai berikut:
Proses Konstruksi:
1. Buat proyek Maven (implementasi spesifik dihilangkan)
2. Ubah file POM dan perkenalkan dependensi
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/maven.romp.romp.romp. http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sam</groupId> <artifactId>hello-consumer</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <GroupId> org.springframework.boot </groupid> <ArTifactId> Spring-Boot-Starter-Parent </arttifactid> <version> 1.5.1.release </version> </indu <groupid> org.springframework.cloud </groupid> <ArtifactId> ketergantungan cloud-spring </t Artifactid> <version> camden.sr6 </version> <yype> pom </type> <cuppope> </scope-! <GroupId> org.springframework.cloud </groupid> <ArtifactId> Spring-cloud-starter-eureka </artifactid> </gandendency> <!-memperkenalkan ketergantungan pita digunakan untuk mencapai penyeimbangan beban. Kami hanya menggunakannya di sini, jadi kami tidak akan memperkenalkannya di tempat lain-> <dependency> <groupid> org.springframework.cloud </groupid> <Artifactid> Spring-cloud-starter-ribbon </arttifactid> </dependency> </dependencies> </proyek>
Ada lebih banyak dependensi pita daripada penyedia layanan Hello-Service di sini
3. Buat kelas startup
@EnableDiscoveryClient@springbootApplicationPublic kelas konsumenapp {//@bean diterapkan pada metode dan digunakan untuk mengatur nilai metode pengembalian menjadi bean @bean @loadbalaiced //@loadbalanced untuk mencapai load balancing resttemplate resttemplate () {return new restemplate (); } public static void main (string [] args) {springApplication.run (konsumenApp.class, args); }}@Enablediscoveryclient juga harus digunakan di sini untuk membiarkan layanan menggunakan server eureka untuk mewujudkan pendaftaran dan penemuan layanan
4. Buat pengontrol
@RestControllerPublic Class ConsumerController {// Resisttemplate yang disuntikkan di sini adalah instance yang dikonfigurasi melalui @bean di com.sam.consumerapp @Autowired restTemplate restTemplate; @RequestMapping ("/Hello-Consumer") Public String HelloConsumer () {// Memanggil layanan Hello-Service, perhatikan bahwa nama layanan digunakan di sini, bukan IP+port resttemplate.getForObject ("http: // hello-service/hello", string.class); kembalikan "Hello Consumer Finish !!!"; }}5. Konfigurasikan file application.properties
server.port = 9999Spring.application.name = hello-consumeure.client.serviceurl.defaultzone = http: // localhost: 1111/eureka#proyek konfigurasi di sini sama dengan penyedia layanan hello-layanan hello-layanan
6. Mulai, tes 1.) Mulai Eureka. Untuk menunjukkan efek bertanggung jawab atas keseimbangan, Hello-Service kami memulai dua layanan. Langkah -langkah spesifik untuk memulai dua layanan adalah sebagai berikut
Di atas adalah langkah startup Hello-Service1, dengan nomor port 9090; Metode yang sama diatur ke Hello-Service2, dengan nomor port 9091 (implementasi spesifik dihilangkan).
2.) Mulai Hello-Consumer
3.) Kunjungi http: // localhost: 1111/lagi dan Anda akan menemukan bahwa ada 2 layanan hello-service (nomor port adalah 9090 dan 9091) dan 1 layanan hello-consume
4.) Setelah mengunjungi http: // localhost: 9999/hello-consumer beberapa kali, Anda akan menemukan bahwa hello-service1 dan hello-service2 akan dipanggil pada gilirannya (bertanggung jawab atas keseimbangan telah tercapai), dan Anda dapat mengkonfirmasi konten melalui konsol keduanya (ingat bahwa kami memiliki loggerlogger.info ("*******. ini adalah pencetakan)
4. Ringkasan
Contoh -contoh di atas mewujudkan tata kelola layanan dasar:
PS: Izinkan saya menjelaskan di sini bahwa IDE yang saya gunakan adalah Spring Tool Suite, yang merupakan versi khusus dari Eclipse Spring, yang nyaman bagi kita untuk menggunakan Spring untuk pengembangan. Teman yang tertarik dapat mempelajarinya di Baidu.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.