V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
LeeReamond
V2EX  ›  程序员

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

  •  
  •   LeeReamond · 2 天前 · 904 次点击

    如题,基本情况:

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

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

    1. consul
    2. etcd
    3. k8s/k3s

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

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

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

    那么我推荐的是 https://docs.celeryq.dev/en/stable/ + https://github.com/mher/flower , 可以实现你的爬虫 worker 集群的管理,包含创建,监控和伸缩,还可以用 docker 部署( k8s 集群可以参考 https://www.kubernetes.org.cn/doc-39 ),也挺简单的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3221 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:41 · PVG 20:41 · LAX 04:41 · JFK 07:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.