通过Micro微服务框架实现的一个房屋短租平台,结合fabric联盟链对房屋信息进行存储,目前正在完善fabric存储房屋信息的功能。
项目的基本功能:用户注册,用户登录,头像上传,用户详细信息获取,实名认证检测,房源发布,首页展示,搜索房源,订单管理,用户评价等服务。同时我们通过fabric溯源技术对房产信息进行认证!
PS:
1.可作为微服务和联盟链fabric的入门教程,一个项目玩转目前golang最火的两个领域:微服务和区块链。
2.前端页面稍微有点儿low,不过完全可以换个前端做出高大上的效果。
3.如果对区块链技术不太感冒也不用担心,在实现上微服务和区块链分离,首先通过微服务实现项目的基本功能,随后通过fabric对房产信息进行认证存储。只想学习微服务的同学可以绕过fabric这一部分。
4.fabric环境搭建比较复杂,请克制砸电脑的冲动。
5.项目中使用micro+grpc+consul搭建微服务基本框架,针对这些模块我们都给出了学习教程
6.项目中很多模块都采用最简单的思路,仅仅作为学习教程,无法达到商用级别,如用户登录使用基于session的认证机制
- golang + docker + consul + grpc + protobuf + beego + mysql + redis + fastDFS + nginx + fabric
- 功能模块
- 用户模块
- 注册
- 获取验证码图片服务
- 获取短信验证码服务
- 发送注册信息服务
- 登录
- 获取session信息服务
- 获取登录信息服务
- 退出
- 个人信息获取
- 获取用户基本信息服务
- 更新用户名服务
- 发送上传用户头像服务
- 实名认证
- 获取用户实名信息服务
- 发送用户实名认证信息服务
- 注册
- 房屋模块
- 首页展示
- 获取首页轮播图服务
- 房屋详情
- 发布房屋详细信息的服务
- 上传房屋图片的服务
- 地区列表
- 房屋搜索
- 首页展示
- 订单模块
- 订单确认
- 发布订单
- 查看订单信息
- 订单评论
- 用户模块
document文件夹下:
- 整体架构图
- 微服务框架图
- 接口文档
-
项目启动:
- 注意: 项目启动前请先查看项目配置环境文件,配置你相应的设置,并安装好各个环境,mysql+redis+nginx+fastDFS+consul+Micro等
-
consul启动:
开发测试过程中可以使用单机模式 consul agent -dev
-
redis服务端启动
sudo redis-server /etc/redis/redis.conf
-
FastDFS服务启动
sudo fdfs_trackerd /etc/fdfs/tracker.conf sudo fdfs_storaged /etc/fdfs/storage.conf
-
nginx
启动nginx sudo /usr/local/nginx/sbin/nginx 重启nginx sudo /usr/local/nginx/sbin/nginx -s reload
-
创建服务的指令
新创建微服务的指令为,ProjectPath为项目所在路径,ServerName是服务名字 micro new --type srv ProjectPath/ServerName
-
初始化protobuf文件的命令
可以直接执行generateproto.sh文件,也可以cd到该项目的项目目录下然后执行如下命令: protoc --proto_path=. --go_out=. --micro_out=. proto/example/example.proto
├── DeleteSession
│ ├── 退出登录时清除session
├── GetArea
│ ├── 获取地区信息服务
├── GetImageCd
│ ├── 获取验证码图片服务
├── GetSession
│ ├── 获取Session信息服务
├── GetSmscd
│ ├── 获取短信信息服务
├── GetUserHouses
│ ├── 获取用户已发布房屋的服务
├── GetUserInfo
│ ├── 获取用户详细信息的服务
├── IhomeWeb
│ ├── conf 项目配置文件
│ │ ├── app.conf
│ │ ├── data.sql
│ │ └── redis.conf
│ ├── handler
│ │ └── handler.go 配置路由
│ ├── html 项目静态文件
│ ├── main.go 主函数
│ ├── model 数据库模型
│ │ └── models.go
│ ├── plugin.go
│ ├── server.sh
│ └── utils 项目中用到的工具函数
│ ├── config.go
│ ├── error.go
│ └── misc.go
├── PostAvatar
│ ├── 发送(上传)用户头像服务
├── PostHouses
│ ├── 发送(发布)房源信息服务
├── PostHousesImage
│ ├── 发送(上传)房屋图片服务
├── PostLogin
│ ├── 发送登录服务消息
├── PostRet
│ ├── 发现注册信息服务
├── PostUserAuth
│ ├── 发送用户实名认证信息服务
├── PutUserInfo
│ ├── 发送用户信息
├── GetUserAuth
│ ├── 获取(检查)用户实名信息服务
├── PostHousesImage
│ ├── 发送(上传)房屋图片服务
├── GetHouseInfo
│ ├── 获取房屋详细信息服务
├── GetIndex
│ ├── 获取首页轮播图片服务
├── GetHouses
│ ├── 获取(搜索)房源服务
├── PostOrders
│ ├── 发送(发布)订单服务
├── GetUserOrder
│ ├── 获取房东/租户订单信息服务
├── PutOrders
│ ├── 更新房东同意/拒绝订单
├── PutComments
│ ├── 更新用户评价订单信息
└── README.md