目录
1. Spring 生态
1.1 Spring Boot(微框架)
Spring Boot 是基于 Spring 框架的微框架,旨在简化 Spring 应用的开发和部署。
特点
-
独立运行:无需额外的容器(如 Tomcat),自带嵌入式服务器
-
简化配置:自动配置 Spring 组件,无需大量 XML 或 YAML 配置
-
Maven 依赖管理:简化 Maven 依赖,减少冲突
-
生产级功能:支持健康检查、监控、日志管理等
-
无代码生成:不依赖代码生成工具
1.2 Spring Cloud(微服务架构)
Spring Cloud 是基于 Spring Boot 的微服务架构解决方案,提供分布式系统的完整支持。
功能
-
服务治理:服务发现(Eureka)、负载均衡(Ribbon)、熔断(Hystrix)
-
API 网关:Zuul、Spring Cloud Gateway
-
配置管理:Spring Cloud Config
-
分布式追踪:Sleuth + Zipkin
-
消息总线:Spring Cloud Bus
-
分布式 Session:支持集群环境中的会话共享
-
自动化 DevOps:与 Kubernetes、Docker 兼容
对比 Dubbo
Spring Cloud 提供全栈微服务解决方案,包含 API 网关、配置管理、消息总线等,适合云环境
Dubbo 主要解决RPC 远程调用,不包含 Spring Cloud 的配置管理、分布式事务等完整生态
2. 安全框架
2.1 Spring Security
Spring Security 是 Spring 体系内的安全框架,提供 认证、授权、加密、安全管理 功能。
特点
-
身份认证(Authentication)
-
权限管理(Authorization)
-
Web 资源访问控制
-
业务方法访问控制
-
单点登录(SSO)
-
X509 证书认证
-
OAuth & OpenID 支持
适用于:企业级复杂系统,安全需求高,权限管理精细的项目。
2.2 Apache Shiro
Shiro 是一个轻量级、安全性较高的 Java 安全框架,主要用于小型项目。
特点
-
独立框架:不依赖 Spring,可以用于任何 Java 项目
-
简单 API:易于理解的 Java Security API
-
身份认证 & 访问控制(支持 LDAP、JDBC 等数据源)
-
内置会话管理
-
轻量级,适用于 小型项目
对比 Spring Security
Shiro 更简单易用,适合小型项目
Spring Security 功能更强大,适合企业级应用,支持 OAuth、OpenID 等高级功能
Shiro 需要自己实现 OAuth,而 Spring Security 原生支持
3. Dubbo & ZooKeeper
3.1 Dubbo
Dubbo 是阿里巴巴开源的 高性能 RPC(远程调用)框架,用于服务治理、远程调用。
功能
-
服务注册与发现
-
负载均衡
-
服务调用(RPC)
-
故障容错
-
动态扩展
-
支持多种协议(Dubbo、REST、RMI 等)
Dubbo 适用于:
需要高性能 RPC 的分布式系统
适用于高并发、低延迟的企业级应用
3.2 ZooKeeper
ZooKeeper 是一个 分布式协调服务,可用于服务注册、配置管理、分布式锁等功能。
ZooKeeper 在 Dubbo 中的作用
-
注册中心:管理服务实例的注册与发现
-
负载均衡:自动分配请求到可用服务
-
故障检测:检测宕机的服务并移除
-
分布式锁:协调多个服务的访问
Dubbo + ZooKeeper
Dubbo 需要一个注册中心,默认推荐 ZooKeeper
也可以使用 Redis、Etcd 作为注册中心,但 ZooKeeper 兼容性最好
总结
技术 | 作用 | 适用场景 |
---|---|---|
Spring Boot | 微框架,简化 Spring 应用开发 | 单体应用、快速开发 |
Spring Cloud | 微服务架构,提供完整分布式能力 | 云原生、微服务架构 |
Spring Security | 认证、授权、安全管理 | 企业级应用,高安全性要求 |
Apache Shiro | 轻量级安全框架 | 小型项目,简单安全需求 |
Dubbo | 高性能 RPC 远程调用框架 | 分布式服务,高并发 RPC |
ZooKeeper | 分布式协调服务,服务注册中心 | Dubbo 依赖,分布式锁、选举 |
选择建议
-
小型项目:Spring Boot + Shiro
-
中型项目:Spring Boot + Spring Security(或 Shiro)+ Dubbo
-
大型微服务架构:Spring Cloud + Spring Security + ZooKeeper + Dubbo(或 gRPC)