微服务中的网关

摘要:
直接请求http协议api有很多问题。我们今天要介绍的网关是Kongkong在Docker中的部署。创建一个Kongkong网络。创建数据库。pgsql dockerrun-d-namekong-database--network=kong-net-p5432:
什么是网关

  简单点说网关是一个Api服务器,是系统的唯一入口。为每个客户端提供一个定制的Restful API。同时它还需要具有一些业务之外的责任:鉴权。静态响应等处理。

为什么需要gateway

  我们知道我们要进入一个服务本身,并不是一件容易的事情。服务本身有自己的通讯协议,这种协议往往不能很好的兼容各个客户端的需求,所以我们只能寻找一种公共协议:http。所以网关的概念就诞生了。如图:

  微服务中的网关第1张

gateway的作用

  所以网关的最主要在作用就是路由的转发 。但是 在我们平时的使用过程中,直接请求http 协议的 api 会存在很多问题。例如:安全问题,流量问题  等等。所以gateway 还需要做一些额外的 事情来保证我们的流程是安全的、可靠的。

使用网关

  现在已经出现了很多网关的产品:比如 Ocelot ,zuul ,Spring Cloud Gateway,kong 等等

  今天我们要 介绍的网关就是  kong

kong 在docker中的部署

创建一个kong的网络

  docker network create kong-net

创建数据库 pgsql  

docker run -d --name kong-database --network=kong-net  -p 5432:5432  -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong"  -e "POSTGRES_PASSWORD=qwe123QWE"  postgres:9.6

 数据迁移  

docker run --rm 
      --network=kong-net 
      -e "KONG_DATABASE=postgres" 
      -e "KONG_PG_HOST=kong-database" 
      -e "KONG_PG_PASSWORD=qwe123QWE" 
      -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" 
      kong:latest kong migrations bootstrap

启动kong  

docker run -d --name kong 
   --network=kong-net
  -e "KONG_DATABASE=postgres"
  -e "KONG_PG_HOST=kong-database"
  -e "KONG_PG_PASSWORD=qwe123QWE"
  -e "KONG_CASSANDRA_CONTACT_POINTS=kong-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_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl"
  -p 8000:8000
  -p 8443:8443
  -p 8001:8001
  -p 8444:8444
  kong

浏览器输入:http:kongip:8001,会出现json字符,表示成功

安装konga

数据迁移

docker run --network=kong-net --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:qwe123QWE@kong-database:5432/konga

启动konga

docker run 
-p 1337:1337
--network kong-net
--name konga
-e "NODE_ENV=production"
-e "DB_ADAPTER=postgres"
-e "DB_URI=postgresql://kong:qwe123QWE@kong-database:5432/konga"
pantsel/konga

创建链接的Admin URL地址可以使用kong创建的网络。例如:http://kong:8001

 如图:

微服务中的网关第2张

 然后可以自行编辑自己的 serevices 与service对应的route  访问:http:kongip:8000/路由  就可以访问你的  api啦

最后安利一波

ketchup 是一个微服务框架  它集成了网关kong,通过简单的配置,可以自行注册到kong的网关中,大大减少了开发的时间。

源码地址:https://github.com/simple-gr/ketchup

操作文档  请见:https://github.com/simple-gr/ketchup/wiki/%E7%BD%91%E5%85%B3

qq 交流群:592407137

免责声明:文章转载自《微服务中的网关》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android 实现书籍翻页效果完结篇更便捷的css处理方式-postcss下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SpringBoot整合SpringSecurity,SESSION 并发管理,同账号只允许登录一次

重写了UsernamePasswordAuthenticationFilter,里面继承AbstractAuthenticationProcessingFilter,这个类里面的session认证策略,是一个空方法,貌似RememberMe也是. public abstract class AbstractAuthenticationProcessingF...

nginx的四层转发功能

架构图 配置过程 配置web服务器 # 1、配置web01,更改配置文件 [root@web01 /etc/nginx/conf.d]# vi test1.conf server { listen 8007; server_name test.gong.com; root /website/test;...

实践Kong for Kubernetes(K8S),kong最新2.1版本和kong-ingress-controller:0.9.1版本

先决条件 Kubernetes集群:您可以使用Minikube或GKE集群。Kong与Kubernetes的所有发行版兼容。 kubectl访问权限:您应该已经kubectl安装并配置为与Kubernetes集群通信。 为Kubernetes安装Kong 使用以下安装方法之一安装Kong for Kubernetes: YAML清单 helm K...

Kong 入门简介

一、Kong安装 1.创建网络 sudo docker network create kong-net 2.创建数据库(采用postgres) sudo docker run -d --name kong-database --network=kong-net -p 5432:5432 -e "POSTGRES_USER=kong" -e "PO...

uswgi

1、安装uwsgi注意: 1)在系统环境安装,非虚拟环境 2)使用对应python版本安装 3)要先安装python开发包 ###sudo apt-get install python3.6-dev pip3 install uwsgi 2、测试 uwsgi 是否正常:新建 test.py 文件,内容如下:def application(env, star...

抓包工具Charles(青花瓷)使用教程

https://blog.csdn.net/windy135/article/details/79086270 https://blog.csdn.net/weixiaofuchen/article/details/80441421 一、什么是Charles?     Charles,因产品Icon为青花瓷造型,俗称青花瓷。主要是用来抓取网络流量包,可以分...