关于微服务外网调用的一些疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fatyoung
V2EX    问与答

关于微服务外网调用的一些疑问

  •  
  •   fatyoung 2023-07-31 11:01:09 +08:00 1455 次点击
    这是一个创建于 812 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务 A 调用服务 B ,假设 AB 在同一个服务器内,那么没有问题,是走内网调用。
    假如 AB 不在同一个服务器内,那么服务 A 调用服务 B 是不是就要走外网,就要走防火墙?是不是还得在 A 或 B 服务器里做公网 IP 端口映射? 那是不是会有性能方面的问题?
    小弟这方面知识比较薄弱,请教下老哥们
    13 条回复    2024-06-21 16:25:30 +08:00
    chevalier
        1
    chevalier  
       2023-07-31 11:04:51 +08:00
    微服务的基建之一,服务发现,了解一下

    内部调用不适合走外网,如果没有服务发现基建的话,给 AB 分配个内网的域名和内部 DNS ,内部的调用走内网域名
    fatyoung
        2
    fatyoung  
    OP
       2023-07-31 11:18:22 +08:00
    @chevalier 我理解的服务发现就是把服务注册到某一个注册中心上去,consumer 从注册中心去找 provider 。找到的这个地址 DNS 解析之后肯定是内网地址吗?会不会因为 provider 在另一个服务器里面所以解析出来一个不在当前内网的 IP ?
    lsk569937453
        3
    lsk569937453  
       2023-07-31 11:18:25 +08:00
    所以就有了 API 网关啊。所有进微服务的外部流量一律走网关。
    melkor
        4
    melkor  
       2023-07-31 11:21:07 +08:00 via iPhone
    @fatyoung 找到多个 IP 很正常,一致性哈希或者随机选就行,要做负载均衡。本来微服务就不是性能最高的做法,强行选本机会导致流量不均匀,机器资源就不好分配了。
    crysislinux
        5
    crysislinux  
       2023-07-31 11:24:25 +08:00 via Android
    一般都在一个 VPC 内部吧。跨 VPC 了就该怎么按外部请求办。
    fatyoung
        6
    fatyoung  
    OP
       2023-07-31 11:30:04 +08:00
    @lsk569937453 服务间的调用一般是不走网关吧?
    td width="auto" valign="top" align="left">
        7
    4lieS  
       2023-07-31 11:40:01 +08:00
    你说的是对的
    4lieS
    fatyoung
        8
    fatyoung  
    OP
       2023-07-31 11:47:02 +08:00
    @crysislinux 意思就是说微服务里的所有服务最好都在同一个服务器内是吗? 一般都是这样的吧?
    fatyoung
        9
    fatyoung  
    OP
       2023-07-31 11:48:05 +08:00
    fatyoung
        10
    fatyoung  
    OP
       2023-07-31 11:48:34 +08:00
    @melkor
    @4lieS
    谢谢回复
    crysislinux
        11
    crysislinux  
       2023-07-31 12:04:30 +08:00 via Android   1
    @fatyoung 不是同一个服务器内,是在同一个虚拟网络内。地理位置在不同城市的服务器也可以在同一个内网,你想象一下 VPN 是怎么样的就大概明白了。比如在 aws 上你可以创建一个 VPC ,然后各种 balancer ,ec2 之类的都可以加入这个 VPC ,VPC 内的服务逻辑上就是在一个内网
    dandankele
        12
    dandankele  
       2024-06-21 15:33:06 +08:00
    @crysislinux 所以微服务架构可以跨地域吗?只要是属于可控的、拥有管理权的内部服务和应用,都通过基建让他们在同一个 VPC 内是吗?
    crysislinux
        13
    crysislinux  
       2024-06-21 16:25:30 +08:00
    @dandankele 可以是可以,比如 https://docs.aws.amazon.com/vpc/latest/peering/peering-scenarios.html ,但是我们还没这么用过。一般的项目一个区域也够了吧,比如 AWS 一个区域有多个 zone ,VPC 是可以跨 zone 的,你可以看看 https://aws.amazon.com/vpc/faqs/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3200 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 12:04 PVG 20:04 LAX 05:04 JFK 08:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86