一,概述
尽管Spring Cloud带有“Cloud”的字样,但它并不是云计算解决方案,而是在Spring Boot基础上构建的,用于快速构建分布式系统的通用模式的工具集。
使用Spring Cloud开发的应用程序非常适合在Docker或者PaaS(例如Cloud Foundry)上部署,所以又叫做云原生应用(Cloud Native Application)。
下面以一个简单示例来介绍如何搭建一套微服务系统
二,整体架构
我们都知道,单点是系统高可用的大敌,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他backup能够顶上。
保证系统高可用,架构设计的核心准则是:冗余。有了冗余之后,还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务时间。所以,又往往是通过“自动故障转移”来实现系统的高可用。
服务网关、微服务均同步注册到服务注册中心,实现了多节点运行。
nginx的高可用更多的属于运维方面的工作,大家可搜索nginx+keepalived
自行研究!
整个系统简单架构如下:
三,模块划分
模块 | 功能 | 说明 |
---|---|---|
microservice-eureka | 注册中心 | - |
microservice-front | 前端工程 | 后台访问网关接口 |
microservice-gateway | 网关 | 路由、聚合接口文档 |
microservice-movie | 微服务1 | - |
microservice-user | 微服务2 | - |
四、功能展示
1. 总体展示页面:
http://124.71.129.204 此功能是服务器docker应用一览 的落地成果。
正常情况,服务开放的端口就2个,前端服务和流量网关端口。
我们这边为了方便查看服务状态,同步开放了注册中心端口,非常规操作!
2. 前端页面
一个出错页面
3. 网关接口DOC
此页面是网关调用knif4j
聚合微服务接口文档形成的,数据来源于微服务接口,页面由网关提供,严格来说并不属于前端工程。
多次点击,我们发现位置1处ip为 172.20.0.11或172.20.0.5
,位置2处为172.20.0.10或172.20.0.6
4. 网关概况
打开http://124.71.129.204:8161/ 或者http://124.71.129.204:8162/
五、源码放送
1. 代码结构
2. 源码下载
git clone https://gitee.com/00fly/microservice-all-in-one.git
3,部署
本工程部署脚本路径如下:
部署时,修改下图环境变量为服务器实际外网地址,此地址为网关接口地址,供前端工程调用。
镜像已经打包上传到阿里云镜像仓库,各位同学部署时可直接下载 compose-scale文件,上传服务器运行即可!
未完,下篇文章继续放出细节!
有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!
-over-