https://github.com/chemistwang/demo-bff
https://github.com/chemistwang/demo-bff
bff nodejs rpc
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/chemistwang/demo-bff
- Owner: chemistwang
- License: mit
- Created: 2023-01-11T03:47:39.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-02T08:28:37.000Z (about 3 years ago)
- Last Synced: 2025-04-10T23:08:04.812Z (12 months ago)
- Topics: bff, nodejs, rpc
- Language: JavaScript
- Homepage:
- Size: 31.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RPC BFF Demo
## 技术选型
- Koa
- Redis
- MySQL
- Zookeeper
- RabbitMQ
## 环境安装并启动
- macOS `11.6.4`
- 本地 `localhost` 运行
```bash
# 安装
brew install mysql
brew install zookeeper
brew install rabbitmq
# 启动 mysql
brew services start mysql
# 启动 zookeeper
zkServer start
# 启动 rabbitmq
brew services start rabbitmq
```
## 创建数据库和模拟数据
1. 创建表
```sql
-- t_user 表
CREATE TABLE IF NOT EXISTS `t_user`(
`id` INT UNSIGNED AUTO_INCREMENT,
`username` VARCHAR(20) NOT NULL,
`avatar` VARCHAR(100) NOT NULL,
`password` VARCHAR(100) NOT NULL,
`phone` VARCHAR(30) NOT NULL,
PRIMARY KEY ( `id` )
)
-- t_post 表
CREATE TABLE IF NOT EXISTS `t_post`(
`id` INT UNSIGNED AUTO_INCREMENT,
`user_id` INT,
`title` VARCHAR(100) NOT NULL,
PRIMARY KEY ( `id` )
)
```
2. 创建模拟数据
```sql
INSERT INTO t_user (id, username, avatar, password, phone) VALUES (1, 'lucus', 'avatar1.png', '111111', '13100000001');
INSERT INTO t_user (id, username, avatar, password, phone) VALUES (2, 'mars', 'avatar2.png', '222222', '13100000002');
INSERT INTO t_post (id, user_id, title) VALUES (1, 1, '文章1');
INSERT INTO t_post (id, user_id, title) VALUES (2, 1, '文章2');
INSERT INTO t_post (id, user_id, title) VALUES (3, 1, '文章3');
```
## 分别启动服务
1. 启动 `user` 微服务
```bash
cd user && npm i && npm run dev
```
2. 启动 `post` 微服务
```bash
cd post && npm i && npm run dev
```
3. 启动 `write-logger` 微服务
```bash
cd write-logger && npm i && npm run dev
```
4. 启动 `bff`
```bash
cd bff && npm i && npm run dev
```
5. 浏览器访问
```
http://localhost:3000/?userId=1
```