基于Python、Flask、ClickHouse、Redis的消息管道推送服务,类似产品为Bark、Server酱。
sequenceDiagram
Client->>+Flask: Send message
Clickhouse-->>Flask: Check credential
Flask->>+Redis: Message stream in
Flask->>-Client: Return result
loop While Block
Redis->>+Consumer: Message stream out
end
Clickhouse-->>Consumer: Check credential
Consumer->>Clickhouse: Save message (optional)
Consumer->>-Service Provider: Send message
服务 | 接入情况 | 网址 |
---|---|---|
Google FCM | √ | Firebase Cloud Messaging |
Bark | √ | - |
Wxwork | √ | 发送应用消息 |
Telegram | √ | Telegram Bot API |
MQTT | TODO | - |
APN | TODO | Sending Notification Requests to APNs - Apple Developer |
TODO | Mailgun: Transactional Email API Service For Developers |
-
编辑
./sql/test.sql
文件内相关token数据即可 -
添加FCM服务端token的json文件时,放置于本目录以及
./build/consumer
目录下,命名为fcm_token.json
。
git clone https://github.com/LittleJake/pipe-message-distributor.git
cd pipe-message-distributor/
docker-compose up --build
git clone https://github.com/LittleJake/pipe-message-distributor.git
cd pipe-message-distributor/
# 安装ClickHouse(务必关闭外部访问)
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \
/etc/apt/sources.list.d/clickhouse.list
sudo apt-get update
sudo apt-get install -y clickhouse-server clickhouse-client
sudo service clickhouse-server start
# 安装依赖
sudo apt-get install -y python3-pip python38
sudo python38 -m pip install -r requirements.consumer.txt
sudo python38 -m pip install -r requirements.server.txt
# 安装Redis
sudo apt-get install -y redis=6.2.6
redis-server --daemonize yes --appendonly off --save ""
# 导入初始数据库
clickhouse-client < ./sql/init.sql
# 测试数据导入(可选)
clickhouse-client < ./sql/test.sql
# 运行服务
nohup python38 main.py &> ./main.log &
nohup python38 consumer.py &> ./consumer.log &
git clone https://github.com/LittleJake/pipe-message-distributor.git
cd pipe-message-distributor/
# 安装ClickHouse(务必关闭外部访问)
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client
sudo /etc/init.d/clickhouse-server start
# 安装依赖
sudo yum install -y python3-pip python38
sudo python38 -m pip install -r requirements.consumer.txt
sudo python38 -m pip install -r requirements.server.txt
# 安装Redis
sudo yum install -y redis=6.2.6
redis-server --daemonize yes --appendonly off --save ""
# 导入初始数据库
clickhouse-client < ./sql/init.sql
# 测试数据导入(可选)
clickhouse-client < ./sql/test.sql
# 运行服务
nohup python38 main.py &> ./main.log &
nohup python38 consumer.py &> ./consumer.log &
TODO