使用Spring Cloud构建微服务的演示项目
去发现同类优质开源项目:https://gitcode.com/
在这个开放源代码项目中,我们将引导您探索Spring Cloud的精彩世界,它是一个用于构建微服务架构的强大工具集。大部分示例基于Spring Boot 1.5。
:warning: 此仓库包含的是基于Spring Boot 1.5的示例,并不会更新。如果你寻找最新的Spring Boot和Spring Cloud版本,请参考这个链接:https://github.com/piomin/sample-spring-microservices-new。该仓库会自动更新所有框架和库的最新版本。
开始之旅
目前,你可以在这里找到基于不同Spring Cloud组件实现的微服务示例,每个示例都被分到不同的分支,并在我的博客中有详细说明。以下是可用示例的完整列表:
- 基础篇:通过Eureka进行服务发现,使用Ribbon实现负载均衡,利用Feign构建REST客户端,借助Zuul打造API网关。示例位于master分支,详细描述参见:使用Spring Cloud构建微服务:Eureka、Zuul入门
- 监控篇:介绍如何使用Spring Cloud Sleuth和Zipkin进行微服务监控,以及与Logstash集成,将日志发送到ELK堆栈。示例位于logstash分支,详细描述参见:创建微服务:用Spring Cloud Sleuth、ELK和Zipkin进行监控
- 容错篇:展示了如何使用Ribbon实现负载均衡,配合Feign声明式HTTP客户端,以及Hystrix作为断路器和回退功能。示例位于hystrix分支,详细描述参见:创建微服务:断路器、回退和负载均衡与Spring Cloud
- 运维篇:利用Spring Boot Admin工具来管理和监控微服务系统。示例位于admin分支,详细描述参见:使用Spring Boot Admin监控微服务
- 云部署篇:在Kubernetes上部署和运行Spring Boot微服务,包括使用Feign客户端进行服务间通信和Mongo数据库集成。示例位于kubernetes分支,详细描述参见:Kubernetes和Docker上的微服务
使用方法
大多数情况下,你需要Maven、JDK8+和Docker以运行第三方软件如Zipkin或Logstash。第五个示例(Kubernetes)要求在本地安装Minikube。最佳的运行应用程序的方式是使用IDE,如IntelliJ IDEA或Eclipse。
启动
docker-compose up
如果需要修改任何服务,先构建修改后的服务,然后执行:
docker-compose build
docker-compose up
停止
docker-compose down
架构
我们的样例微服务系统由以下模块组成:
- gateway-service - 使用Spring Cloud Netflix Zuul,作为代理/网关的Spring Boot应用。
- config-service - 使用Spring Cloud Config Server,在“原生”模式下运行配置服务器,配置文件位于类路径中。
- discovery-service - 根据示例,使用Spring Cloud Netflix Eureka作为一个内嵌的服务发现服务器。
- account-service - 示例中的第一个微服务模块,提供对内存账户存储的CRUD操作。
- customer-service - 示例中的第二个微服务模块,提供对内存客户存储的CRUD操作,并与account-service通信。
- zipkin-service - 运行内嵌Zipkin实例的模块。
下面的图片描绘了上述架构。
对于Kubernetes部署,我们只使用了部分Spring Cloud组件,如Spring Cloud Feign或Sleuth,但没有服务发现或配置服务器。
想要查看类似的基于Spring Boot 2的微服务示例,可以访问仓库https://github.com/piomin/sample-spring-microservices-new。
此项目的特点在于其全面性、实战性和可扩展性。无论是初学者还是经验丰富的开发者,都能从中获益。通过这些示例,您可以快速理解和实践Spring Cloud在微服务架构中的核心功能,为自己的项目搭建稳定且高效的微服务体系。立即加入,开启您的微服务开发旅程吧!
去发现同类优质开源项目:https://gitcode.com/