微服务,ApiGateway 与 Kong_Sauron1的博客-CSDN博客


本站和网页 https://blog.csdn.net/pzxwhc/article/details/49873623 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

微服务,ApiGateway 与 Kong_Sauron1的博客-CSDN博客
微服务,ApiGateway 与 Kong
Sauron1
于 2015-11-17 00:26:51 发布
48806
收藏
13
分类专栏:
架构设计
文章标签:
微服务
ApiGateway
kong
curl
request_host
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/pzxwhc/article/details/49873623
版权
架构设计
专栏收录该内容
1 篇文章
0 订阅
订阅专栏
一. 微服务
二. Api Gateway
三. Kong 的使用
一. 微服务
        对于一些传统的 大型项目,传统的方式会有一些缺陷,比如说 新人熟悉系统成本高(因为整个系统作为一个整体,彼此会有一定的牵连),项目重
启时间长,重构困难(对于一个新技术的引入,可能需要对整个项目推到重来),不易于更换新的技术,并且整个项目会慢慢变成巨无霸。
        所以说就会有微服务这种概念,一个服务实现一个不同的特性或者功能。每一个独立的微服务都是一个小型应用。一些微服务可能会暴露一些api 给
其他的一些微服务或者是客户。如下图1(把各个业务拆分):
图1
        对于微服务,目前 像Netflix ,亚马逊,ebay 等都有应用。
        当然,微服务也有一定的缺陷,比如说 每个服务(每个应用) 如果都有一个 数据库的话,那么如何维持 数据库事务。再比如说,服务之间的调用可
能会由于 网络的原因变得不可达,那么 代码中要额外增加 请求失败的代码。
二. Api Gateway
        api gateway 即 api 网关。所有的请求首先会经过这个网关。这有点类似于前端控制器模式,也有点类似于 Facade模式。如下图2所示:
图2
        由于所有的请求会先经过这个 api 网关,所以 可以在 这里做 权限控制,安全,负载均衡,请求分发,监控等等。
        那么,为什么要用 这个 api gateway 这个东西,主要原因在于 一个客户可以直接请求每一个服务。每一个服务都有一个 url。这些url 会和 负载均
衡设备相映射。为了得到产品信息,客户需要发很多的 request 请求。这样就不是很好。另外一个问题就是 可能协议不同,不一定是 http,比如说可能
由于防火墙或者什么的限制,可能需要用到其他的协议。再另外,以后重构的时候可能要拆分接口,或者合并接口,由于客户端和 API 直接打交道,所以
比较难。
        所以说,如上 图1 加入了 api gateway 就可以变为 如下图3所示:
图3
        当然,任何技术都有缺陷, api gateway 也是一样,比如说 容易成为性能瓶颈。
三. Kong 的使用
        Kong 是一个现成 的 api gateway 的解决方案,它在 nginx 上进行了开发。
        api gateway 的实现方式有很多种,比如说 JVM 上可以用基于NIO 的框架比如Netty,Vertx,Spring Reactor,JOSS Undertow。现在一个比较流程的没有基于 JVM 的就是 NodeJs。其他的还有 Nginx Plus。
        以下介绍 Kong 的使用。
3.1 安装 Kong 3.2 加入 API
3.1 安装 Kong
    参考:https://getkong.org/install/ ,里面写得比较详细了,但是要预先安装一个 Cassandra 数据库(介绍:http://cassandra.apache.org/)。安装之后,Kong 项目会监控两个端口,一个是 8000,一个是 8001。 8000端口是可以给用户访问,就是说用户发送请求先到 Kong 项目的 8000 端口,然
后Kong 项目帮你转到你的后端应用api。 8001 端口是管理端口,比如说,管理员可以通过 8001端口来得到你加入过的 api。
3.2 加入 API
        参考文档:https://getkong.org/docs/0.5.x/admin-api/ , 里面介绍了 api 的管理,包括 增删查改。下面介绍我第一次 使用时 还有有些不清楚的点:
3.2.1  列出 所加过的 api
curl localhost:8001/apis/
3.2.2 加入 api
单个加入:
curl -i -X POST --url http://localhost:8001/apis/ --data 'upstream_url=http://camp.uats.cc' --data 'request_path=login'
上面这段命令表示:
--url:http://localhost:8001/apis/ 固定的,加入 api 就得写这个,表示给 kong管理。 upstream_url:表示我们的网站。相当于一个请求前缀。 request_path:就是具体我们的 api。
   利用request_host 部署全部的 api:
curl -i -X POST --url http://localhost:8001/apis/ --data 'upstream_url=http://183.131.76.124:4100/' --data 'request_host=183.131.76.122'
3.2.3 删除 api
curl -i -X DELETE localhost:8001/apis/00f90ca9-cf2d-4830-c842-3b90f6cd08af
后面 这个串表示 加入的api的 id。
四. 参考:
1. API Gateway 模式: http://microservices.io/patterns/apigateway.html
2. Nginx: https://www.nginx.com/blog/introduction-to-microservices/
3. Kong 项目官网:https://getkong.org/
Sauron1
关注
关注
点赞
13
收藏
打赏
评论
微服务,ApiGateway 与 Kong
一. 微服务二. Api Gateway三. Kong 的使用一. 微服务        对于一些传统的 大型项目,传统的方式会有一些缺陷,比如说 新人熟悉系统成本高(因为整个系统作为一个整体,彼此会有一定的牵连),项目重启时间长,重构困难(对于一个新技术的引入,可能需要对整个项目推到重来),不易于更换新的技术,并且整个项目会慢慢变成巨无霸。
复制链接
扫一扫
专栏目录
API gateway 之 kong 基本介绍 (一)
固破的专栏
05-25
941
一、API网关概念介绍
API网关,即API Gateway,是大型分布式系统中,为了保护内部服务而设计的一道屏障,可以提供高性能、高可用的API托管服务,从而帮助服务的开发者便捷地对外提供服务,而不用考虑安全控制、流量控制、审计日志等问题,统一在网关层将安全认证,流量控制,审计日志,黑白名单等实现。网关的下一层,是内部服务,内部服务只需开发和关注具体业务相关的实现。网关可以提供API发布、管理、维护等主要功能。开发者只需要简单的配置操作即可把自己开发的服务发布出去,同时置于网关的保护之下。
...
评论 1
您还未登录,请先
登录
后发表或查看评论
Centos下KONG API网关实践
chenzhao635的专栏
05-05
52
上篇已经安装好了 kong
Centos安装KONG
一、命令操作
kong网关-添加服务和路由
services:
创建名为service.api的服务,并通过host绑定相应的后端服务upstream.api。
curl -X POST localhost:8001/services/service.api
-d "name=service.api"
...
关于gateway kong的自定义插件
m0_45662644的博客
04-13
3743
GateWay Kong
简介
​Kong Gateway 是一个轻量级、快速、灵活的云原生 API 网关。Kong Gateway 是一个运行在 Nginx 中的 Lua 应用程序。
​Kong 提供了许多**插件**供在网关部署中使用。您还可以创建自己的自定义插件。
​三个组件:
Kong Server :基于nginx的服务器,用来接收API请求。
Cassandra/PostgreSQL :用来存储操作数据**(无DB模式/DB模式,无DB模式在使用上会有所限制)**。
Ko...
kong网关
can_chen的博客
11-21
440
kong网关基于nginx,但是比nginx更加强大,nginx一般用来实现反向代理和负载均衡,但是nginx无法实现动态配置,也就是说如果我们扩展了机器或者添加路由配置,需要手动修改nginx的配置文件并重启nginx才能生效。
KONG GATEWAY 基本介绍及安装
孙文波的技术之路
03-19
1550
1 Kong基本介绍Kong 基于Nginx和lua实现的API GateWay,用于管控Restful接口:
使用修改过的Nginx作为代理服务器,即Openrestry,该服务器负责处理Api请求。
Cassandra或者postgresql用作数据存储(Datastore)服务器,存储来自kong操作的数据。数据持久化建议采用Cassandra,原因如下:1)易于构建分布式 2)易于扩......
nginx网关与gateway网关的区别
热门推荐
z_ssyy的博客
07-08
4万+
经常遇到别人问我,有了nginx做网关,为啥还要用到gateway呢
首先这两种网关的定义不一样
用户访问的总入口,也就是前端页面的容器,流量网关
gateway的定义是针对每一个业务微服务来得,属于业务网关
借鉴一个图
对于具体的后端业务应用或者是服务和业务有一定关联性的策略网关就是上图左边的架构模型——业务网关。 业务网关针对具体的业务需要提供特定的流控策略、缓存策略、鉴权认证策略等等。
与业务网关相反,定义全局性的、跟具体的后端业务应用和服务完全无关的策略网关就是上图右边所示的架构模型
【Python分布式服务框架】什么是 Kong Gateway
不太灵光的程序员
09-15
897
文章目录1. 为什么需要网关2. 什么是 Kong Gateway2.1. Kong的主要功能2.2. Kong监听的端口3. 什么是Konga4. Docker部署Kong及Konga4.1. 创建 postgres 容器4.2. 初始化 kong 数据库4.3. 创建 kong 容器4.4. 初始化 konga 数据库 (手动复制konga数据库)4.5. 创建 konga 容器4.6. API网关控制台4.7. 首次登录需要配置kong admin5. kong的主要模块5.1. Services5
热门开源网关的性能对比:Goku > Kong > Tyk
eoLinker的博客
11-05
2125
性能测试结果
我们将Goku与市场上的其他同类热门产品进行比较,使用相同的环境和条件,测试以下产品:Goku、Kong、Tyk。
注:本次压测对象均为单个网关节点,并且均未启用插件功能。
测试详情
一、硬件环境
后端服务所在服务器
CPU: Intel Xeon Platinum 8269CY CPU @ 2.50GHz * 12
Linux version 3.10.0-957.27.2...
Kong环境搭建及简单使用(对ApiGateWay之Kong的使用)
xiaoliu598906167的博客
01-04
1万+
一、什么是Kong?
Kong是由Mashape公司开源的可扩展的Api GateWay项目。它运行在调用Api之前,以插件的扩展方式为Api提供了管理。比如,鉴权、限流、监控、健康检查等,Kong是基于lua语言、nginx以及openResty开发的,所有拥有动态路由、负载均衡、高可用、高性能、熔断(基于健康检查)等。Kong提供了许多开箱即用的插件,用户也可以自定义规则使用lua开发插件...
Kong Gateway 初体验
weixin_39280774的博客
08-05
690
安装Kong-2.1 postgresql-12
kong buntu安装官网:
https://docs.konghq.com/install/ubuntu/?_ga=2.260577869.1112426161.1596594333-1659736401.1596437274
postgresql buntu安装官网:
https://www.postgresql.org/download/linux/ubuntu/
docker 安装 :
https://docs.konghq.com/inst
[云框架]KONG API Gateway v1.5 -框架说明、快速部署、插件开发
愿我如星君如月 ... 夜夜流光相皎洁 ...
05-12
6352
当前版本采用KONGv0.12.3当我们决定对应用进行微服务改造时,应用客户端如何与微服务交互的问题也随之而来,毕竟服务数量的增加会直接导致部署授权、负载均衡、通信管理、分析和改变的难度增加。面对以上问题,API GATEWAY是一个不错的解决方案,其所提供的访问限制、安全、流量控制、分析监控、日志、请求转发、合成和协议转换功能,可以解放开发者去把精力集中在具体逻辑的代码,而不是把时间花费在考虑如...
API网关之Kong网关简介
夜影风个人空间
07-31
3万+
1. Kong简介
Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各...
Kong API Gateway 管理API详解
monkey的专栏
05-15
1万+
Kong API Gateway 管理API详解
2018-09-25/Linuxops
版权说明:本文为博主原创,如果转载请注明来源。作为学习笔记,不能保证所有知识点是完全正确以及表达无误,用于生产环境配置时请斟酌。如有错误或建议请联系。侵删联系:linuxops@qq.com。感谢各位!
一、前言
安装好了Kong,那么如何使用和管理它呢?Kong附带了一个管理的API接口,...
API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd
04-08
3369
http://www.infoq.com/cn/articles/comparing-api-gateway-performances
前几天拜读了 OpsGenie 公司(一家致力于 Dev & Ops 的公司)的资深工程师 Turgay Çelik 博士写的一篇文章(链接在文末),文中介绍了他们最初也是采用 Nginx 作为单体应用的网关,后来接触到微服务架构后开始逐渐采用...
在滴滴云上搭建 API-Gateway Kong 实践
java060515的专栏
01-09
785
1. 什么是 API-Gateway ?什么是 Kong ?
API-Gateway 是微服务架构体系中一个比较重要的组件,它通常构成所有微服务的入口,它的职责比较多,其较为通用的一些功能是:
路由:路由是 API-Gateway 最重要的功能,基于路由 API-Gateway 通常能根据请求的特征,将流量导向不同的服务,或是不同服务的不同版本;或是同一服务的不同单元。
协议转换:在 API-G...
API Gateway——KONG简单入门
愿我如星君如月 ... 夜夜流光相皎洁 ...
04-26
3051
一、简介Kong,是由Mashape公司开源的,基于Nginx的API gateway。二、特点可扩展:支持分布式模块化 功能:授权、日志、ip限制、限流、api 统计分析(存在商业插件Galileo等、也可自己研发)、请求转化、跨域(CORS)、其他功能通过lua编写插件实现。...三、调用流程Once Kong is running, every request being made to t...
kong API gateway(一):安装
偶爱喝可乐
10-20
2378
# 下载&安装
# git https://github.com/Kong/kong
---
wget https://bintray.com/kong/kong-community-edition-deb/download_file?file_path=dists/kong-community-edition-0.11.0.xenial.all.deb
sudo apt-g
Spring Cloud之acos服务注册与Dubbo
play_big_knife的博客
12-20
313
nacos+dobbo是spring cloud的重要组件之一,也是alibaba服务发现的重要技术。通过nacos进行服务发现需要启动服务器来完成,程序代码可以在nacos中注册和发现服务。
微服务框架 SpringCloud微服务架构 微服务面试篇 54 微服务篇 54.3 Nacos 如何支撑数十万服务注册压力?
谢谢你们的关注
12-20
138
微服务框架 SpringCloud微服务架构 微服务面试篇 54 微服务篇 54.3 Nacos 如何支撑数十万服务注册压力?
Go:微服务框架介绍
最新发布
GIS摆渡人
12-21
356
golang 常见微服务框架有 按starts数排列。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
Sauron1
CSDN认证博客专家
CSDN认证企业博客
码龄9年
暂无认证
97
原创
14万+
周排名
161万+
总排名
32万+
访问
等级
3859
积分
102
粉丝
59
获赞
32
评论
144
收藏
私信
关注
热门文章
微服务,ApiGateway 与 Kong
48806
Java JVM(十二):指令重排序
23934
Java JVM(七):Function,Consumer,Predicate 接口
18015
Java JVM(十一):MAT 工具的使用
11797
Java JVM(九):JDK8的集合流式操作
10120
分类专栏
-------------Java-------------
Java_JVM
13篇
Java_多线程
10篇
Java_集合
5篇
Java_IO
2篇
Java_小知识点
11篇
-------------基础--------------
数据结构
4篇
算法
9篇
设计模式
5篇
数据库
2篇
Linux
2篇
网络
2篇
-------------框架-------------
架构设计
1篇
运维
3篇
Oauth
1篇
Servlet 与 JDBC
2篇
spring
6篇
springmvc
7篇
Tomcat
1篇
JPA
2篇
Shiro
5篇
Struts2
3篇
JavaEE相关
3篇
缓存
-------------工作---------------
单点登录
7篇
Angularjs
5篇
代码,DB版本管理工具
3篇
-------------其他---------------
Git
2篇
其他文章
2篇
工具教程
1篇
个人感悟
7篇
最新评论
Java JVM(十二):指令重排序
weiailing3344:
”JMM仅仅要求前一个操作(执行的结果)对后一个操作可见,且前一个操作按顺序排在第二个操作之前“,后面且前一个操作按顺序排在第二个操作之前这句话啥意思啊,咋感觉 是句废话呀
Java JVM(十二):指令重排序
skyshowshow:
可见性了就不会重排序了
Java JVM(十二):指令重排序
yyy_coder:
《Java并发编程的艺术》
Java JVM(十二):指令重排序
weixin_43979923:
Public void reader()的P大写了
Java JVM(十二):指令重排序
jongyping:
代码中的问题也有可能是数据可见性问题带来的,并不能说明是一定是重排序带来的
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
equals,hashCode 方法 的重新理解
Docker 管理工具
Jenkins 简介
2015年85篇
2014年44篇
目录
目录
分类专栏
-------------Java-------------
Java_JVM
13篇
Java_多线程
10篇
Java_集合
5篇
Java_IO
2篇
Java_小知识点
11篇
-------------基础--------------
数据结构
4篇
算法
9篇
设计模式
5篇
数据库
2篇
Linux
2篇
网络
2篇
-------------框架-------------
架构设计
1篇
运维
3篇
Oauth
1篇
Servlet 与 JDBC
2篇
spring
6篇
springmvc
7篇
Tomcat
1篇
JPA
2篇
Shiro
5篇
Struts2
3篇
JavaEE相关
3篇
缓存
-------------工作---------------
单点登录
7篇
Angularjs
5篇
代码,DB版本管理工具
3篇
-------------其他---------------
Git
2篇
其他文章
2篇
工具教程
1篇
个人感悟
7篇
目录
评论 1
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
Sauron1
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值