Python 项目的服务注册/发现用什么工具比较好?

3 天前
 LeeReamond

如题,基本情况:

  1. 个人爬虫项目,子容器数量比较多,以及代码量比较大,组件间通过 tcp 交互。
  2. 目前手动维护,姑且是能跑,但是希望进行一点基础管理以降低工作量。
  3. 希望有一个管理中心,实现的功能包括,向中心注册服务,从中心拉取服务列表,以及中心在子容器卡死时可以重启。

问了一下 chatgpt ,推荐了以下工具:

  1. consul
  2. etcd
  3. k8s/k3s

想问下对于 python 环境来说哪个客户端接入比较友好,功能够用就行,稳定/坑少?

另外有关守护服务这个事,直接用 docker 不知道能不能实现类似效果?守护服务这个东西原理是啥,程序报错误码了的话倒是好理解程序坏了,但如果单纯因为非代码原因卡住,像 windows 程序不是有个什么无响应这种状态,这能识别吗?

937 次点击
所在节点    程序员
8 条回复
wangritian
3 天前
守护服务是指监控程序定时往指定地址发送请求,你的应用代码检查必要组件的健康后返回 200 状态码,是一个单独的接口。推荐找找一键部署的 k8s/k3s ,并学习一下基础结构和操作方法,你是为了使用不要去深入复杂的配置文件
salmon5
3 天前
k8s service+health check 完全够了,实际中 java 在大部分项目,都没必要搞微服务(都是为了简历好看),py 就更别挖坑了
salmon5
3 天前
服务自动注册上下线+故障自愈
julyclyde
2 天前
不懂。爬虫项目内部有啥可通信的?
julyclyde
2 天前
etcD 注册就可以了。很简单
旧版本 HTTP 接口;新的需要单独的客户端
julyclyde
2 天前
docker 可以守护。不过你爬虫项目其实不缺那一个两个实例的吧,管他干啥?
guanzhangzhang
1 天前
你这都是爬虫了,感觉没必要考虑高可用和微服务那套服务注册了,基础的 k8s service 也够用了,把消息队列啥的放在外部
highkay
1 天前
从你的需求看,你需要的不是这种面向微服务的注册和发现的解决方案,因为我推测你的业务架构非常简单,一个主控服务+N 个爬虫 worker ,可能还有一些数据处理的流水线之类的。

那么我推荐的是 https://docs.celeryq.dev/en/stable/ + https://github.com/mher/flower , 可以实现你的爬虫 worker 集群的管理,包含创建,监控和伸缩,还可以用 docker 部署( k8s 集群可以参考 https://www.kubernetes.org.cn/doc-39 ),也挺简单的。

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

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

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

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

© 2021 V2EX