kong网关教程_网关怎么登陆

kong网关教程_网关怎么登陆网关是微服务中不可或缺的一部分,它承载了所有请求流量入口,参数验证拦截,用户权限验证,但是除了JAVA的springcloud之外,公共网关屈指可数,其中最受关注的就是KONG了,笔者半年前就已经在使用kong的那时候使用的是0.11.2-bate版本(之前还被官方坑了一次),前不久终于等到了1.X的正式版发布了,笔者就在这里给大家分享一下kong网关的基本情况以及使用安装的方式。附上:喵…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

kong网关教程_网关怎么登陆

网关是微服务中不可或缺的一部分,它承载了所有请求流量入口,参数验证拦截,用户权限验证,但是除了JAVA的spring cloud之外,公共网关屈指可数,其中最受关注的就是KONG了,笔者半年前就已经在使用kong的那时候使用的是0.11.2-bate版本(之前还被官方坑了一次),前不久终于等到了1.X的正式版发布了,笔者就在这里给大家分享一下kong网关的基本情况以及使用安装的方式。

附上:

喵了个咪的博客:w-blog.cn

kong官网:https://konghq.com/

PS:本文使用的是Kong1.0.3版本

一,kong是什么

kong网关教程_网关怎么登陆

kong在girhub有不小的人气,star都有2W多次了相比也知道大家对于kong的热爱(确实也不使用JAVA栈没有什么好的选择),从下面这张官方配图可以看出,kong把本身每个服务都需要重复编写的操作汇总到了一起,让业务关注业务实现不用在为很多的规则进行重复的处理。

kong网关教程_网关怎么登陆

从笔者总结数来kong的主要优势:

  • 插件市场丰富,很多插件可以降低开发成本;
  • 可扩展性,可以编写lua脚本来定制自己的参数验证权限验证等操作;
  • 基于openResty,openResty基于Nginx保障了强劲的性能;
  • 便捷性能扩容,只需要水平增加服务器资源性能就能提升 ;
  • 负载均衡健康检查

二,Docket部署kong

PS:postgreSql数据库版本必须 > 9.4

因为不是通过docker-composer启动的容器需要互相访问需要在同一个网络名下才可以互相访问

docker network create kong-net

数据库使用 postgres

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

准备数据库数据和配置,只需要运行一遍运行完成后会自动结束

docker run --rm \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
     kong:1.0.3 kong migrations bootstrap

kong网关教程_网关怎么登陆

启动kong-service

docker run -d --name kong \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -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:1.0.3
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                NAMES
d82c2b7729ae        kong:1.0.3          "/docker-entrypoin..."   3 seconds ago       Up 2 seconds        0.0.0.0:8000-8001->8000-8001/tcp, 0.0.0.0:8443-8444->8443-8444/tcp   kong
9b7f5a9c808f        postgres:9.6        "docker-entrypoint..."   26 seconds ago      Up 25 seconds       0.0.0.0:5432->5432/tcp                                               kong-database

然后调用了一下地址有输出即可:

curl -i http://localhost:8001/

使用docker-compose部署kong

version: '2.1'
services:
  kong-migrations:
    image: "kong:1.0.3"
    command: kong migrations bootstrap
    depends_on:
      db:
        condition: service_healthy
    environment:
      KONG_DATABASE: postgres
      KONG_PG_DATABASE: kong
      KONG_PG_HOST: db
      KONG_PG_PASSWORD: kong
      KONG_PG_USER: kong
    links:
      - db:db
  kong:
    image: "kong:1.0.3"
    depends_on:
      db:
        condition: service_healthy
    environment:
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ERROR_LOG: /dev/stderr
      KONG_ADMIN_LISTEN: '0.0.0.0:8001'
      KONG_CASSANDRA_CONTACT_POINTS: db
      KONG_DATABASE: postgres
      KONG_PG_DATABASE: kong
      KONG_PG_HOST: db
      KONG_PG_PASSWORD: kong
      KONG_PG_USER: kong
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
    links:
      - db:db
    ports:
      - "8000:8000/tcp"
      - "8001:8001/tcp"
      - "8443:8443/tcp"
      - "8444:8444/tcp"
    restart: on-failure
  db:
    image: postgres:9.6
    environment:
      POSTGRES_DB: kong
      POSTGRES_PASSWORD: kong
      POSTGRES_USER: kong
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "kong"]
      interval: 30s
      timeout: 30s
      retries: 3
    restart: on-failure
    stdin_open: true
    tty: true

db的 healthcheck 做了数据层初始化完成检测,数据库完成之后才会按照顺序继续启动接下来的容器

docker-compose up -d

三,使用外部数据库

很多使用我们并不在容器中运行DB实例,因为如果出现任何问题数据丢失,我们先准备好对应的postgres数据库

{DB-host}:{DB-port}
{DB-user}
{DB-pass}

创建数据库

CREATE DATABASE "kong" WITH ENCODING='UTF8';

初始化kong需要的数据库

version: '2.1'
services:
  kong-migrations:
    image: "kong:1.0.3"
    command: kong migrations bootstrap
    environment:
      KONG_DATABASE: postgres
      KONG_PG_DATABASE: kong
      KONG_PG_HOST: {DB-host}
      KONG_PG_PORT: {DB-port}
      KONG_PG_PASSWORD: {DB-pass}
      KONG_PG_USER: {DB-user}
> docker-compose up -d
Creating network "kong_default" with the default driver
Creating kong_kong-migrations_1 ...
Creating kong_kong-migrations_1 ... done

在通过docker-compose来运行kong服务

version: '2.1'
services:
  kong:
    image: "kong:1.0.3"
    environment:
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ERROR_LOG: /dev/stderr
      KONG_ADMIN_LISTEN: '0.0.0.0:8001'
      KONG_CASSANDRA_CONTACT_POINTS: db
      KONG_DATABASE: postgres
      KONG_PG_DATABASE: kong
      KONG_PG_HOST: {DB-host}
      KONG_PG_PORT: {DB-port}
      KONG_PG_PASSWORD: {DB-pass}
      KONG_PG_USER: {DB-user}
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
    ports:
      - "8000:8000/tcp"
      - "8001:8001/tcp"
      - "8443:8443/tcp"
      - "8444:8444/tcp"
    restart: on-failure
docker-compose up -d
Creating kong_kong_1 ...
Creating kong_kong_1 ... done

kubernetes编排

apiVersion: extensions/v1beta1                  # K8S对应的API版本
kind: Deployment                                # 对应的类型
metadata:
  name: kong
  labels:
    name: kong
  namespace: kong                                # namespace
spec:
  replicas: 1                                   # 镜像副本数量
  template:
    metadata:
      labels:                                   # 容器的标签 可和service关联
        app: kong
    spec:
      containers:
        - name: kong                        # 容器名和镜像
          image: kong:1.0.3
          imagePullPolicy: Always
          ports:
          - containerPort: 8000
          env:                                  # 环境变量
          - name: KONG_DATABASE
            value: postgres
          - name: KONG_PG_DATABASE
            value: dev-kong
          - name: KONG_PG_HOST
            value: {DB-host}
          - name: KONG_PG_PORT
            value: {DB-port}
          - name: KONG_PG_PASSWORD
            value: {DB-pass}
          - name: KONG_PG_USER
            value: {DB-user}
          - name: KONG_LOG_LEVEL
            value: warn
          resources:                            # 资源限制
            requests:
              memory: "256Mi"
              cpu: "200m"
            limits:
              memory: "512Mi"
              cpu: "400m"
---
apiVersion: v1
kind: Service
metadata:
  namespace: kong                                  # 在哪个命名空间中创建
  name: kong                          # 名称
  labels:
    name: kong
spec:
  type: NodePort                                  # 开放端口的类型
  selector:                                       # service负载的容器需要有同样的labels
    app: kong
  ports:
  - name: http
    port: 8000                                    # 通过service来访问的端口
    targetPort: 8000                              # 对应容器的端口
    nodePort: 30180
  - name: https
    port: 8443                                    # 通过service来访问的端口
    targetPort: 8443                              # 对应容器的端口
    nodePort: 30143
  - name: api
    port: 8001                                    # 通过service来访问的端口
    targetPort: 8001                              # 对应容器的端口
    nodePort: 30801
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195286.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MBus总线的基础学习

    MBus总线的基础学习MBus总线是一种主从式半双工传输总线,采用主叫/应答的方式通信,即只有处于中心地位的主站(Master)发出询问后,从站(Slave)才能向主站传输数据。MBus的主要特点如下:1、两线制总线,不分正负极性,施工简单;2、采用独特的电平特征传输数字信号,抗干扰能力强,传输距离长;3、可以选着总线供电,降低维护成本;4、总线型拓扑结构,扩展方便,组网成本低;5、任一

    2022年10月16日
    4
  • 理解BN层「建议收藏」

    理解BN层「建议收藏」https://www.cnblogs.com/king-lps/p/8378561.html转载

    2022年10月14日
    4
  • Android 蓝牙开发之搜索、配对、连接、通信大全

    Android 蓝牙开发之搜索、配对、连接、通信大全关注微信公众号(文强的技术小屋),学习更多技术知识,一起遨游知识海洋~蓝牙(Bluetooth®):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。蓝牙设备最多可以同时和7个其它蓝牙设备建立连接,进行通信,当然并不是每一个蓝牙都可以达到最大值。下面,我们从蓝牙的基本概念…

    2022年6月15日
    45
  • TI ADI DSP 与 ARM Cortex-A 的 FIR FFT 性能对比

    TI ADI DSP 与 ARM Cortex-A 的 FIR FFT 性能对比DSP作为计算密集型的芯片,一度是FIR和FFT运算的主力芯片,而TI和ADI两大DSP芯片公司推出的DSP产品也互不相让。可以预见,随着ARM的广泛使用和性能的提高,DSP作为独立的芯片,应用场景会越来越少,也许会慢慢退出历史的舞台;而数字信号处理,会以DSPIP软核或者硬核的形式,出现在各种芯片当中。摩尔定律和制造工艺的发展,推动着芯片行业飞速前进,不进则退。

    2022年10月14日
    2
  • Resnet 18网络模型[通俗易懂]

    Resnet 18网络模型[通俗易懂]1.残差网络:(Resnet)残差块:让我们聚焦于神经网络局部:如图左侧所示,假设我们的原始输入为x,而希望学出的理想映射为f(x)(作为上方激活函数的输入)。左图虚线框中的部分需要直接拟合出该映射f(x),而右图虚线框中的部分则需要拟合出残差映射f(x)−x。残差映射在现实中往往更容易优化。以本节开头提到的恒等映射作为我们希望学出的理想映射f(x),我们只需将右图虚线框内上方的加权运算(如仿射)的权重和偏置参数设成0,那么f(x)即为恒等映射。实际中,当理想映射f(x)极接近于恒等映..

    2022年5月25日
    248
  • linux 下web服务的配置和架设

    linux 下web服务的配置和架设apache 的安装 配置和启动下载 www apache com 上传到 usr local tar zxvf 文件名 configurepre usr local apachemakema linux 下的解压过后的安装包如果有 configure 这个可执行文件 都这样安装 配置 vi etc httpd conf h

    2025年8月12日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号