• 《springcloud 二》微服务动态网关,网关集群


    动态网关    实际上是网关和分布式配置中心的整合,通过post手动刷新,生效

    动态网关

    传统方式将路由规则配置在配置文件中,如果路由规则发生了改变,需要重启服务器。结合整合SpringCloud Config分布式配置中心,实现动态路由规则。

    在git上创建一个文件service-zuul-dev.yml

    ### 配置网关反向代理    
    zuul:
      routes:
        api-a:
         ### 以 /api-member/访问转发到会员服务
          path: /api-member/**
          serviceId: app-itmayiedu-member
        api-b:
            ### 以 /api-order/访问转发到订单服务
          path: /api-order/**
          serviceId: app-itmayiedu-order

    Maven依赖信息

    新增监控中心依赖信息

    <!-- actuator监控中心 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <!-- springcloud config 2.0 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-client</artifactId>
            </dependency>

    application.yml

    ###服务注册地址
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8100/eureka/
    ###api网关端口号      
    server:
      port: 80
    ###网关名称  
    spring:
      application:
        name: service-zuul
      cloud:
        config:
        ####读取后缀
          profile: dev
          ####读取config-server注册地址
          discovery:
            service-id: config-server
            enabled: true    
    
    ###默认服务读取eureka注册服务列表 默认间隔30秒
    
    ###开启所有监控中心接口
    management:
      endpoints:
        web:
          exposure:
            include: "*"

    项目启动

    // zuul配置能够使用config实现实时更新
        @RefreshScope
        @ConfigurationProperties("zuul")
        public ZuulProperties zuulProperties() {
            return new ZuulProperties();
        }

    手动刷新接口

    http://127.0.0.1/actuator/refresh 

    网关集群

    Zuul网关集群使用Nginx反向代理即可,保证每台网关配置数据相同。

     upstream  backServer{
            server 127.0.0.1:81;
            server 127.0.0.1:82;
        }
        server {
            listen       80;
            server_name  wg.itmayiedu.com;
           location / {
                ### 指定上游服务器负载均衡服务器
                proxy_pass http://backServer/;
                index  index.html index.htm;
            }
        }
  • 相关阅读:
    Java的代理proxy机制
    Java 编译器 javac 笔记:javac API、注解处理 API 与 Lombok 原理
    Java 运行时获取方法参数名
    python 之 list 和 dict 置空
    Python 模块(Module)调用
    Python 模块(Module)及包
    Mybatis中进行批量更新(updateBatch)
    可持久化线段树+主席树+动态主席树
    无向图的割点与割边
    [NOIP2016] 愤怒的小鸟 题解
  • 原文地址:https://www.cnblogs.com/a1304908180/p/10677204.html
Copyright © 2020-2023  润新知