首页 > 其他分享 >apisix~相关组件的图形化说明

apisix~相关组件的图形化说明

时间:2024-11-03 14:42:01浏览次数:3  
标签:apisix 插件 服务 API APISIX 组件 图形化 路由

参考:https://docs.api7.ai/apisix/key-concepts/plugins

Apache APISIX是Apache软件基金会下的顶级项目,由API7.ai开发并捐赠。它是一个高性能的云原生API网关,具有动态、实时等特点。

APISIX网关可作为所有业务的流量入口,为用户提供了丰富的功能,包括动态路由、动态上游、动态证书、A/B测试、灰度发布(金丝雀发布)、蓝绿部署、限速、防攻击、指标收集、监控报警、可观测性和服务治理等。基于Nginx和OpenResty构建的APISIX,通过Lua语言扩展了其功能,具有高性能和低延迟的特点,是构建现代微服务架构的理想选择。

接下来本文将介绍如何安装并运行APISIX!
APISIX基础概念
上游(Upstream)

上游是指应用层服务或节点的抽象。它的作用是对服务节点进行负载均衡,以确保请求能够被有效地处理。在APISIX中,上游的地址信息可以直接配置到路由或服务上。通过创建上游对象,可以在多个路由或服务中共享相同的上游配置,从而简化管理和维护。
路由(Route)

路由是APISIX中最核心的资源对象之一。它定义了请求的匹配规则,并根据匹配结果执行相应的操作。路由通常包含以下三个重要部分:

匹配规则:用于确定请求是否与路由匹配。
插件配置:用于在请求生命周期中执行特定的逻辑操作。
上游信息:指定请求应该被转发到哪个上游服务。

通过路由的配置,可以实现诸如路由转发、请求过滤、流量控制等功能。
服务(Service)

服务是某类API的抽象,通常与上游服务一一对应。它定义了API的基本信息,包括访问路径、后端服务地址等。路由与服务之间的关系通常是N:1的,即多个路由可以引用同一个服务。
消费者(Consumer)

消费者是指使用API服务的客户端。消费者需要进行认证并获得访问权限,才能够使用API提供的服务。在APISIX中,消费者可以与插件或上游服务进行绑定,从而实现个性化的访问控制和流量管理。
插件(Plugin)

插件是扩展APISIX应用层能力的重要机制。它们在请求或响应的生命周期中执行特定的逻辑操作,以实现诸如请求转发、请求修改、流量控制等功能。插件可以与路由、服务或消费者进行绑定,以实现个性化的功能定制和流量处理。
Admin API

APISIX 提供了 Admin API 和直观的 Dashboard,这些工具使得配置 Apache APISIX 路由、上游、服务、SSL 证书等功能变得简单而直观。

通过 Admin API,用户可以轻松地获取、创建、更新和删除资源。APISIX 具有热加载能力,这意味着在资源配置完成后,APISIX 会自动更新配置,无需重新启动服务。Dashboard 则提供了可视化界面,用户可以直观地管理和监控 APISIX 的各项功能。

Admin API 和 Dashboard 的使用使得对 API 网关的管理变得高效且易于维护。通过这些工具,用户可以根据需要动态地调整和优化 API 网关的配置,从而满足不同的业务需求。

LB到APISIX到后端服务

  • apisix-gatewary(k8s-service)默认容器端口9080,统一流量入口
  • apisix-admin(k8s-service)默认容器端口9180,apisix管理的入口api
  • apisix-etcd,这是apisix的数据存储

具体DNS到后端服务

APISIX的架构设计如下所示:

其中,APISIX 核心包括路由匹配、负载均衡、服务发现、API 管理等重要功能,以及配置管理等基础模块。同时,APISIX 还提供了丰富的内置插件,涵盖了可观测性、安全、流量控制等方面。

Admin API 和 Dashboard 为用户提供了一种简单而强大的方式,使得用户可以轻松地管理和配置他们的 API 网关,从而更好地满足业务需求。

Plugins Execution Lifecycle

An installed plugin is first initialized. The configuration of the plugin is then checked against the defined JSON Schema to make sure the plugins configuration schema is correct.

When a request goes through APISIX, the plugin's corresponding methods are executed in one or more of the following phases : rewrite, access, before_proxy, header_filter, body_filter, and log. These phases are largely influenced by the OpenResty directives.

apisix和认证服务

routes

upstreams

services

plugins

plugin configs

consumers

consumer groups

SSL Certificates

TLS Between Client Applications and APISIX

mTLS Between APISIX and Upstreams

When a certificate, such as a wildcard certificate, is valid for multiple domains, it is recommended to create a single SSL object to store the certificate and key and avoid the repetitive TLS configurations on upstreams:

Secrets

Stream Routes

![])(https://static.apiseven.com/uploads/2023/04/28/NxlpM4Yf_stream_routes.svg)

Protos

标签:apisix,插件,服务,API,APISIX,组件,图形化,路由
From: https://www.cnblogs.com/lori/p/18523416

相关文章

  • 「Mac畅玩鸿蒙与硬件22」鸿蒙UI组件篇12 - Canvas 组件的动态进阶应用
    在鸿蒙应用中,Canvas组件可以实现丰富的动态效果,适合用于动画和实时更新的场景。本篇将介绍如何在Canvas中实现动画循环、动态进度条、旋转和缩放动画,以及性能优化策略。关键词Canvas组件动态绘制动画效果动态进度条旋转和缩放性能优化一、使用定时器实现动......
  • 探索 cola 扩展组件的应用
    一、痛点在日常开发中,不想通过写一堆if...else...实现业务逻辑判断,使得代码越来越长难以维护,又不想每次都用编码形式在Spring中实现策略模式。要是有一个组件能通过注解配置,同时还能支持多个维度的策略判断就简单了。二、如何解决在学习cola框架时,发现cola扩展组件能通过......
  • CRON组件一个复杂的一个简单的
    CRON组件一个复杂的一个简单的一个是复杂点的一个是简单点。1.以简单的为例使用:父组件importCronSimplefrom"@/views/xxx/components/cron-simple/index.vue";components:{CronSimple}<el-dialogtitle="调度CRON"v-if="cronVisi......
  • 「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
    List和Grid是鸿蒙开发中的核心组件,用于展示动态数据。List适合展示垂直或水平排列的数据列表,而Grid则适用于展示商品或图片的网格布局。本篇将展示如何封装组件,并通过按钮实现布局切换,提升界面的灵活性和用户体验。关键词List组件Grid组件数据展示自定义列......
  • Web组件之 Listener (监听器)
    文章目录1.1Listener概述1.2Listener快速入门①xml版本②注解版本1.3案例:模拟spring框架1.1Listener概述​JavaWeb中的监听器是监听ServletContextHttpSessionHttpServletRequest三个数据域对象创建和销毁以及监听数据域对象中数据的变化,就是监听......
  • vue自定义组件实现v-model双向数据绑定
    一、Vue2 实现自定义组件双向数据绑定①v-model 实现双向数据绑定 在vue2中,子组件上使用v-model的值默认绑定到子组件的props.value属性上,由于子组件不能改变父组件传来的属性,所以需要通过$emit触发事件使得父组件中数据的变化,然后再同步到子组件。vue2默认触发v-model......
  • RTX5/FreeRTOS全家桶源码工程综合实战模板集成CANopen组件(2024-10-30)
    【前言】之前的视频教程分享了两期CANopen的专题,配套的例子都是基于裸机的,为了方便大家在OS下使用,本期视频带OS下的支持。CANopen协议栈专题,实战方式系统了解NMT,PDO,SDO,时间戳,同步报文,紧急报文等(2023-10-17)https://www.armbbs.cn/forum.php?mod=viewthread&tid=121438CANopen......
  • 开发 react 技术栈的前台项目,选用 semantic-ui-react 组件库是否是较好的选择
    在前端开发中,合适的UI组件库的选择至关重要,它能在保证交互和视觉一致性的同时,大大提升开发效率。Semantic-UI-React是React技术栈中备受关注的UI组件库之一,以其丰富的组件和友好的API受到了许多开发者的欢迎。然而,是否选择它作为项目的UI组件库需结合多个因素综合考虑......
  • 视频播放组件中,样式全屏和全屏的区别是什么?
    在视频播放组件中,"样式全屏"和"全屏"是两种不同的显示模式,它们的主要区别在于显示范围和用户体验。以下是详细的解释:样式全屏(PseudoFullscreen)显示范围:样式全屏通常是指在当前网页中最大化视频播放器的显示区域,但不会覆盖整个浏览器窗口。视频播放器会扩展到其父容器的最......
  • 微信小程序的组件
    微信小程序的组件是构成小程序界面的基本单元,通过组合不同的组件可以实现丰富的页面效果。微信小程序提供了一系列基础组件和一些高级组件,开发者可以根据需要选择使用。下面是一些常用的组件:基础组件1.view:视图容器,用于布局。2.text:文本组件,用于显示文字。3.image:图片组件......