美文网首页java
zuul和consul配置http路由转发

zuul和consul配置http路由转发

作者: sspa | 来源:发表于2019-08-22 13:26 被阅读0次

0. 服务注册的坑

用zuul和consul进行服务发现时,相同服务的端口不能相同,否则consul中的instance-id会相同,即使是不同ip也不能相同。

1. consul 安装

2. 配置zuul的application.yml

zuul的application.yml如下

server:
  port: 8762  
spring:
  cloud:
    consul:
      discovery:
        instance-id: ${spring.application.name}:${server.port}
        prefer-ip-address: true
        health-check-interval: 10s
        hostname: ${spring.application.name}
        service-name: ${spring.application.name}
        enabled: true
        register: true
      host: 127.0.0.1 #consul-ip
      port: 8500 #consul-port
      enabled: true
  http:
    multipart:
      location: ${user.dir}/temp
  application:
    name: rsapm-zuul


#logging:
#  level:
#    com.netflix: debug

zuul:
#  prefix: /XXX
#  ignored-services: '*' 
  sensitiveHeaders:  
  routes:   
    XXX-brain:
      path: /brain/**
#      strip-prefix: false
    XXX-mysql-data:
      path: /mysql/**
      strip-prefix: false
  host:
    socket-timeout-millis: 60000
    connect-timeout-millis: 60000
 
hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: false
        isolation:
          thread:
            timeoutInMilliseconds: 60000

ribbon:
  ReadTimeout: 60000
  ConnectTimeout: 60000

其中,routes 为配zuul转发的路由表;command 为zuul转发http请求的超时时间等配置。

3. zuul的pom.xml (maven)

<?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>
    <groupId>com.XXX.XXX</groupId>
    <artifactId>XXX</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <!-- 引入spring boot的依赖 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.14.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.2</version>
        </dependency>


    </dependencies>

    <!-- 引入spring cloud的依赖 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- 添加spring-boot的maven插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

3. 配置被转发应用的application.yml中添加cosul配置

被转发应用的application.yml如下

server:
  port: 8101  
spring:
  cloud:
    consul:
      discovery:
        instance-id: ${spring.application.name}:${server.port}
        prefer-ip-address: true
        health-check-interval: 10s
        hostname: ${spring.application.name}
        service-name: ${spring.application.name}
        enabled: true
        register: true
      host: 127.0.0.1 #consul-ip
      port: 8500 #consul-port
      enabled: true

4. 被转发应用的pom.xml (maven)添加依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>

    <!-- 引入spring cloud的依赖 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- 添加spring-boot的maven插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

相关文章

  • zuul和consul配置http路由转发

    0. 服务注册的坑 用zuul和consul进行服务发现时,相同服务的端口不能相同,否则consul中的insta...

  • JavaEE进阶知识学习-----SpringCloud(九)Z

    Zuul路由网关 概述 Zuul包含了对请求的路由和过滤两个主要的功能,其中路由的功能是负责将外部请求转发到具体的...

  • API网关Zuul(2)--Quick Start

    编写一个简单的Zuul网关 1. 引入依赖: 启动类: 配置文件: Zuul配置详解 路由配置 运行zuul后,访...

  • 05基于Zuul的网关路由

    一 Zuul的路由配置 路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础 1.1 Zu...

  • springcloud-zuul路由网关

    zuul功能 Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例...

  • Zuul第一章 zull的路由转发、排除、自定义

    一、zuul默认访问接口是以:服务名+接口名的形式访问 二、自定义路由配置 三、查看所有路由规则的URL http...

  • Spring Cloud Zuul网关服务

    内容简介 Zuul网关的功能和工作机制、结合代码介绍如何使用Zuul构建一个简单的网关、介绍Zuul的路由配置方式...

  • Zuul的路由匹配

    上一篇,我们已经知道了 Zuul 的配置,其中 Zuul 的路由匹配也是核心配置之一,那 Zuul 是怎么匹配我...

  • rails 方法和对象

    rails 路由(rails 通过路由配置表来转发url动作) 路由表的功能: 接收识别http 请求 处理url...

  • 6.SpringCloud-zuul

    Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服务,/ap...

网友评论

    本文标题:zuul和consul配置http路由转发

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