专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

全新一代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

小学生摆摊售卖吃鸡玩具,一天赚了六百元,其用途却让老师很欣慰大家好,我是jerry帝。相信大家都知道蓝洞的绝地求生是一款大逃杀类端游,其手游刺激战场也是同样的玩法,作为当今最火的游戏之一,很多小朋友都深陷其中,玩得不亦乐乎,对于小孩子玩游戏CPU核心数越多坑就越多!新手小白装电脑千万不要轻信表面数据!相信很多人装机首要解决的硬件,就是CPU和显卡!这两个硬件可以说决定了电脑的主要性能!很多人在选择intel还是AMD平台的问题上就能纠结一整天!当然CPU作为电脑的大脑,选择也应这个网吧2万台电脑,全年爆满,游戏者的天堂中国虽然是一个电竞大国,已经也出现过许多电竞大咖,也拿过不少亮眼的成绩,但是要说对电脑非常痴迷的还属于欧洲的一个地方,这里有一个最大的网吧,超过2万台电脑在这里聚集,许多人都拖家带光遇迎来新季节表演季,大家比较期待哪个先祖呢?国服的大家都期待了很久的表演季在今天的中午十二点官方发布了微博发布了正式上线时间!将于我们的4月28日正式开启!这边光遇也是跟大家官宣了很多新集结比较有趣的玩法。我们新的季节也将迎告诉你个秘密,头条功能新发现(帮我戒掉王者荣耀),太强大了序不知不觉在王者生涯已经1600天了,由于孩子小学需要辅导作业,在查阅资料的时候,发现头条的信息量很全面很强大,而且讲解通俗易懂。为了方便自己,也为了回馈大家,举手之劳,所以决定以打造独一无二的世界,这款游戏用3年时间做到了三年前,多数从业者或许不会想到,一款小众的塔防二次元产品,能成为当时手游市场的黑马,持续走红至今,一并抬升了国产二次元的审美质感。塔防黑马设计感没错,这款游戏正是明日方舟。在逐步开光遇礼包涨价的原因,希望玩家少买?这理由好无聊前言大家好,我是喜欢玩游戏聊游戏的孟婆小叔。22号更新的版本,官方带来了重大的调整。一是三个毕业礼乐器,外观上做了调整,更改了颜色,另外价格也涨了30元,由98调整为128元。二是讲一讲你的奇葩队友吧我玩和平三四年了,遇到了很多奇葩队友,在这里列举一下,看看你有没有遇到过第一种,实力不行却爱指挥的。众所周知好的指挥会提高队伍的吃鸡率,但是瞎指挥的,只会送队友成盒第二种,车技不行传世攻速单职业倾情之作,传世攻速版今日火爆上线传世攻速版将战士在游戏中单线发展,不仅将核心技能延续,还将道士的施毒术和法师的魔法盾融合,成就了一个全能新战士职业,不愧是单职业巅峰之作!同时,上线就满攻速,一秒五刀不在话下!(末异星装置博物馆中文版下载异星装置博物馆安卓汉化版手机版异星装置博物馆中文版是从pc端移植而来的一款科幻悬疑解谜游戏,目前的异星装置博物馆中文版已经完全汉化内容,为大家提供中文字幕。在本作中,你发现了来自外星球的神秘物体,运用你的思维与第二届同程杯英雄联盟手游争霸赛线上赛落幕,全国四强晋级总决赛4月20日,第二届同程杯英雄联盟手游争霸赛线上晋级赛落幕。经过半个月的比拼,4支队伍最终从全国279支队伍中脱颖而出。这四支队伍将前往桂林总决赛现场,共同争夺总冠军和4万元人民币奖
DOTA2DPC中国A级联赛前瞻aries对阵MAGMA,SAG对阵XG2021年12月17日将迎来两场焦点对决,ariesMAGMASAG以及XG这4支队伍将迎来一场非常关键的比赛,这两场比赛,哪支队伍能够取得胜利,那么将意味着他们将有望晋级S级联赛正面对刚神鸡营,拘留所标准提高至2400,却依旧拿德华没办法说起刘氏家族相信经常关注巅峰赛局势的小伙伴都不陌生,所谓刘氏家族就是主播韩涵的粉丝,在得知韩涵本命叫作刘伟之后游戏ID全部改成和刘伟相关昵称,其中不乏很多巅峰赛大佬。这不正值神鸡营马可波罗喜提六元新皮马可萝卜,值得投资吗?昨天,官方公布了马可波罗新皮肤潮玩牛仔的消息,勇者品质,限时秒杀价60点券,将会在12月17日1400上架。先给大家看看背景故事。该皮肤的故事背景,是一个热爱冒险与探索的牛仔玩具,原神雷国绝非无脑,很多人对雷国的手法细节理解还不到位作者NGA刹那未来先上box防云。9月初时(雷神刚出)我的雷国队就已经成型。(这是潮汐的那一期,对雷国极其恶心。)上一期的,这期的没录素材。起因是我看到许多代凹深渊,玩雷国时有很多暗黑破坏神2时隔11年后即将推出首个大型职业平衡补丁借助暗黑破坏神2重制版的火热,暴雪在时隔11年后即将发布新的大型补丁,名为2。4的补丁涉及角色平衡性的重要调整,目的为加强玩法的多样性。本次补丁仅适用于重制版,也就是暗黑破坏神2狱三国杀斗地主改革,三个神仙打架已成过去,没强将只能被迫氪金这段时间玩了几把移动版三国杀的斗地主,突然发现匹配机制改了。前段时间斗地主模式一般是大规模的谦让会,三个大将军为了一百豆大打出手,最后被迫地主的情况屡见不鲜。这几天突然匹配到不少十末日血战安提俄珀秩序阵营(技能加测评)英雄基本信息英雄名称安提俄珀英文名称Antiope英雄阵营秩序英雄类型防御初始星级5最高等级33016星英雄综合推荐深渊魔窟推荐0遗迹魔窟推荐0升十六星推荐0远征之路推荐0游戏打怪拳皇15新预告片正式公布八大角色技能特写展示近日,SNK发布了拳皇15的全新预告片,展示了第二次公开测试中八名可玩角色的Climax击杀特殊动作,第二次beta测试将于12月1719日在PS4和PS5平台开启。拳皇15将于217号钻石消耗活动开启,至少准备5万钻,消耗获取积分换永久史诗王者荣耀这款游戏相信大家都比较熟悉,钻石消耗活动已经很长时间没有开启了,对于游戏里面一些玩家来说,都觉得钻石消耗活动不可能会开启,但是没有想到,官方重新制作了钻石消耗活动的奖励,这原魔新角色狗含剑,强度令玩家满意,上线时间未定前言原魔近期推出了一位新角色黄金王兽,虽然技能看起来相当华丽,但这个角色的强度着实不敢让人恭维,很多玩家因为一时冲动,将其抽到手后都陷入了无尽的懊悔之中。好在原魔策划后续又推出了一云顶之弈云顶S1的回忆杀,曾经引领时代的阵容,你还记得吗云顶之弈s1赛季是一个最为和平的赛季,在当时除了某一些版本中可能会有个别阵容是特别的突出之外,在其他情况下,基本上是所有阵容都可以和平共存的的,与后面所出来的其他版本相比,这个版本
友情链接:快好知快生活快百科快传网中准网文好找聚热点快软件