# microservice-all-in-one **Repository Path**: 00fly/microservice-all-in-one ## Basic Information - **Project Name**: microservice-all-in-one - **Description**: 微服务项目示例,持续优化 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-05-07 - **Last Updated**: 2025-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringCloud ## README # microservice-all-in-one ## 一,介绍 微服务示例,持续优化 一般而言,微服务是针对前后端分离开发项目,有单独的前端工程,后台WebApi使用微服务架构 ## 二,模块划分 | 模块 | 功能 | 说明 | | :----------------------- | :------: | :----------------: | | **microservice-eureka** | 注册中心 | - | | **microservice-front** | 前端工程 | 后台访问网关接口 | | **microservice-gateway** | 网关 | 路由、聚合接口文档 | | **microservice-movie** | 微服务1 | - | | **microservice-user** | 微服务2 | - | ## 三,SpringCloud 五大核心组件 ### 1. Eureka 注册中心 ### 2. Ribbon/Feign 负载均衡 ### 3. Zuul/GateWay 网关 ### 4. Config 配置中心 ### 5. Hystrix 熔断器 ## 四,整体架构 ```mermaid graph LR A(前端工程front) B(流量网关nginx) C1(服务网关gateway) C2(服务网关gateway) D1(微服务movie) D2(微服务movie) E1(微服务user) E2(微服务user) ER1(服务注册中心1) ER2(服务注册中心2) A --> B B --> C1 B --> C2 C1 --> D1 C1 --> D2 C2 --> D1 C2 --> D2 D1 --> E1 D1 --> E2 D2 --> E1 D2 --> E2 C1 --> E1 C1 --> E2 C2 --> E1 C2 --> E2 ``` 单点是系统高可用的大敌,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”: 只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他backup能够顶上。 保证系统高可用,架构设计的核心准则是:冗余。有了冗余之后,还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务时间。所以,又往往是通过“自动故障转移”来实现系统的高可用。 服务网关、微服务均同步注册到服务注册中心,实现了多节点运行。 nginx的高可用更多的属于运维方面的工作,大家可搜索nginx+keepalived自行研究!