zoukankan      html  css  js  c++  java
  • 微服务中的网关

    什么是网关

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

    为什么需要gateway

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

      

    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

     如图:

     然后可以自行编辑自己的 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

  • 相关阅读:
    numpy模块之axis(转)
    使用lxml解析HTML代码
    关于Python中的可变对象与不可变对象的区别(转)
    python线程(转)
    SSTI模板注入
    逆向与反汇编实战(一)--PEiD分析复现
    二进制各种漏洞原理实战分析总结
    认识二进制安全与漏洞攻防技术 (Windows平台)
    CSRF 漏洞
    逻辑漏洞之越权漏洞的三种越权思路|burpsuite逻辑漏洞测试一
  • 原文地址:https://www.cnblogs.com/alangur/p/13071324.html
Copyright © 2011-2022 走看看