微服务架构的兴起改变了开发人员构建和部署应用程序的方式。Spring Cloud是 Spring 生态系统的一部分,旨在简化开发和管理微服务的复杂性。在本综合指南中,我们将探索 Spring Cloud 及其功能,并通过构建简单的微服务应用程序来展示其功能。
什么是Spring Cloud?
Spring Cloud 是一组工具和库,为分布式系统中的常见模式和挑战提供解决方案,例如配置管理、服务发现、断路器和分布式跟踪。它基于 Spring Boot 构建,可以轻松创建可扩展、容错的微服务。
Spring Cloud 的主要特性
配置管理: Spring Cloud Config为分布式应用程序提供集中配置管理。服务发现: Spring Cloud Netflix Eureka 支持服务注册和发现,以实现更好的负载平衡和容错能力。断路器: Spring Cloud Netflix Hystrix 通过隔离服务之间的访问点来帮助防止级联故障。分布式跟踪: Spring Cloud Sleuth 和 Zipkin 支持跨多个服务跟踪请求,以实现更好的可观察性和调试。
使用 Spring Cloud 构建简单的微服务应用程序
在此示例中,我们将创建一个简单的微服务应用程序,其中包含两个服务: auser-service和 an order-service。我们还将使用 Spring Cloud Config 和 Eureka 进行集中配置和服务发现。
先决条件
确保您的计算机上安装了以下软件:
Java 8 或更高版本Maven 或 Gradle您选择的 IDE
依赖关系
org.springframework.cloud spring-cloud-config-server org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.cloud spring-cloud-starter-config org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.boot spring-boot-starter-web
登录后复制
或者
//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'
登录后复制
第1步:设置Spring Cloud配置服务器
使用 Spring Initializr (https://start.spring.io/) 创建一个新的 Spring Boot 项目并添加Config Server和Eureka Discovery依赖项。为项目命名config-server。
将以下属性添加到您的application.yml文件中:
server: port: 8888spring: application: name: config-server cloud: config: server: git: uri: https://github.com/your-username/config-repo.git # Replace with your Git repository URLeureka: 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@SpringBootApplicationpublic class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); }
登录后复制
第2步:设置Spring Cloud Eureka服务器
使用Spring Initializr创建一个新的 Spring Boot 项目并添加Eureka Server依赖项。为项目命名eureka-server。
将以下属性添加到您的application.yml文件中:
server: port: 8761spring: application: name: eureka-servereureka: client: registerWithEureka: false fetchRegistry: false
登录后复制
通过将以下注释添加到主类来启用 Eureka Server:
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@EnableEurekaServer@SpringBootApplicationpublic 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:8888eureka: 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;@RestControllerpublic 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:8888eureka: 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;@RestControllerpublic class OrderController { @GetMapping("/orders/{id}") public String getOrder(@PathVariable("id") String id) { return "Order with ID: " + id; }}
登录后复制
第 5 步:运行应用程序
按以下顺序启动config-server、eureka-server、user-service和应用程序。order-service所有服务运行后,您可以访问 Eureka 仪表板http://localhost:8761并查看已注册的服务。
您现在可以访问用户服务http://localhost:/users/1和订单服务http://localhost:/orders/1。
结论
在本综合指南中,我们探索了 Spring Cloud 及其功能,并通过构建简单的微服务应用程序展示了其功能。通过利用 Spring Cloud 的强大功能,您可以简化微服务的开发和管理,使它们更具弹性、可扩展性并且更易于维护。使用 Spring Cloud 拥抱微服务世界,将您的应用程序提升到新的高度。
以上就是使用 Spring Cloud 释放微服务的力量的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2624398.html