微服务架构的兴起改变了开发人员构建和部署应用程序的方式。Spring Cloud是 Spring 生态系统的一部分,旨在简化开发和管理微服务的复杂性。在本综合指南中,我们将探索 Spring Cloud 及其功能,并通过构建简单的微服务应用程序来展示其功能。
Spring Cloud 是一组工具和库,为分布式系统中的常见模式和挑战提供解决方案,例如配置管理、服务发现、断路器和分布式跟踪。它基于 Spring Boot 构建,可以轻松创建可扩展、容错的微服务。
在此示例中,我们将创建一个简单的微服务应用程序,其中包含两个服务: auser-service
user-service
和 an order-service
和 an order-service
。我们还将使用 Spring Cloud Config 和 Eureka 进行集中配置和服务发现。
确保您的计算机上安装了以下软件:
🎜<!-- maven --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
或者
//Gradle implementation 'org.springframework.cloud:spring-cloud-config-server' implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server' implementation 'org.springframework.cloud:spring-cloud-starter-config' implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' implementation 'org.springframework.boot:spring-boot-starter-web'
使用 Spring Initializr (https://start.spring.io/) 创建一个新的 Spring Boot 项目并添加Config Server
Config Server
和Eureka Discovery
依赖项。为项目命名config-server
。
将以下属性添加到您的application.yml
和Eureka Discovery
为项目命名
config-server
🎜。🎜🎜🎜🎜将以下属性添加到您的🎜application.yml
🎜文件中:🎜🎜🎜🎜🎜🎜server: port: 8888 spring: application: name: config-server cloud: config: server: git: uri: https://github.com/your-username/config-repo.git # Replace with your Git repository URL eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
通过将以下注释添加到您的主类中来启用 和Config Server
:Eureka Client
import org.springframework.cloud.config.server.EnableConfigServer; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @EnableConfigServer @EnableEurekaClient @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); }
使用Spring Initializr创建一个新的 Spring Boot 项目并添加Eureka Server
依赖项。为项目命名eureka-server
。
将以下属性添加到您的application.yml
文件中:
server: port: 8761 spring: application: name: eureka-server eureka: client: registerWithEureka: false fetchRegistry: false
通过将以下注释添加到主类来启用 Eureka Server:
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
使用 Spring Initializr 创建一个新的 Spring Boot 项目并添加Config Client
、Eureka Discovery
和Web
依赖项。为项目命名user-service
。
将以下属性添加到您的bootstrap.yml
文件中:
spring: application: name: user-service cloud: config: uri: http://localhost:8888 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
创建一个简单REST controller
的User Service
:
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @GetMapping("/users/{id}") public String getUser(@PathVariable("id") String id) { return "User with ID: " + id; } }
使用 Spring Initializr 创建一个新的 Spring Boot 项目并添加Config Client
、Eureka Discovery
和Web
依赖项。为项目命名order-service
。
将以下属性添加到您的bootstrap.yml
文件中:
spring: application: name: order-service cloud: config: uri: http://localhost:8888 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
创建一个简单REST controller
的Order Service
:
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class OrderController { @GetMapping("/orders/{id}") public String getOrder(@PathVariable("id") String id) { return "Order with ID: " + id; } }
按以下顺序启动config-server
、eureka-server
、user-service
和应用程序。order-service
所有服务运行后,您可以访问 Eureka 仪表板http://localhost:8761
并查看已注册的服务。
您现在可以访问用户服务http://localhost:<user-service-port>/users/1
和订单服务http://localhost:<order-service-port>/orders/1
。
在本综合指南中,我们探索了 Spring Cloud 及其功能,并通过构建简单的微服务应用程序展示了其功能。通过利用 Spring Cloud 的强大功能,您可以简化微服务的开发和管理,使它们更具弹性、可扩展性并且更易于维护。使用 Spring Cloud 拥抱微服务世界,将您的应用程序提升到新的高度。
以上是使用 Spring Cloud 释放微服务的力量的详细内容。更多信息请关注PHP中文网其他相关文章!