Spring Cloud 微服务化
前言
- 结合自己对微服务的理解和近段时间的工作经历,博主写了这篇博客。
- 由于博主水平有限,博客中难免有错误的地方,希望各位同学不吝赐教。
概述
- Spring Cloud 让为服务化变的更加简单,为微服务化的提供了一站式的解决方案。官网上有一张图,描述了一个最通用的分布式系统的模型:
- 结合这个模型,博主构建了这样一个系统:
- API Gateway(网关) : Spring Could Gateway 。
- Breaker dashboard(断路器) : Spring Could Netflix Hystrix 。
- Config dashboard(配置中心):Spring Could Consul Config。这和博主选择使用 Consul 来完成服务注册与发现有关。另外,Spring Cloud Config 也是一个可选方案。
- Service Registry(服务注册中心):Spring Cloud Consul。由于某些原因,博主没有选择 Eureka。
- Distributed tracing(分布式追踪):Spring Cloud Sleuth
- Message broker(消息中间件):消息服务通过 Spring Cloud Stream 实现,消息中间件选择 Kafka(RabbitMQ 也是一个可选方案)
- Database(数据库):Mysql。
- Microservice(微服务项目):提供具体服务的项目,它有以下内涵:
- 它是基于Spring Boot 创建的 Web 项目 。
- 使用 Redis 作为缓存
- 使用 Elasticsearch 作为搜索引擎
- 使用 Mybatis 框架实现数据库访问功能
- 完整系统源码地址:
架构设计说明
- 系统分为三层: