Rumah Java javaTutorial Bina sistem perkhidmatan mikro Spring Cloud yang diedarkan dan sangat tersedia

Bina sistem perkhidmatan mikro Spring Cloud yang diedarkan dan sangat tersedia

Jun 22, 2023 am 09:06 AM
Ketersediaan tinggi sistem teragih perkhidmatan mikro awan musim bunga

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:

  1. Eureka Server: Bahagian pelayan Eureka, digunakan untuk menerima maklumat pendaftaran daripada pelanggan dan mengekalkannya Senarai maklumat tentang contoh perkhidmatan.
  2. Pelanggan Eureka: Pelanggan Eureka, pernah mendaftar perkhidmatannya sendiri dengan Pelayan Eureka.
  3. 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:

  1. Buat projek Spring Boot baharu.
  2. Tambah kebergantungan: Tambah kebergantungan berikut dalam fail pom.xml:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
Salin selepas log masuk
  1. 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
Salin selepas log masuk
  1. 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);
    }
}
Salin selepas log masuk

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:

  1. Buat projek Spring Boot baharu.
  2. Tambah kebergantungan: Tambah kebergantungan berikut dalam fail pom.xml:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
Salin selepas log masuk
Salin selepas log masuk
  1. 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地址
Salin selepas log masuk
  1. Buat kelas Pengawal baharu dan tambahkan antara muka yang mengembalikan rentetan:
@RestController
public class TestController {
    @GetMapping("/test")
    public String test() {
        return "Hello World";
    }
}
Salin selepas log masuk
  1. 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);
    }
}
Salin selepas log masuk

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:

  1. Buat projek Spring Boot baharu.
  2. Tambah kebergantungan: Tambah kebergantungan berikut dalam fail pom.xml:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
Salin selepas log masuk
Salin selepas log masuk
  1. 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地址
Salin selepas log masuk
  1. 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";
    }
}
Salin selepas log masuk
  1. Tambah kelas Pengawal untuk mendedahkan antara muka perkhidmatan:
@RestController
public class TestController {
    @Autowired
    private TestService testService;

    @GetMapping("/test")
    public String test() {
        return testService.test();
    }
}
Salin selepas log masuk
  1. 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();
    }
}
Salin selepas log masuk

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:

  1. Buat projek Spring Boot baharu.
  2. Tambah kebergantungan: Tambah kebergantungan berikut dalam fail pom.xml:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
Salin selepas log masuk
  1. 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    #设置服务提供者名称
Salin selepas log masuk
  1. 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);
    }
}
Salin selepas log masuk

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构建配置中心的步骤如下:

  1. 新建一个Spring Boot项目。
  2. 添加依赖:在pom.xml文件中添加如下依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>
Salin selepas log masuk
  1. 在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分支
Salin selepas log masuk
  1. 在启动类中添加@EnableConfigServer注解,用于启用Config Server功能:
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}
Salin selepas log masuk

通过以上的步骤,我们就成功构建了一个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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Seni bina dan amalan sistem teragih PHP Seni bina dan amalan sistem teragih PHP May 04, 2024 am 10:33 AM

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 Cara menggunakan Workerman untuk membina sistem pengimbangan beban dengan ketersediaan tinggi Nov 07, 2023 pm 01:16 PM

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 ketersediaan tinggi Redis: teknologi utama untuk membina sistem pangkalan data ketersediaan tinggi Nov 07, 2023 am 09:39 AM

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

Apakah perangkap yang perlu kita perhatikan semasa mereka bentuk sistem teragih dengan teknologi Golang? Apakah perangkap yang perlu kita perhatikan semasa mereka bentuk sistem teragih dengan teknologi Golang? May 07, 2024 pm 12:39 PM

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.

Bagaimana untuk menggunakan caching dalam sistem edaran Golang? Bagaimana untuk menggunakan caching dalam sistem edaran Golang? Jun 01, 2024 pm 09:27 PM

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.

Amalan Lanjutan Pengaturcaraan Rangkaian C++: Membina Sistem Teragih Sangat Skala Amalan Lanjutan Pengaturcaraan Rangkaian C++: Membina Sistem Teragih Sangat Skala Nov 27, 2023 am 11:04 AM

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++,

Gunakan fungsi Golang untuk membina seni bina dipacu mesej dalam sistem teragih Gunakan fungsi Golang untuk membina seni bina dipacu mesej dalam sistem teragih Apr 19, 2024 pm 01:33 PM

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.

Penyelesaian Golang untuk melaksanakan sistem teragih yang sangat tersedia Penyelesaian Golang untuk melaksanakan sistem teragih yang sangat tersedia Jan 16, 2024 am 08:17 AM

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:

See all articles