BarkLB: Bark 推送服务的负载均衡与高可用

218 天前
 MaMimi

介绍

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 推送形式

  1. 负载均衡策略为简单的随机策略, 主要解决的问题为尽可能保证高可用.
  2. 健康检查会及时更新在线服务器列表.
  3. 一个推送 key: LB-xxxxxxx 即可使用多个 bark 服务后端. 原版服务器的注册,删除,配置变更等均由barklb自动操作.
  4. bark 服务节点配置变更: 修改启动参数BARK_NODES, 服务端重启即可, 手机 app 无需重新注册和其他额外操作.

链接

Github: https://github.com/mty0313/barklb

DockerHub: https://hub.docker.com/r/martin0313/barklb

1946 次点击
所在节点    分享创造
4 条回复
xiangchen2011
218 天前
我在用 bark ,挺好的,支持楼主
xiangchen2011
218 天前
为楼主点上了第一课小⭐️⭐️
MaMimi
218 天前
@xiangchen2011 #2 给你也点一颗小心心
mylofsh
218 天前
厉害,可以避免单节点故障风险

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1111219

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX