找一家秦皇岛市做网站的公司,企业网站一般内容包括哪些,填手机号码的广告,wordpress蜜蜂Kong是Mashape开源的高性能高可用API网关和API服务管理层。它基于OpenResty#xff0c;进行API管理#xff0c;并提供了插件实现API的AOP。Kong在Mashape 管理了超过15,000 个API#xff0c;为200,000开发者提供了每月数十亿的请求支持。本文将从架构、API管理、插件三个层面… Kong是Mashape开源的高性能高可用API网关和API服务管理层。它基于OpenResty进行API管理并提供了插件实现API的AOP。Kong在Mashape 管理了超过15,000 个API为200,000开发者提供了每月数十亿的请求支持。本文将从架构、API管理、插件三个层面介绍Kong。架构按照康威定律我们系统架构会拆的很散系统由一堆服务组成如下图所示库存服务、优惠券服务、价格服务时之前都会做一些特殊处理如限流、黑白名单日志、请求统计。而这些处理几乎是所有服务都需要的这不就是我们常说的AOP嘛当我们服务多起来的时候应该将这些通用处理集中到一个地方进行管理如下图所示和下图有点相似1.为什么要用Kong作为NetCore下的API网关开源云原生(Cloud-Native)ServiceMesh,快速弹性RESTful还有分布式微服务的抽象层2.基于NGINX构建的网关拥有更高的性能,并且在2015开源3.活跃的社区在github上有111个Contributors,修复bug迅速基本每3个月一个版本4.支持插件化目前支持的插件有32个包含授权安全限流Serverless分析和监控转换日志。5.支持企业版本和社区版本架构预览基于OpenResty(Nginx Lua Scripting)上图很清晰的看见Kong的架构图以Nginx作为基础, OpenResty构建RESTful支持集群和数据库存储数据插件化还有支持用RESTful来管理端。集群架构预览这里讲下Kong的集群原理吧Kong在0.11.0版本之前用的是serf来做集群的那么为什么不用serf做集群呢开发者给出的理由如下:1.依赖serfserf并不属于Nginx/OpenResty2.这种依赖相互间通信来同步的机制对于deployment和容器化都有些不便3.在运行的Kong节点触发serf需要一些阻塞的I/O0.11.0版本的实现思路是以数据库为中心增加一个cluster events的表任何Kong node都可以向数据库发送变更消息其他节点轮训数据库改动然后更新缓存内容如果有节点重启连上数据库节点就可以工作了。Kong的安装Kong的安装方式支持很多主流的平台目前不支持Windows支持的安装方式如下Kong的安装为了方便我这里就使用docker安装了1.创建专属kong的网络docker的最佳实践--link 过时了啊docker network create kong-net2.选择你使用的数据库默认使用的是PostgreSQL如果你使用的是Cassandra数据库提示下:Cassandra 3.0docker run -d --name kong-database \ --networkkong-net \ -p 9042:9042 \ cassandra:3如果你使用的是PostgreSQLdocker run -d --name kong-database \ --networkkong-net \ -p 5432:5432 \ -e POSTGRES_USERkong \ -e POSTGRES_DBkong \ postgres:9.63.数据库迁移初始化库表结构 docker run --rm \--networkkong-net \ -e KONG_DATABASEpostgres \ -e KONG_PG_HOSTkong-database \ -e KONG_CASSANDRA_CONTACT_POINTSkong-database \kong:latest kong migrations up4.启动kongdocker run -d --name kong \--networkkong-net \ -e KONG_DATABASEpostgres \ -e KONG_PG_HOSTkong-database \ -e KONG_CASSANDRA_CONTACT_POINTSkong-database \ -e KONG_PROXY_ACCESS_LOG/dev/stdout \ -e KONG_ADMIN_ACCESS_LOG/dev/stdout \ -e KONG_PROXY_ERROR_LOG/dev/stderr \ -e KONG_ADMIN_ERROR_LOG/dev/stderr \ -e KONG_ADMIN_LISTEN0.0.0.0:8001, 0.0.0.0:8444 ssl \-p 8000:8000 \-p 8443:8443 \-p 8001:8001 \-p 8444:8444 \kong:latest5.看网关有没有启动在本机 curl -i http://localhost:8001/或者用浏览器访问8001端口。如果出来一大堆json表示成功。以AspNetCore为例子访问mkdir AspNetCorecd AspNetCoredotnet new webapidotnet run我们以netcore做的api为例子访问localhost:5000/api/values前面网关搭建起来了并且支持RESTful现在有开源的dashboard我们就用KongDashboard来演示如何构造搭建和访问。# 全局安装kong-dashboard
npm install -g kong-dashboard# 启动 kong-dashboard
kong-dashboard start --kong-url http://localhost:8001# 启动kong-dashboard并且自定义端口
kong-dashboard start \ --kong-url http://kong:8001 \--port [port]# 启动kong-dashboard并且启动基础认证
kong-dashboard start \ --kong-url http://kong:8001 \--basic-auth user1password1 user2password2# 看kong-dashboard 启动参数
kong-dashboard start --help启动成功后用浏览器打开localhost:8080如下图所示那么我们增加一个NetCoreAPI在DashBoard如图所示因为是GET请求那我我们用浏览器访问浏览器 - 网关 - NetCore程序。打开浏览器直接访问http://localhost:8000/api/values,返回[value1,value2]则代表正常。如下图所示最后AspNetCore微服务下的网关-Kong系列后面会继续更新会讲解到Kong的插件的使用插件的开发使用的一些坑网关性能分析和日志可视化源码解析等欢迎大家关注我的github: https://github.com/WithLin。相关文章微服务网关OcelotOcelot API网关的实现剖析Ocelot——初识基于.Net Core的API网关Ocelot网关Ocelot统一权限验证Ocelot监控给Ocelot做一个Docker 镜像Ocelot Consul实践.NET Core开源API网关 – Ocelot中文文档.NET微服务体系结构中为什么使用Ocelot实现API网关.NET Core微服务之基于Ocelot实现API网关服务.NET Core微服务之基于Ocelot实现API网关服务续Ocelot.JwtAuthorize一个基于网关的Jwt验证包API网关模式.NET Core微服务之基于OcelotIdentityServer实现统一验证与授权原文地址https://www.cnblogs.com/WithLin/p/9343406.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com