api-gateway实践(02)新服务网关 - 运行环境

时间:2022-11-28 20:03:36

 

一、服务网关的运行环境

1、服务配置中心

1.1、服务配置中心前台

前台 http://10.110.17.20/#/login:无源码,德奎部署在10.110.17.20的DockerStatck环境。

访问 http://10.110.17.20/#/login   admin/123456a? 

目前在dockerstack的前台中,随dockerstack一起启动!

api-gateway实践(02)新服务网关 - 运行环境

1.2、服务配置中心后台

api-gateway-controller: springboot应用,配置中心前台用来保存服务定义到mysql数据库和发布服务定义到redis缓存。

  1. 保存和提取配置中心的数据,
  2. 使用mysql存储配置数据
  3. 使用redis缓存配置数据,供网关引擎使用。
运行Spring Boot应用ApiGatewayControllerApplication

api-gateway实践(02)新服务网关 - 运行环境

2、服务网关引擎

服务网关引擎 api-gateway-engine:zuul工程,从redis读取服务定义,处理业务请求。

开源的zuul工程api-gateway-engine,采用gradle管理项目依赖,

  • 读取redis中缓存的配置中心数据(api定义),不直接和配置中心打交道,而是通过redis解耦合。
  • 拦截服务请求,进行权限检查
  • 拦截服务请求,进行请求转发

gradle build

gradle jettyRun

使用 redis:10.110.17.20 : 6379

 api-gateway实践(02)新服务网关 - 运行环境

 

api-gateway实践(02)新服务网关 - 运行环境

3、服务提供者应用

服务提供者:提供服务实现业务,任何一个提供http服务的web应用,都可以作为一个服务提供者应用,将其url注册到配置中心。

4、服务调用者应用

服务消费者:使用网关提供的服务,遵循网关服务调用的申请流程,

4.1、申请身份+授权

4.2、携带身份+授权,获取accessToken

4.3、携带access_token,访问服务网关业务

二、服务网关运行环境的启停

准备工作:

    先要关掉centos7的防火墙!!!!

    systemctl status firewalld

    systemctl stop firewalld

1、启动配置中心

1.1、启动配置中心的 mysql 数据库

     启动:systemctl start mariadb

     查看:systemctl status mariadb

     开机启动:systemctl enable mariadb (已设置)

1.2、启动配置中心的 redis 缓存

     启动:systemctl start redis

     查看:system status redis

     开机启动:systemctl enable redis(已设置)

1.3、启动配置中心的服务层(api-gateway-controller)

      这是个springBoot应用,api-gateway-controller.jar包在root下

      启动:

          cd /root

          nohup java -jar api-gateway-controller.jar &

1.4、启动配置中心的界面层 - dockerstatck(德奎)

2、启动网关引擎(api-gateway-engine.war)

      这是个jetty应用,发布在docker中。

      启动:systemctl start dockerstack

      查看:systemctl status dockerstack

      开机启动: systemctl enable dockerstack

3、启动服务提供者

     cd /opt/tomcat8.5.15/bin

     ./startup.sh 

     生成mobile的access_token, http://10.110.17.20:7070/spring-oauth-server/m/user_info?access_token=x验证服务提供者可用!!!!!!

4、启动服务消费者

    此处使用postman/浏览器代替