在上一篇文章中,我们完成了Kong单机环境的搭建,这篇文章我们就手搓一个API然后通过Kong对外提供服务,探索API网关是如何将内部API暴露给外部用户的。
微服务系列传送门:
1、 为什么需要API网关
2、 Kong初探
3、 Kong安装配置
服务器:CentOS7.6 X86_64
API:Django框架写的API,用于在随机的delay后返回请求URL的地址和服务器主机名组成的对象(镜像地址sgccr.ccs.tencentyun.com/experiment/api-hostinfo-randomdelay:v0.0.1)
Nginx代理内部API时,是通过http->server->location->proxy_pass完成的。Kong代理API流程如下:
Kong网关的Service对象是一种配置对象,用于定义一组Pod的IP地址和端口,以及它们之间的通信规则。Service对象的主要作用是将请求负载均衡到多个Pod,提高服务的可用性和容错性。
它可以帮助我们更灵活地管理和控制服务的负载均衡、DNS解析、服务发现等功能。与Nginx相比,Kong的Service对象具有更丰富的功能和更高的灵活性。
Service对象参数列表
Kong网关的Route对象与Nginx的location指令类似,根据请求的URL和其他属性将请求映射到上游服务。Route对象可以看作是Kong网关中的虚拟主机,它可以将多个不同的域名或路径映射到同一个上游服务。
但它们之间有一些区别。首先,Kong的Route对象是动态配置的,可以通过API进行添加、修改和删除,而Nginx的location指令是静态配置的,需要手动修改配置文件。其次,Kong的Route对象可以根据请求的属性(如Header、Query参数等)进行匹配,而Nginx的location指令只能根据URL的路径进行匹配。最后,Kong的Route对象可以与其他Kong对象(如Service、Plugin等)进行关联,实现更丰富的功能,而Nginx的location指令只能与上游服务进行关联。
使用docker启动API服务
这里service name我们设置为example_service,url设置为API的url127.0.0.1:8081
备注:API使用参考上一章的Kong安装配置
这里route name我们设置为example_route,前缀设置为v1,绑定到example_service
浏览器访问验证,如下图,测试通过
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。