Awesome Open Source
Awesome Open Source

Go+Micro+Fabric(微服务+区块链)项目实战-WeHousing房屋短租上链平台

通过Micro微服务框架实现的一个房屋短租平台,结合fabric联盟链对房屋信息进行存储,目前正在完善fabric存储房屋信息的功能。

项目的基本功能:用户注册,用户登录,头像上传,用户详细信息获取,实名认证检测,房源发布,首页展示,搜索房源,订单管理,用户评价等服务。同时我们通过fabric溯源技术对房产信息进行认证!

技术栈

  • golang + docker + consul + grpc + protobuf + beego + mysql + redis + fastDFS + nginx + fabric

目标功能

  • [x] 功能模块
    • [x] 用户模块
      • [x] 注册
        • [x] 获取验证码图片服务
        • [x] 获取短信验证码服务
        • [x] 发送注册信息服务
      • [x] 登录
        • [x] 获取session信息服务
        • [x] 获取登录信息服务
      • [x] 退出
      • [x] 个人信息获取
        • [x] 获取用户基本信息服务
        • [x] 更新用户名服务
        • [x] 发送上传用户头像服务
      • [x] 实名认证
        • [x] 获取用户实名信息服务
        • [x] 发送用户实名认证信息服务
    • [x] 房屋模块
      • [x] 首页展示
        • [x] 获取首页轮播图服务
      • [x] 房屋详情
        • [x] 发布房屋详细信息的服务
        • [x] 上传房屋图片的服务
      • [x] 地区列表
      • [x] 房屋搜索
    • [x] 订单模块
      • [x] 订单确认
      • [x] 发布订单
      • [x] 查看订单信息
      • [x] 订单评论

项目文档

​ document文件夹下:

  1. ​ 整体架构图
  2. ​ 微服务框架图
  3. ​ 接口文档

运行环境配置及使用教程

docker安装教程

protobuf安装及使用教程

micro介绍及安装教程

FastDFS+nginx环境配置

Consul安装及使用教程

redis安装教程

项目启动

  • 项目启动:

    • 注意: 项目启动前请先查看项目配置环境文件,配置你相应的设置,并安装好各个环境,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

Docker学习教程

Docker学习教程

GO微服务教程(项目具体实现)

01 项目展示
02 微服务的概念
03 微服务与单体式的对比
04 protobuf
05 GRPC
06 服务发现
07 代理均衡
08 Consul
09 micro
10 租房网
11 获取地域信息
12 获取验证码图片
13 获取短信验证码
14 注册请求
15 获取session信息
16 登录请求
17 退出登陆
18 获取用户信息
19 上传用户头像
20 更新用户名
21 检查用户实名认证
22 更新实名认证信息
23 其他模块
24 使用docker-compose进行单机集群启动

Fabric环境搭建教程

01 环境搭建
02 Fabric介绍
03 Fabric核心模块
04 Fabric网络搭建(手动)
05 Fabric网络搭建(脚本)
06 智能合约
07 Fabric账号机制
08 Solo多机多节点部署
09 Kafka多机多节点部署

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
go (15,165
docker (2,921
protobuf (207
consul (123
fabric (67
micro (57
grpc-go (22