从本篇文章开始,我将介绍介绍使用 Spring Cloud 搭建微服务的基础设施,同时将结合具体的实例 MCloud 进行讲解。
Spring Cloud 简介
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。-- 引自百度百科
MCloud 简介
MCloud 对 Spring Cloud 做了一层封装,以 Rest API 的形式通过 API 网关对外提供服务,并使用 Spring OAuth2
+ JWT Token
对 API 提供保护,同时结合 Spring Cloud 实现服务注册中心、配置中心、负载均衡、断路器,以及将通过 Spring Boot Admin 提供系统数据监控、通过 ELK 实现日志分析、通过 Fastdfs 实现文件存储和通过 ElasticSearch 实现全文检索。最终将形成完善的微服务基础设施。
下面是 MCloud 的主要模块:
- mcloud-eureka 服务注册与发现中心。
- mcloud-oauth-server 基于Spring OAuth2实现的OAuth2认证服务端,其它服务需要依赖此服务进行认证。
- mcloud-uia API 统一登录中心。
- mcloud-apigw 基于Spring cloud zuul 实现的api网关 ,同时将为系统提供负载均衡。
- mcloud-config 统一配置中心。
- mcloud-monitoring 基于 Spring boot admin 实现系统监控。
- mcloud-file-storage 文件存储中心。
-
mcloud-search 基于
ElasticSearch
全文检索服务 -
mcloud-logs 基于
logstash
Filebeat
Kibana
Kafka
以及ElasticSearch
实现的日志服务。 - mcloud-blog Demo Project
其他模块:
- mcloud-parent maven 公用依赖。
- mcloud-common 项目公用工具类。
- mcloud-data 数据存储相关。
- mcloud-web web相关依赖及公共类。
- Code Generator 用于 Intellij-IDEA 的代码生成器插件。
系统架构图
结语
关于 MCloud 的架构就说到这,后续会对相关技术以及对应的模块做详细的介绍。