Apache APISIX 携手 CoreDNS 打开服务发现新大门

本文介绍了Apache APISIX如何结合CoreDNS进行服务发现,详细阐述了服务发现的重要性、CoreDNS的优势以及集成过程。通过配置Apache APISIX和CoreDNS,实现了动态绑定服务地址,确保在容器化环境中高效、稳定地调用服务。
摘要由CSDN通过智能技术生成

Apache APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。作为云原生 API 网关,Apache APISIX 也集成了多种服务发现的能力,本文将为您展示在 Apache APISIX 中如何配置 CoreDNS。

背景信息

在传统的物理机和虚拟机部署中,各个服务之间的调用可以通过固定 IP + 端口的方式进行。随着云原生时代的到来,企业业务的部署更倾向于云原生容器化。但是在容器化环境中,服务实例的启动和销毁是非常频繁的,如果通过运维人员手动维护不仅工作量大,而且效果也欠佳。因此需要一种机制可以自动检测服务状态,当服务地址出现变更时,动态绑定新的地址。服务发现机制应运而生。

服务发现简介

服务发现机制可以分为两部分:

  • 服务注册中心: 存储服务的主机和端口信息。

假如某个容器对外提供计算平均值的服务,我们使用 average 的服务名作为唯一标识符,那么在服务注册中心就会以键值对(average:192.168.1.21)的方式存储。

  • 服务发现:允许其他用户发现服务注册阶段存储的信息。分为客户端发现模式和服务端发现模式。

客户端服务发现模式

在使用客户端发现模式时,客户端通过查询服务注册中心的存储信息,获取可用服务的实际网络地址后,通过负载均衡算法选择一个可用的服务实例,并将请求发送至该服务。

优点:架构简单,扩展灵活,方便实现负载均衡功能。

缺点:重客户端,强耦合,有一定开发成本。

在这里插入图片描述

客户端发现模式实现逻辑如下:

  1. 新服务启动时,主动向注册中心注册,服务注册中心会存储新服务的服务名和地址;
  2. 当客户端需要这个服务时,会使用服务名向服务注册中心发起查询;
  3. 服务注册中心返回可用的地址,客户端再根据具体的算法选择其中一个发起调用。

在这个过程中,除了服务注册,服务发现的工作基本由客户端独立完成,注册中心和服务端的地址对客户端也是完全可见的。

服务端服务发现模式

客户端向 Load Balancer 发送请求,Load Balancer 根据客户端的请求查询服务注册中心,找到可用的服务后转发请求到该服务上,和客户端服务发现模式一样,服务都需要在注册中心进行服务注册和注销。

优点:服务的发现逻辑对客户端是透明的。

缺点ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

API7.ai 技术团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值