Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wanghaoxi3000/go-secbuy-micro
基于Go-micro微服务的秒杀系统
https://github.com/wanghaoxi3000/go-secbuy-micro
go-micro microservice
Last synced: 4 months ago
JSON representation
基于Go-micro微服务的秒杀系统
- Host: GitHub
- URL: https://github.com/wanghaoxi3000/go-secbuy-micro
- Owner: wanghaoxi3000
- Created: 2019-07-01T12:08:30.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-09-01T20:44:21.000Z (over 5 years ago)
- Last Synced: 2024-02-29T05:03:24.444Z (11 months ago)
- Topics: go-micro, microservice
- Language: Go
- Homepage:
- Size: 145 KB
- Stars: 21
- Watchers: 0
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Go-Secbuy-Micro
基于Go-micro微服务的秒杀系统[系统说明](https://darkreunion.tech/2019/09/seckill-backend-system-base-on-go-micro/)
## 系统架构
一个经典的秒杀场景可以分为如下几个步骤
1. 创建商品的库存信息
2. 检查库存数量,满足数量就扣库存,否则失败
3. 成功扣取库存后创建订单
4. 创建支付记录依据这个流程,系统分为如下几个服务
- 库存 stock
- 订单 order
- 支付 payment系统架构:
![framework](./secbuy.jpg)
## 环境准备
### Go和Go-Micro
- [Golang环境](https://golang.google.cn/)Micro开发框架和工具
```
## 安装go-micro
go get github.com/micro/go-micro## 安装micro
go get github.com/micro/micro
```### protoc
- [protoc compiler](https://github.com/google/protobuf/releases)安装好protoc编译器后还需要安装micro服务对应的生成插件。
```
go get -u github.com/micro/protoc-gen-micro
go get -u github.com/micro/protobuf/protoc-gen-go
```### Postgres
可以通过docker快速启动一个Postgres实例。
```
docker run --name postgres-dev -d --restart=always -p 5432:5432 -e POSTGRES_PASSWORD=postgres123 postgres:11
```可同时启动了一个adminer服务方便管理。
```
docker run --name adminer -d --restart=always -p 10080:8080 adminer
```创建一个dev用户和secbuy数据库。
```
su potgres
createuser -P -e dev
psql -U postgres
CREATE DATABASE secbuy OWNER dev;
GRANT ALL PRIVILEGES ON DATABASE secbuy to dev;
```