美文网首页
2019-06-17zuul 动态路由

2019-06-17zuul 动态路由

作者: zz云飞扬 | 来源:发表于2019-06-17 14:12 被阅读0次

    1/bootstrap.yml, 因为要从配置中心读取文件( 从配置中心读取文件,配置文件名称必须bootsrap.yml, 不能用 application.yml。有一种说法是因为 bootstrap.yml 会在程序启动时知道要先从remote 读取信息,当然必要的jar 包别忘记引入)

    hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 9000 

    #第一句设置hystrix 熔断时间

    server:

      port: 1010

    eureka:

      client:

        #eureka server的url 配置

        service-url:

          defaultZone: http://localhost:1005/eureka/

    #是否注册到eureka

        register-with-eureka: true

        fetch-registry: true

    spring:

      application:

        #应用名称,需要和git 上存的配置文件前缀一致

        name: zuul

    #以下配置是从配置中心读取文件信息的配置

      cloud:

        config:

          discovery:

            enabled: true

            #配置中心名称

            service-id: config-server

        #git 上命名规则是 服务名称-环境.yml, 服务名称就是本服务名称,name:zuul, 环境          #prd,  所以这是读取zulul-prd.yml 的配置文件

          profile: prd

    #开启所有监控中心接口

    management:

      endpoints:

        web:

          exposure:

            include: "*"

    #设置zuul调用超时时间。

    ribbon:

        ReadTimeout: 60000

        SocketTimeout: 60000

    #git 上的配置文件

    git 配置文件 configserver

    2、zuul 程序入口类

    程序入口类

    @RefreshScope 开启手动刷新方式。 手动刷新时 post 方式  访问 url: http://192.168.1.100:1010/actuator/refresh 即可。 整理中发现, 如果删除 git 配置中的 api-order 及其所有配置, 不重启,手动刷新后貌似仍能正常访问 api-order下的内容。 如果修改了api-order 的配置, 手动刷新后访问时就是用的最新配置。新增配置,手动刷新后也更新配置为最新git信息。

    3、pom 文件

    <?xml version="1.0" encoding="UTF-8"?>

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

        <modelVersion>4.0.0</modelVersion>

        <parent>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-parent</artifactId>

            <version>2.1.5.RELEASE</version>

            <relativePath/> <!-- lookup parent from repository -->

        </parent>

        <groupId>com.zbiti</groupId>

        <artifactId>zuultest</artifactId>

        <version>0.0.1-SNAPSHOT</version>

        <name>zuultest</name>

        <description>Demo project for Spring Boot</description>

        <properties>

            <java.version>1.8</java.version>

            <spring-cloud.version>Greenwich.SR1</spring-cloud.version>

        </properties>

        <dependencies>

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-web</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-starter-netflix-zuul</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-test</artifactId>

                <scope>test</scope>

            </dependency>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-starter-config</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-actuator</artifactId>

                <version>2.1.1.RELEASE</version>

            </dependency>

        </dependencies>

        <dependencyManagement>

            <dependencies>

                <dependency>

                    <groupId>org.springframework.cloud</groupId>

                    <artifactId>spring-cloud-dependencies</artifactId>

                    <version>${spring-cloud.version}</version>

                    <type>pom</type>

                    <scope>import</scope>

                </dependency>

            </dependencies>

        </dependencyManagement>

        <build>

            <plugins>

                <plugin>

                    <groupId>org.springframework.boot</groupId>

                    <artifactId>spring-boot-maven-plugin</artifactId>

                </plugin>

            </plugins>

        </build>

        <repositories>

            <repository>

                <id>spring-milestones</id>

                <name>Spring Milestones</name>

                <url>https://repo.spring.io/libs-milestone</url>

                <snapshots>

                    <enabled>false</enabled>

                </snapshots>

            </repository>

        </repositories>

    </project>

    本地配置路由的又一个实例:

    1、配置

    zuul配置文件

    简化版配置

    也就是比如 eureka里注册的微服务名称 service-order, 不用再zuul里配置,默认的访问 {zuulip:port}/service-order/** , 就会访问的微服务service-order 的ip上去。

    zuul配路由简化

    2、访问

    访问测试

    相关文章

      网友评论

          本文标题:2019-06-17zuul 动态路由

          本文链接:https://www.haomeiwen.com/subject/dqyofctx.html