首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

多个微服务+集群模式下,端口定义有规范或习惯吗?

  •  
  •   lawsiki · 84 天前 · 1486 次点击
    这是一个创建于 84 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如有 order,user,message 三个服务,每个服务部署 3 台节点,端口怎么定义呢?每个集群占一个区段,集群节点自增?

    order:8080,8081,8082

    user:9090,9091,9092

    message:10000,10001,10002

    12 回复  |  直到 2019-06-30 21:58:46 +08:00
        1
    l1nyanm1ng   84 天前
    注册到 eureka 上,通过 eureka-server 来控制负载均衡,通过 zuul gateway 来代理 url,这样就可以屏蔽到底用了多少集群,负载均衡全部由 eureka 来做,平时访问的只是 zuul gateway 放出的接口
        2
    lawsiki   84 天前
    @l1nyanm1ng #1 感谢回复,我的意思是端口如何定义能够更加清晰,更好的管理,例如我现在的服务端口是 8080,该端口+100 就是对应的 debug 端口,通过这样一个规则就能快速找到相关的端口
        3
    lhx2008   84 天前
    最佳实践可能就是 K8S,或者简单一点的可以用 Docker Stack,一个服务只要指定一个端口就行。
        4
    opengps   84 天前
    实际业务应该仅仅是不同域名,端口都用 80/443 这种常规端口
        5
    opengps   84 天前
    负载均衡来实现不同机器对外使用相同地址
        6
    hst001   84 天前
    go micro 会使用随机端口,这种情况需要服务发现支持
        7
    jaskle   83 天前 via Android
    偷偷的告诉你:一切以排查问题最简单的方式来部署服务。运维自动化一时爽,一直自动化一直被研发打死。
        8
    helloworld000   83 天前
    同学,consistent hashing 了解一下
        9
    shm7   83 天前 via iPhone
    如果用 k8s 可以用 service ip 来区分,甚至有的服务商支持域名绑定,用端口区分,本身就不易区分。scale out 估计还要重新配环境吧
        10
    cabing   83 天前
    这个可以随意随意定义吧。指定一个规则,以后按照规则定义就行。

    这种端口都是需要进行服务注册的,注册的时候刻意检测出哪些端口被使用。其实你在注册的时候也可以记录下哪些端口在使用。

    不一定都是 http 协议。最好是把协议部分抽象下。加上薄薄的一层。
        11
    arrow8899   83 天前
    如果是传统的服务,可以定义一个区间,比如 40000-50000,每个服务取一个就行。
    如果是用 k8s 做集群,可以都使用 80 端口,然后使用服务名称来访问。
        12
    hantsy   83 天前
    自己的单机上跑才关注端口,实际应用使用 Api Gateway+Service Discovery 自动分配端口。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   862 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 20:02 · PVG 04:02 · LAX 13:02 · JFK 16:02
    ♥ Do have faith in what you're doing.