项目简介
本项目是基于Dubbo和Redis的用户中台系统,目的是提供高效、可靠的用户管理服务。系统具备单用户查询、批量用户查询、用户资料更新、用户登录注册等功能,结合Redis缓存和分布式ID生成策略,优化了系统性能与扩展性。
项目的主要特性和功能
用户管理
- 单用户查询:可通过用户ID查询用户信息,支持本地缓存和Redis缓存。
- 批量用户查询:支持批量查询用户信息,采用ShardingJDBC进行分库分表查询。
- 用户资料更新:支持用户资料更新,采用延迟双删策略保证缓存一致性。
- 用户登录注册:支持用户注册和登录功能,采用分布式ID生成策略生成用户ID。
分布式ID生成
- UUID:简单、本地生成、性能好,但无序且长度过长。
- Redis自增ID:简单高效、具有顺序性,但依赖Redis。
- MySQL自增ID:ID绝对有序、高可用,但成本高且有性能瓶颈。
- 雪花算法:高性能、低延迟、按时间有序,但需要独立开发和部署。
- Leaf:美团开源的分布式ID生成器,保证全局唯一性、趋势递增。
远程服务访问
- RPC:采用Dubbo框架进行远程服务调用,支持多种序列化协议。
- HTTP:支持HTTP协议进行远程服务调用,HTTP2.0后支持长连接和请求头压缩。
缓存管理
- Redis缓存:采用Redis进行数据缓存,提高查询效率。
- 缓存一致性:采用延迟双删和基于订阅binlog的缓存删除策略,保证缓存一致性。
分库分表
- ShardingJDBC:采用ShardingJDBC进行分库分表,支持多种路由策略和归并功能。
- 分表产品比较:对比不同分表产品的性能和功能。
安装使用步骤
环境准备
- JDK 1.8 或更高版本
- Redis 5.0 或更高版本
- MySQL 5.7 或更高版本
- Dubbo 2.7.x 或更高版本
- Nacos 1.4.x 或更高版本
项目构建
- 复制项目到本地:
bash
- 进入项目目录:
bash cd your-repo
- 使用Maven构建项目:
bash mvn clean install
配置文件
- 配置Redis连接信息:
properties spring.redis.host=localhost spring.redis.port=6379 spring.redis.password=yourpassword
- 配置MySQL连接信息:
properties spring.datasource.url=jdbc:mysql://localhost:3306/yourdatabase spring.datasource.username=yourusername spring.datasource.password=yourpassword
- 配置Dubbo和Nacos:
properties dubbo.registry.address=nacos://localhost:8848 dubbo.protocol.name=dubbo dubbo.protocol.port=20880
启动项目
- 启动Nacos服务:
bash sh startup.sh -m standalone
- 启动Redis服务:
bash redis-server
- 启动MySQL服务:
bash systemctl start mysqld
- 启动项目:
bash java -jar target/your-project.jar
使用示例
- 查询用户信息:
bash curl -X GET http://localhost:8080/user?id=1
- 更新用户信息:
bash curl -X POST http://localhost:8080/user -d '{"userId":1,"nickName":"newNickName"}'
- 注册新用户:
bash curl -X POST http://localhost:8080/user/register -d '{"nickName":"newUser"}'
通过以上步骤,可成功构建并启动基于Dubbo和Redis的用户中台系统,并进行用户管理操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】