


Bina sistem perkhidmatan mikro Spring Cloud yang diedarkan dan sangat tersedia
Dengan perkembangan berterusan perniagaan Internet, seni bina perkhidmatan mikro telah menjadi kaedah seni bina pilihan untuk lebih banyak perusahaan. Sebagai rangka kerja mikroperkhidmatan berdasarkan Spring Boot, Spring Cloud mempunyai ciri pengedaran dan ketersediaan tinggi Semakin banyak syarikat mula menggunakannya untuk membina sistem perkhidmatan mikro mereka sendiri.
Artikel ini akan memperkenalkan cara menggunakan Spring Cloud untuk membina sistem perkhidmatan mikro teragih yang sangat tersedia.
1. Bina pusat pendaftaran
Pusat pendaftaran ialah salah satu komponen teras seni bina mikro Spring Cloud Semua perkhidmatan mikro perlu mendaftarkan maklumat mereka sendiri dengan pusat pendaftaran, dan kemudian yang lain perkhidmatan boleh lulus Cari perkhidmatan ini di pusat pendaftaran. Dalam Spring Cloud, Eureka adalah komponen pusat pendaftaran yang sangat baik Ia mempunyai ketersediaan yang tinggi, diedarkan dan ciri-ciri lain, dan boleh memenuhi keperluan pelbagai senario Oleh itu, kami memilih untuk menggunakan Eureka untuk membina pusat pendaftaran.
Sebelum menggunakan Eureka untuk membina pusat pendaftaran, kita perlu memahami beberapa konsep asas Eureka:
- Eureka Server: Bahagian pelayan Eureka, digunakan untuk menerima maklumat pendaftaran daripada pelanggan dan mengekalkannya Senarai maklumat tentang contoh perkhidmatan.
- Pelanggan Eureka: Pelanggan Eureka, pernah mendaftar perkhidmatannya sendiri dengan Pelayan Eureka.
- Contoh perkhidmatan: contoh perkhidmatan mikro yang sedang dijalankan. Contoh perkhidmatan mengandungi alamat IP, nombor port, status kesihatan dan maklumat lain perkhidmatan.
Langkah-langkah untuk menggunakan Eureka untuk membina pusat pendaftaran adalah seperti berikut:
- Buat projek Spring Boot baharu.
- Tambah kebergantungan: Tambah kebergantungan berikut dalam fail pom.xml:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
- Tambah konfigurasi berikut dalam fail application.yml:
server: port: 8761 #设置服务端口号 eureka: instance: hostname: localhost #设置Eureka Server的主机名 client: register-with-eureka: false #设置是否注册自身服务,默认为true,这里设置为false fetch-registry: false #设置是否获取注册列表,默认为true,这里设置为false server: enable-self-preservation: false #设置是否启用自我保护机制,默认为true,这里设置为false
- Buat kelas permulaan Spring Boot baharu dan tambahkan anotasi
@EnableEurekaServer
untuk memulakan perkhidmatan Eureka:
@SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
Melalui langkah di atas, kami berjaya membina pendaftaran berasaskan Eureka pusat. Kami boleh memasukkan http://localhost:8761 dalam penyemak imbas untuk mengakses konsol Eureka Server dan melihat bahawa tiada perkhidmatan didaftarkan ke Eureka Server pada masa ini.
2. Membina penyedia perkhidmatan
Pembekal perkhidmatan ialah perkhidmatan mikro yang melaksanakan perniagaan tertentu Ia akan mendaftarkan maklumatnya sendiri dengan pusat pendaftaran supaya perkhidmatan mikro lain boleh menemuinya dan memanggilnya. Perkhidmatan yang disediakan.
Kami menggunakan contoh mudah di sini untuk membina penyedia perkhidmatan HTTP yang boleh menerima permintaan HTTP dan mengembalikan rentetan.
Langkah-langkah untuk membina penyedia perkhidmatan menggunakan Spring Cloud adalah seperti berikut:
- Buat projek Spring Boot baharu.
- Tambah kebergantungan: Tambah kebergantungan berikut dalam fail pom.xml:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
- Tambah konfigurasi berikut dalam fail application.yml:
server: port: 8080 #设置服务端口号 spring: application: name: test-service #设置服务名称,用于注册到Eureka Server中 eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ #设置Eureka Server地址
- Buat kelas Pengawal baharu dan tambahkan antara muka yang mengembalikan rentetan:
@RestController public class TestController { @GetMapping("/test") public String test() { return "Hello World"; } }
- Tambah anotasi
@EnableDiscoveryClient
dalam kelas permulaan untuk mendayakan fungsi penemuan perkhidmatan :
@SpringBootApplication @EnableDiscoveryClient public class TestServiceApplication { public static void main(String[] args) { SpringApplication.run(TestServiceApplication.class, args); } }
Melalui langkah di atas, kami telah berjaya membina pembekal perkhidmatan. Kita boleh memasukkan http://localhost:8080/test dalam pelayar untuk mengakses perkhidmatan yang disediakannya Jika semuanya normal, kita boleh melihat nilai pulangan Hello World.
3. Membina pengguna perkhidmatan
Pengguna perkhidmatan ialah perkhidmatan mikro yang memanggil perkhidmatan yang disediakan oleh perkhidmatan mikro lain Ia akan menanyakan pusat pendaftaran untuk perkhidmatan mikro yang diperlukan dan kemudian menghubungi perkhidmatan mikro yang disediakan .
Langkah-langkah untuk membina pengguna perkhidmatan menggunakan Spring Cloud adalah seperti berikut:
- Buat projek Spring Boot baharu.
- Tambah kebergantungan: Tambah kebergantungan berikut dalam fail pom.xml:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
- Tambah konfigurasi berikut dalam fail application.yml:
server: port: 8090 #设置服务端口号 spring: application: name: test-consumer #设置服务名称 eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ #设置Eureka Server地址
- Tambah kelas Perkhidmatan untuk memanggil pembekal perkhidmatan:
@Service public class TestService { @Autowired private RestTemplate restTemplate; @HystrixCommand(fallbackMethod = "fallback") public String test() { return restTemplate.getForObject("http://test-service/test", String.class); } public String fallback() { return "fallback"; } }
- Tambah kelas Pengawal untuk mendedahkan antara muka perkhidmatan:
@RestController public class TestController { @Autowired private TestService testService; @GetMapping("/test") public String test() { return testService.test(); } }
- Tambah anotasi
@EnableDiscoveryClient
dalam kelas permulaan untuk mendayakan fungsi penemuan perkhidmatan:
@SpringBootApplication @EnableDiscoveryClient @EnableCircuitBreaker #启用熔断器功能 public class TestConsumerApplication { public static void main(String[] args) { SpringApplication.run(TestConsumerApplication.class, args); } @Bean @LoadBalanced #启用负载均衡功能 public RestTemplate restTemplate() { return new RestTemplate(); } }
Melalui langkah di atas, kami telah berjaya membina pengguna perkhidmatan, yang boleh menghubungi perkhidmatan Pembekal perkhidmatan dan kembalikan hasil yang betul.
4. Bina gateway API
Gerbang API ialah pintu masuk ke sistem mikroperkhidmatan ini memainkan pelbagai peranan seperti penghalaan, pengimbangan beban dan kawalan keselamatan. Dalam Spring Cloud, Zuul ialah komponen gerbang API yang sangat baik yang boleh memenuhi pelbagai keperluan kami.
Langkah-langkah untuk membina get laluan API menggunakan Spring Cloud adalah seperti berikut:
- Buat projek Spring Boot baharu.
- Tambah kebergantungan: Tambah kebergantungan berikut dalam fail pom.xml:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency>
- Tambah konfigurasi berikut dalam fail application.yml:
server: port: 8888 #设置服务端口号 spring: application: name: api-gateway #设置服务名称 eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ #设置Eureka Server地址 zuul: routes: test-service: path: /test/** serviceId: test-service #设置服务提供者名称
- Tambah anotasi
@EnableZuulProxy
dalam kelas permulaan untuk mendayakan fungsi proksi Zuul:
@SpringBootApplication @EnableZuulProxy public class ApiGatewayApplication { public static void main(String[] args) { SpringApplication.run(ApiGatewayApplication.class, args); } }
Melalui langkah di atas, kami berjaya membina get laluan API yang boleh menyambungkan http The ://localhost:8888/test permintaan dimajukan kepada pembekal perkhidmatan dan hasil yang betul dikembalikan.
5 Bina pusat konfigurasi
Pusat konfigurasi boleh mengurus maklumat konfigurasi dalam sistem mikroperkhidmatan, kami boleh mengkonfigurasi sistem dengan lebih mudah.
在Spring Cloud中,Config Server是一个优秀的配置中心组件,它可以与Eureka、Zuul等组件配合使用,构建一个完整的微服务体系。
使用Spring Cloud构建配置中心的步骤如下:
- 新建一个Spring Boot项目。
- 添加依赖:在pom.xml文件中添加如下依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
- 在application.yml文件中添加如下配置:
server: port: 8888 #设置服务端口号 spring: application: name: config-server #设置服务名称 eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ #设置Eureka Server地址 # 配置中心 spring: cloud: config: server: git: uri: https://github.com/{username}/{repository}.git #设置git仓库地址 username: {username} #设置git用户名 password: {password} #设置git密码 search-paths: respo1A/config, respo1B/config #设置配置文件搜索路径 default-label: main #设置git分支
- 在启动类中添加
@EnableConfigServer
注解,用于启用Config Server功能:
@SpringBootApplication @EnableConfigServer public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
通过以上的步骤,我们就成功构建了一个Config Server。我们可以将配置文件上传到git仓库中,然后通过http://localhost:8888/application-dev.properties的方式获取指定的配置文件。
六、 总结
通过以上的步骤,我们成功地构建了一个高可用、分布式的Spring Cloud微服务体系,包括了注册中心、服务提供者、服务消费者、API网关和配置中心。在实际应用过程中,我们可以通过这些组件自由组合,构建出更加复杂、高效的微服务体系。
Atas ialah kandungan terperinci Bina sistem perkhidmatan mikro Spring Cloud yang diedarkan dan sangat tersedia. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Seni bina sistem teragih PHP mencapai kebolehskalaan, prestasi dan toleransi kesalahan dengan mengedarkan komponen yang berbeza merentasi mesin yang disambungkan ke rangkaian. Seni bina termasuk pelayan aplikasi, baris gilir mesej, pangkalan data, cache dan pengimbang beban. Langkah-langkah untuk memindahkan aplikasi PHP ke seni bina yang diedarkan termasuk: Mengenal pasti sempadan perkhidmatan Memilih sistem baris gilir mesej Mengguna pakai rangka kerja mikroperkhidmatan Penggunaan kepada pengurusan kontena Penemuan perkhidmatan

Cara menggunakan Workerman untuk membina sistem pengimbangan beban dengan ketersediaan tinggi memerlukan contoh kod khusus Dalam bidang teknologi moden, dengan perkembangan pesat Internet, semakin banyak laman web dan aplikasi perlu mengendalikan sejumlah besar permintaan serentak. Untuk mencapai ketersediaan tinggi dan prestasi tinggi, sistem pengimbangan beban telah menjadi salah satu komponen penting. Artikel ini akan memperkenalkan cara menggunakan rangka kerja sumber terbuka PHP Workerman untuk membina sistem pengimbangan beban dengan ketersediaan tinggi dan menyediakan contoh kod khusus. 1. Pengenalan kepada Workerman Worke

Redis: teknologi utama untuk membina sistem pangkalan data berketersediaan tinggi Dengan perkembangan Internet dan kemunculan era data besar, keperluan untuk sistem pangkalan data ketersediaan tinggi menjadi semakin mendesak. Sebagai sistem pangkalan data NoSQL storan dalam memori, Redis telah menjadi salah satu teknologi utama untuk membina sistem pangkalan data ketersediaan tinggi kerana prestasi cemerlang dan model data yang fleksibel. Artikel ini akan menyelidiki teknologi ketersediaan tinggi Redis dan menunjukkannya dengan contoh kod khusus. 1. Keperluan ketersediaan tinggi Redis dalam aplikasi sebenar

Perangkap dalam Bahasa Go Semasa Merekabentuk Sistem Teragih Go ialah bahasa popular yang digunakan untuk membangunkan sistem teragih. Walau bagaimanapun, terdapat beberapa perangkap yang perlu diberi perhatian apabila menggunakan Go yang boleh menjejaskan kekukuhan, prestasi dan ketepatan sistem anda. Artikel ini akan meneroka beberapa perangkap biasa dan memberikan contoh praktikal tentang cara mengelakkannya. 1. Terlalu banyak menggunakan concurrency Go ialah bahasa concurrency yang menggalakkan pembangun menggunakan goroutine untuk meningkatkan paralelisme. Walau bagaimanapun, penggunaan konkurensi yang berlebihan boleh menyebabkan ketidakstabilan sistem kerana terlalu banyak gorout bersaing untuk mendapatkan sumber dan menyebabkan overhed penukaran konteks. Kes praktikal: Penggunaan concurrency yang berlebihan membawa kepada kelewatan respons perkhidmatan dan persaingan sumber, yang ditunjukkan sebagai penggunaan CPU yang tinggi dan overhed kutipan sampah yang tinggi.

Dalam sistem pengedaran Go, caching boleh dilaksanakan menggunakan pakej groupcache Pakej ini menyediakan antara muka caching umum dan menyokong pelbagai strategi caching, seperti LRU, LFU, ARC dan FIFO. Memanfaatkan groupcache boleh meningkatkan prestasi aplikasi dengan ketara, mengurangkan beban bahagian belakang dan meningkatkan kebolehpercayaan sistem. Kaedah pelaksanaan khusus adalah seperti berikut: Import pakej yang diperlukan, tetapkan saiz kolam cache, tentukan kolam cache, tetapkan masa tamat cache, tetapkan bilangan permintaan nilai serentak dan proses keputusan permintaan nilai.

Dengan perkembangan pesat Internet, sistem yang diedarkan telah menjadi standard untuk pembangunan perisian moden. Dalam sistem teragih, komunikasi yang cekap diperlukan antara nod untuk melaksanakan pelbagai logik perniagaan yang kompleks. Sebagai bahasa berprestasi tinggi, C++ juga mempunyai kelebihan unik dalam pembangunan sistem teragih. Artikel ini akan memperkenalkan anda kepada amalan lanjutan pengaturcaraan rangkaian C++ dan membantu anda membina sistem teragih yang sangat berskala. 1. Pengetahuan asas pengaturcaraan rangkaian C++ Sebelum membincangkan amalan lanjutan pengaturcaraan rangkaian C++,

Membina seni bina dipacu mesej menggunakan fungsi Golang termasuk langkah berikut: mencipta sumber acara dan menjana acara. Pilih baris gilir mesej untuk menyimpan dan memajukan acara. Gunakan fungsi Go sebagai pelanggan untuk melanggan dan memproses acara daripada baris gilir mesej.

Golang ialah bahasa pengaturcaraan yang cekap, ringkas dan selamat yang boleh membantu pembangun melaksanakan sistem teragih yang sangat tersedia. Dalam artikel ini, kami akan meneroka cara Golang melaksanakan sistem teragih yang sangat tersedia dan menyediakan beberapa contoh kod khusus. Cabaran Sistem Teragih Sistem teragih ialah sistem di mana berbilang peserta bekerjasama. Peserta dalam sistem teragih mungkin nod berbeza yang diedarkan dalam pelbagai aspek seperti lokasi geografi, rangkaian dan struktur organisasi. Apabila melaksanakan sistem teragih, terdapat banyak cabaran yang perlu ditangani, seperti:
