若依微服务里面到底有哪些服务器?一句话说透:若依微服务架构的核心服务器包括Nacos注册配置中心、Gateway网关、认证授权服务、系统管理服务、监控运维服务这五大类,它们各司其职,共同撑起一个完整的分布式系统基座。
若依微服务有哪些服务器?五大角色拆解
很多初次接触若依微服务版本的朋友,上来就盯着代码仓库看,结果被一堆模块绕晕,其实你可以把整个若依微服务系统当成一个公司,每个服务器模块就是公司里的一个部门,搞懂每个部门干什么,你就明白了整体架构。
1 Nacos注册配置中心:整个系统的“人事部”加“情报处”
Nacos在若依微服务里承担两个职责:服务注册与发现、配置中心。
- 所有微服务启动时,都要去Nacos报到登记自己的IP和端口,这叫服务注册。
- 服务之间互相调用时,先问Nacos要对方地址,这叫服务发现。
- 各模块的
bootstrap.yml配置文件里,几乎都会指向同一个Nacos地址,端口默认8848。
在若依的架构设计里,Nacos一旦挂掉,整个系统直接瘫痪,所以生产环境部署Nacos至少开三节点集群,这是业内做微服务化的共识底线。
2 Gateway网关:所有请求的“总前台”
若依微服务默认的网关组件是Spring Cloud Gateway,默认端口8800,它是外部请求进入系统的唯一大门。
- 前端(Vue项目)请求登录接口,打的是网关地址,不是直接打后端模块地址。
- 网关进行路由转发和统一鉴权,若依的网关层内置了白名单机制,未登录的请求会被拦截并返回401提示。
常用配置位置:ruoyi-gateway模块下的application.yml,核心配置项是spring.cloud.gateway.routes列表,若依框架已经预置好了指向认证服务和系统服务的路由规则,你只需要理解它怎么转发,很少需要大改。
3 认证授权服务(ruoyi-auth):负责发“通行证”
认证授权服务本身不处理业务,它专门负责OAuth2认证和JWT令牌签发,未来你登录若依系统,拿到的那串Token,就是它生成的。
- 独立部署,IP和端口根据你自己的服务器分配,配置在Nacos里。
- 它校验完用户名密码后,会调用系统服务的用户详情接口确认用户状态,然后签发Token。
这个模块在若依微服务架构里非常轻量,你可以把它理解为前台拿到的临时出入证,有了这个证,你才能在园区自由活动。
4 系统服务(ruoyi-system):核心业务的“写字楼”
这是实际干活的模块:用户管理、角色权限、菜单管理、部门管理、字典管理,全部跑在ruoyi-modules-system里,它默认端口
9201。
- 数据库表关联最密集,业务逻辑最重。
- 网关转发过来的请求,有一大部分都是直奔这里。
- 你自己新写的业务模块,订单系统”“库存系统”,参照这个模块的结构复制一个出来即可,改改包名和端口就能独立部署。
5 监控服务(ruoyi-monitor)与文件服务
- 监控服务:基于Spring Boot Admin搭建,负责监控所有已注册服务的内存、CPU、线程池状态、健康检查,你会发现部署包里有个
ruoyi-visual模块,里面装了监控和定时任务。 - 文件服务:独立的上传下载模块,支持本地存储、Minio、OSS等模式,默认走网关
/common/upload路径转发。
若依微服务项目部署需要几台服务器?
弄清楚若依微服务有哪些服务器之后,最现实的问题就是:搭起来要买几台机器? 这个问题没有标准答案,但可以给你提供一个参考基准。
1 单机部署(成本最低)
很多人误以为微服务必须一堆机器,其实一台4核8G或8核16G的云服务器也能跑起来,具体做法是:
- 部署Nacos、Redis、MySQL三件套,然后用
java -jar命令依次启动网关、认证、系统模块。 - 若依官方Dockerfile已经备好,你也可以直接用
docker-compose一键编排。
这种情况下,若依微服务里所有服务器跑在同一台机器的不同端口,适合学习、演示、内网小范围使用。
2 多机分布式部署(正式环境推荐)
行业共识认为,若要对外提供服务并保证稳定性,至少准备三台服务器:
- 服务器A:装MySQL(主)、Redis(主)、Nacos(集群节点一)。
- 服务器B:装Nacos(集群节点二)、Gateway网关、认证服务。
- 服务器C:装Nacos(集群节点三)、系统服务、其他业务模块、监控服务。
这样分层的好处是:数据库和缓存独立,网关作为入口单独部署,业务服务横向扩展时只需多开几个节点,压力被均匀分散。
3 借助K8s容器化部署
如果服务器资源充裕,且团队有运维基础,建议直接上Kubernetes,若依官方支持通过ruoyi-kubernetes目录下的脚本快速部署到集群,每个微服务作为一个Pod运行,实现自动伸缩和故障自愈。
注意:K8s方案要求你对容器编排有理解,学习成本比裸机部署高不少,多数情况下,刚起步的团队用docker-compose在单机上拉通流程,后续再平滑迁移到集群。
若依微服务端口怎么配置?一张表看清全局
提到若依微服务有哪些服务器,就绕不开端口配置,每个模块都有自己默认的“门牌号”,下面这张表你要记好,排查线上问题时最实用:
| 服务器模块 | 默认端口 | 核心职责 |
|---|---|---|
| Nacos | 8848 | 注册中心、配置中心 |
| Gateway网关 | 8800 | 统一入口、路由、鉴权 |
| 认证服务(Auth) | 根据配置分配(如9200) | OAuth2登录、Token签发 |
| 系统模块(System) | 9201 | 用户、角色、菜单、权限管理 |
| 监控服务(Monitor) | 根据配置分配 | Spring Boot Admin监控面板 |
| 定时任务(Job) | 根据配置分配 | Quartz任务调度 |
| 文件服务(File) | 根据配置分配 | 文件的上传、下载、删除 |
| MySQL | 3306 | 存储业务数据 |
| Redis | 6379 | 缓存登录状态、验证码等 |
所有业务模块的端口都集中在Nacos的配置列表里管理,修改时不用动每个服务的本地配置文件,直接在Nacos控制台改完,再调用curl -X POST "http://localhost:8848/nacos/v1/cs/configs?dataId=xxx&group=DEFAULT_GROUP"刷新即可。
若依微服务怎么拆分自定义业务服务器?
你知道了若依微服务里有网关、认证、系统这几个标准件,但真正涉及自己的业务时,拆分原则比操作更重要。
1 拆分的参考原则
- 按业务域拆:商品服务”“订单服务”“用户积分服务”,不要按功能拆,增删改查服务”这种没有边界感的划分是大忌。
- 按调用频率拆:低频的报表导出功能放在一个服务里,高频的首页推荐接口放在高性能服务里,两者独立扩缩容。
- 按团队归属拆:若依微服务架构里,每个团队维护自己负责的服务,互不干扰,发布也独立。
2 实操步骤:新建一个业务服务模块
- 在若依的
ruoyi-modules目录下新建模块,比如ruoyi-modules-orders。 - 复制
ruoyi-modules-system里的pom.xml,修改artifactId和description。 - 新建
OrdersApplication.java启动类,记得加上@EnableDiscoveryClient注解,如果你要调用其他服务,再加@EnableFeignClients。 - 在
resources目录新建bootstrap.yml,配置spring.cloud.nacos.server-addr为你的Nacos地址。 - 在Nacos控制台新增配置文件,dataId命名规则为
ruoyi-orders-dev.yml(其中dev是环境名),内容包含端口号、数据库连接、Redis连接等。
启动后,去Nacos控制台的“服务列表”页面看一眼,你的订单服务出现在那里,说明注册成功了。
3 通过网关访问你的新服务
在Gateway配置里加一条路由:
- id: ruoyi-orders uri: lb://ruoyi-orders predicates: - Path=/orders/
前端请求地址从/orders/list这样的路径开头,网关就会自动转发给订单服务实例,完全不用管实例的IP和端口,这就是微服务相比单体应用最大的优势:服务地址透明化。
若依微服务的监控与版本兼容问题
哪些服务器需要重点关注健康状态? 如果你只盯着业务服务的CPU和内存,忽略中间件服务器的健康,同样会出事。
1 监控看板查什么
- Nacos控制台的“服务列表”页面,每个服务后面的“健康实例数”是否等于总数。
- Spring Boot Admin的“Journal”页面有没有红色告警。
- Redis的
info命令返回里的used_memory是否超过最大内存的80%。
2 Spring Cloud版本兼容参考
若依微服务的服务器组件依赖Spring Cloud生态,市面上主流的若依版本普遍基于Spring Cloud Alibaba 2021.x或x体系,匹配规则是:
- Spring Boot 2.6.x 对应 Spring Cloud 2021.0.x 与 Spring Cloud Alibaba 2021.0.5.0。
- Spring Boot 3.2.x 对应 Spring Cloud 2026.0.x,这个组合要求JDK 17。
选版本时,一定要对照这个兼容矩阵,否则服务启动时会出现各种类找不到的异常。
关于若依微服务服务器的常见疑问解答
若依微服务有几个核心服务器?
若依微服务架构的必要服务器组件是五个:Nacos、Redis、MySQL、Ruoyi-Gateway、Ruoyi-Auth,系统服务、文件服务、定时任务、监控属于业务和运维服务,非必要但强烈推荐部署,用户理解层面,更常见的说法是“核心服务+Nacos+Redis”的集合体。
若依微服务和单体的服务器配置差别大吗?
差别不小,单体若依,一个Tomcat端口80走天下;微服务版本,你至少要管理Nacos 8848端口、网关8800端口、认证9200端口、系统9201端口,运维的焦点从“管好一个应用”变成“管好一组应用”,但是每个服务占用的资源可以压得很低,网关512M内存也能撑住小流量场景,整体硬件要求并没有想象中夸张。
开发时如何快速启动若依微服务?
你本地需要按顺序启动:MySQL、Redis、Nacos,然后通过Idea启动类依次运行GatewayApplication、AuthApplication、SystemApplication,最后启动前端npm run dev,顺序反了会导致服务注册失败,比如认证服务启动时发现Nacos不可用,会直接报错退出。
若依微服务的端口忘改会不会冲突?
会,而且很隐蔽,同一台服务器上若依单体跑8080,微服务的认证服务如果也写了8080,启动会直接报端口占用异常。建议统一规划端口段,比如网关卡在8800-8899,业务模块卡在9200-9299,中间件固定用官方默认端口,这样出错概率最低。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/707360.html





