介绍
Bark 推送服务通常来说是单节点运行的, BarkLB可以通过配置多个服务器地址尽可能保证推送通知送达.
快速开始
需配合已有 bark 原版服务器使用, 并确保 barklb 可以访问原版 bark 服务.
通过 Docker 运行:
docker run -d --restart=always \
--name barklb \
-p 18089:8089 \
-e BARK_NODES="https://bark-origin-server1:port,https://bark-origin-server2:port"
-v ${HOME}/barklb-data:/barklb-data \
martin0313/barklb:latest
启动成功后在 bark app 中添加服务器, 地址为 barklb 运行的地址和端口. 若服务端添加成功推送 key 会显示为LB-xxxxxxxx.
随后其余使用方式与原版 bark 无异.
BARK_NODES 参数指定了两个原版 bark 服务节点. barklb 会在两个节点中随机选择节点发送通知. 若节点下线则尝试采用其他节点.
可以添加配置`https://api.day.app`, 这是 bark 官方提供的服务器地址.
功能与特性
目前仅对接了原版 bark 服务端的 post body 推送形式
- 负载均衡策略为简单的随机策略, 主要解决的问题为尽可能保证高可用.
- 健康检查会及时更新在线服务器列表.
- 一个推送 key:
LB-xxxxxxx即可使用多个 bark 服务后端. 原版服务器的注册,删除,配置变更等均由barklb自动操作. - bark 服务节点配置变更: 修改启动参数
BARK_NODES, 服务端重启即可, 手机 app 无需重新注册和其他额外操作.
链接
Github: https://github.com/mty0313/barklb
DockerHub: https://hub.docker.com/r/martin0313/barklb