范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

全新一代API网关,带可视化管理,文档贼友好

  提到API网关,大家比较熟悉的有Spring Cloud体系中的Gateway和Zuul,这些网关在使用的时候基本都要修改配置文件或自己开发功能。今天给大家介绍一款功能强大的API网关apisix,自带可视化管理功能,多达三十种插件支持,希望对大家有所帮助!
  SpringBoot实战电商项目mall(50k+star)地址:https://github.com/macrozheng/mall简介
  apisix是一款云原生微服务API网关,可以为API提供终极性能、安全性、开源和可扩展的平台。apisix基于Nginx和etcd实现,与传统API网关相比,apisix具有动态路由和插件热加载,特别适合微服务系统下的API管理。
  image核心概念
  我们先来了解下apisix的一些核心概念,对我们接下来的使用会很有帮助!上游(Upstream):可以理解为虚拟主机,对给定的多个目标服务按照配置规则进行负载均衡。路由(Route):通过定义一些规则来匹配客户端的请求,然后对匹配的请求执行配置的插件,并把请求转发给指定的上游。消费者(Consumer):作为API网关,有时需要知道API的消费方具体是谁,通常可以用来做身份认证。服务(Service): 可以理解为一组路由的抽象。它通常与上游是一一对应的,路由与服务之间,通常是多对一的关系。插件(Plugin):API网关对请求的增强操作,可以对请求增加限流、认证、黑名单等一系列功能。可以配置在消费者、服务和路由之上。安装
  由于官方提供了Docker Compose部署方案,只需一个脚本即可安装apisix的相关服务,非常方便,这里我们也采用这种方案来部署。首先下载apisix-docker项目,其实我们只需要使用其中的example目录就行了,下载地址:https://github.com/apache/apisix-docker
  image接下来我们把example目录上传到Linux服务器上去,来了解下这个目录里面的东西;drwxrwxrwx. 2 root root   25 Jun 19 10:12 apisix_conf   # apisix配置文件目录 drwxrwxrwx. 2 root root   71 Jun 24 09:36 apisix_log    # apisix日志文件目录 drwxrwxrwx. 2 root root   23 Jun 23 17:10 dashboard_conf  # 可视化工具apisix-dashboard配置文件目录 -rwxrwxrwx. 1 root root 1304 Jun 19 10:12 docker-compose-alpine.yml # docker-compose 部署脚本(alpine)版本 -rwxrwxrwx. 1 root root 1453 Jun 19 10:12 docker-compose.yml # docker-compose 部署脚本 drwxrwxrwx. 2 root root   27 Jun 19 10:12 etcd_conf # ectd配置文件目录 drwxrwxrwx. 3 root root   31 Jun 23 17:06 etcd_data # ectd数据目录 drwxrwxrwx. 2 root root  107 Jun 19 10:12 mkcert drwxrwxrwx. 2 root root   40 Jun 19 10:12 upstream # 两个测试用的Nginx服务配置 从docker-compose.yml中我们可以发现,该脚本不仅启动了apisix、apisix-dashboard、etcd这三个核心服务,还启动了两个测试用的Nginx服务;version: "3"  services:   # 可视化管理工具apisix-dashboard   apisix-dashboard:     image: apache/apisix-dashboard:2.7     restart: always     volumes:     - ./dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml     ports:     - "9000:9000"     networks:       apisix:      # 网关apisix   apisix:     image: apache/apisix:2.6-alpine     restart: always     volumes:       - ./apisix_log:/usr/local/apisix/logs       - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro     depends_on:       - etcd     ##network_mode: host     ports:       - "9080:9080/tcp"       - "9443:9443/tcp"     networks:       apisix:      # apisix配置数据存储etcd   etcd:     image: bitnami/etcd:3.4.15     user: root     restart: always     volumes:       - ./etcd_data:/bitnami/etcd     environment:       ETCD_ENABLE_V2: "true"       ALLOW_NONE_AUTHENTICATION: "yes"       ETCD_ADVERTISE_CLIENT_URLS: "http://0.0.0.0:2379"       ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"     ports:       - "2379:2379/tcp"     networks:       apisix:    # 测试用nginx服务web1,调用返回 hello web1   web1:     image: nginx:1.19.0-alpine     restart: always     volumes:       - ./upstream/web1.conf:/etc/nginx/nginx.conf     ports:       - "9081:80/tcp"     environment:       - NGINX_PORT=80     networks:       apisix:    # 测试用nginx服务web2,调用返回 hello web2   web2:     image: nginx:1.19.0-alpine     restart: always     volumes:       - ./upstream/web2.conf:/etc/nginx/nginx.conf     ports:       - "9082:80/tcp"     environment:       - NGINX_PORT=80     networks:       apisix:  networks:   apisix:     driver: bridge 在docker-compose.yml文件所在目录下,使用如下命令可以一次性启动所有服务;docker-compose -p apisix-docker up -d 启动成功后,使用如下命令可查看所有服务的运行状态;docker-compose -p apisix-docker ps               Name                            Command               State                       Ports                      -------------------------------------------------------------------------------------------------------------------------- apisix-docker_apisix-dashboard_1   /usr/local/apisix-dashboar ...   Up      0.0.0.0:9000->9000/tcp                         apisix-docker_apisix_1             sh -c /usr/bin/apisix init ...   Up      0.0.0.0:9080->9080/tcp, 0.0.0.0:9443->9443/tcp apisix-docker_etcd_1               /opt/bitnami/scripts/etcd/ ...   Up      0.0.0.0:2379->2379/tcp, 2380/tcp               apisix-docker_web1_1               /docker-entrypoint.sh ngin ...   Up      0.0.0.0:9081->80/tcp                           apisix-docker_web2_1               /docker-entrypoint.sh ngin ...   Up      0.0.0.0:9082->80/tcp  接下来就可以通过可视化工具来管理apisix了,登录账号密码为admin:admin,访问地址:http://192.168.5.78:9000/
  image登录之后看下界面,还是挺漂亮的,apisix搭建非常简单,基本无坑;
  image还有两个测试服务,web1访问地址:http://192.168.5.78:9081/
  image另一个测试服务web2访问地址:http://192.168.5.78:9082/
  image使用
  apisix作为新一代的网关,不仅支持基本的路由功能,还提供了丰富的插件,功能非常强大。基本使用
  我们先来体验下apisix的基本功能,之前已经启动了两个Nginx测试服务web1和web2,接下来我们将通过apisix的路由功能来访问它们。首先我们需要创建上游(Upstream),上游相当于虚拟主机的概念,可以对真实的服务提供负载均衡功能;
  image创建web1的上游,设置好名称、负载均衡算法和目标节点信息;
  image再按照上述方法创建web2的上游,创建完成后上游列表显示如下;
  image再创建web1的路由(Route),路由可以用于匹配客户端的请求,然后转发到上游;
  image再选择好路由的上游为web1;
  image接下来选择需要应用到路由上的插件,apisix的插件非常丰富,多达三十种,作为基本使用,我们暂时不选插件;
  image再创建web2的路由,创建完成后路由列表显示如下;
  image接下来我们通过apisix网关访问下web1服务:http://192.168.5.78:9080/web1/
  image接下来我们通过apisix网关访问下web2服务:http://192.168.5.78:9080/web2/
  image进阶使用
  apisix通过启用插件,可以实现一系列丰富的功能,下面我们来介绍几个实用的功能。身份认证
  使用JWT来进行身份认证是一种非常流行的方式,这种方式在apisix中也是支持的,可以通过启用jwt-auth插件来实现。首先我们需要创建一个消费者对象(Consumer);
  image然后在插件配置中启用jwt-auth插件;
  image启用插件时配置好插件的key和secret;
  image创建成功后消费者列表时显示如下;
  image之后再创建一个路由,路由访问路径匹配/auth/*,只需启用jwt-auth插件即可;
  image访问接口获取生成好的JWT Token,需要添加两个参数,key为JWT插件中配置的key,payload为JWT中存储的自定义负载数据,JWT Token生成地址:http://192.168.5.78:9080/apisix/plugin/jwt/sign
  image不添加JWT Token访问路由接口,会返回401,接口地址:http://192.168.5.78:9080/auth/
  image在请求头Authorization中添加JWT Token后即可正常访问;
  image当然apisix支持的身份认证并不只这一种,还有下面几种。
  image限流功能
  有时候我们需要对网关进行限流操作,比如每个客户端IP在30秒内只能访问2次接口,可以通过启用limit-count插件来实现。我们在创建路由的时候可以选择配置limit-count插件;
  image然后对limit-count插件进行配置,根据remote_addr进行限流;
  image当我们在30秒内第3次调用接口时,apisix会返回503来限制我们的调用。
  image跨域支持
  如果你想让网关支持跨域访问的话,可以通过启用cors插件来实现。我们在创建路由的时候可以选择配置cors插件;
  image然后对cors插件进行配置,配置好跨域访问策略;
  image调用接口测试可以发现接口已经返回了CORS相关的请求头。
  image总结
  体验了一把apisix这个全新一代的API网关,有可视化管理的网关果然不一样,简单易用,功能强大!如果你的微服务是云原生的话,可以试着用它来做网关。
  其实apisix并不是个小众框架,很多国内外大厂都在使用了,如果你想知道哪些公司在使用,可以参考下面的连接。
  https://github.com/apache/apisix/blob/master/powered-by.md参考资料
  apisix的官方文档非常友好,支持中文,简直是业界良心!过一遍官方文档基本就能掌握apisix了。
  image
  官方文档:https://apisix.apache.org/zh/docs/apisix/getting-started项目源码地址
  https://github.com/apache/apisix-docker

国服第一卡牌药水哥重出江湖,艺术出装气氛直接拉满!素有艺术家之称的药水哥在虎牙直播首秀被网友广泛关注,作为一名英雄联盟主播,药水哥被粉丝尊称为国服最强卡牌,并不是操作有多犀利,而是心态很强大,药水哥最出名的一件事情就是和质疑他的水刺激战场如何获得至尊金龙套装?至尊金龙套是刺激战场光子专门为电竞前辈魔兽争霸war3人皇sky打造的,以此表彰凸显其为电竞行业作出的突出贡献。在游戏中至尊金龙套已经成为一种身份地位的象征,迄今为止官方并未释放售这款在APPStore排名第一的手游也太气人了吧!这几天刷微博刷抖音的时候,经常可以看到疯狂原始人手游的推广,即使是根本没关注的账号也能刷到类似的广告。作为一个曾经刷了三遍电影的死忠粉,对这个IP还是充满着回忆的,忍不住看了下游戏DNF极限冰强能堆到多少?六百五十七冰属性强化不再是梦而能够成为现实,你怎么看?对于DNF这样的游戏来说,每个版本的强势程度都有所不同,各种装备都会随着版本的更新而不断的升级,不仅是装备以及各种套装也都在持续优化中,所以才能持续发展下去,在游戏中有一套七十五级那些年,传奇里的经典语录,火到堪比老骚的弟弟救我!说到热血传奇几乎是所有的老网民都知道,当时传奇的火热程度不逊于现在的枪战游戏吃鸡,更不逊色于竞技游戏王者荣耀。传奇是2001年,也就是18年前,盛大公司代理的一款角色扮演网络游戏。LOL玩久了会留下这8个后遗症!我反正全中了,你呢?忘记是一位科学家说过还是心理学家说过的了,反正这句话就是说一个人养成一个习惯需要一个21天的周期,也就是无论是谁在21天里,重复做一件事都会养成一个习惯。学习生活中如此,其实在玩游拳皇97中的五弱角色都有谁?谁完全不值得开发?谁有比较大的潜力?提起拳皇游戏相信是很多80后90后玩家们心中的第一格斗游戏。尤其是97版本当年更是在游戏厅非常火爆。97这款游戏的角色强弱是很分明的,有五强和五弱角色。那么假如说这五弱角色被开发的当年玩游戏有多拼,凌晨两三点还在玩!为了通关副本连刷1个月!经常会遇到这种情况,走在路上,偶然听到熟悉的音乐,会让我们想起过去的点点滴滴。许久没有听音乐,打开音乐列表,恰巧听到当年熟悉的天龙旋律,勾起了很多回忆。曾经的天龙,给我最深的印象就微笑直播谈UZI以后不要再刷卢锡安了,小狗其实也挺不容易的!有观看英雄联盟的小伙伴们应该知道微笑这名选手,作为国内ADC的教科书鼻祖,他在LPL中有着不少的小迷弟,其中UZI更是将微笑视为自己的偶像。而前段时间微笑在直播的时候看到自己直播间上古卷轴Online宣布将支持DLSSDLAA技术,成为首款支持DLAA的游戏游戏开发商ZeniMaxOnlineStudios的首席图像工程师AlexTardif在其推特账户上表示,上古卷轴Online不但会支持英伟达的DLSS技术,同时还会支持新的DLA植物大战僵尸原版中文电脑版提起最经典的策略塔防游戏相信大家都会在第一时间享受植物大战僵尸吧,其独特的植物僵尸造型,经典丰富的游戏玩法以及诙谐有趣的疯狂戴夫都给玩家们留下了最深刻的印象,所以为了让玩家可以重温
手游开测表下周12。2012。26将上线开测的手游又到了每周手游开测表时间,新的一周又会有哪些好游上线测试呢?一起来看看吧测试资讯即将上线(排序按时间顺序)12月21日光隙解语开发商发行商bilibili游戏开测上线时间12月21原神资源获取稻妻人风土情那些你可能不知道的对话小奖励(第二期)嗨,各位旅行者们你们好呀,这里是xiaoba第二期奖励对话小游戏整理来啦,欢迎旅行者们前来参考哟!Ps具体方位可以参考图片小地图哟!第二期稻妻城(2)篇有奖对话1关于委托地点npc王者荣耀张人0认输秀腹肌,女粉大饱眼福,剑仙索然无味短视频平台的发展在近几年也是十分的迅速,随着短视频的发展也让很多普通人有了当网红的机会,在这个平台中你只要能够产出有趣的内容或者拥有较为不错的面容,都是能够脱颖而出的,说到网红那么肝不动了!2021年玩家想通关但还未通关的游戏出炉随着12月过半,2021年已经接近尾声,受到疫情影响虽然本年没有太多大作但也拥有着不少佳作诞生。国外网站HowLongtoBeat在年终总结中统计了2021年积压最多游戏Top10日常安利幻塔废土新世界漫游指南或许对原教旨主义者来说,用废土来形容幻塔的世界观,并不是很准确。毕竟当玩家来到新手村星岛避难所时,看不到废土特有的荒凉压抑与绝望。而是用舰船残骸建成的钢铁基地各种高端科技设施。外面太受玩家欢迎万代南梦宫宣布暂停艾尔登法环豪华限定版预购选在此时迭代网站可能不是个好主意艾尔登法环是2022年最受瞩目的新作之一,所以可想而知豪华预定版也很受玩家欢迎。这个版本也是数量最少的限量版。定价260美元,里面包括了限定版外盒一传世怀旧传世手游的巅峰之作霸气回归,和你们一起重拾经典传奇世界怀旧版继承传奇世界的核心玩法,延续最原始传奇世界的经典设定,完美复刻顶级蓝光画质!这款传奇世界,是由正版授权的传世手游,这款手游不仅画面质量还是界面全都是由传奇世界端游完美追忆华夏不负时光!华夏大陆诸神现在上线升级送礼超级丰厚大家好,给大家介绍一款全新的上古山海手游华夏大陆诸神,这是一款带有神话色彩的游戏,重回华夏,更多精彩内容等你来玩!纷争缘起(游戏背景)天地之初,不知过了多少岁月,有了世界之分。仙魔DOTA2竟然开始支持手柄游玩!再复杂的英雄也能够用手柄操作编辑Mark转自wanuxiDOTA2随着Valve正式公布了旗下的掌机SteamDeck,不少玩家都在询问一件事情,就是SteamDeck到底能不能拿来玩DOTA2。在一名网友的田丰优质设定难堪大用贪财董卓无比给力大浪淘沙群雄专属之罪今天我们数一数大浪淘沙游戏中群雄阵营的专属特技之罪。东汉末年,朝廷乏力,不仅各地爆发了黄巾起义,有实力的太守和刺史也纷纷将朝廷的部队归属成自己的私人武装,从而形成了群雄割据的态势。大超最近玩了荒野大镖客2很想看电影版众所周知大超亨利卡维尔是一名重度游戏玩家,在最近接受外媒采访时,卡维尔表示他最近才开始玩荒野大镖客救赎2这款著名的西部游戏,但他玩的非常开心,希望有一天这款游戏能拍成一部电影。大超