SpringCloud基本微服务构建(Eureka+GateWay)

Posted Huterox

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud基本微服务构建(Eureka+GateWay)相关的知识,希望对你有一定的参考价值。

文章目录

前言

本来是打算使用nacos来玩的,但是为了方便演示在我的本地环境,所以我还是打算使用Eureka来进行微服务的构建。然后就开始踩坑了,版本问题,加上好久没玩了。

GateWay版本兼容问题

昨天我所构建的dome是基于这个 SpringCloud Hoxton.SR12 来玩的。

但是今天遇到了版本问题,不兼容,所以没办法只能回退到SR10

服务配置

这个服务的话还是昨天的dome,为了避免问题我都是习惯先来个dome玩玩配置,玩意实际开发出毛病了就麻烦了,尤其是好久没玩微服务了,必须要慎重一丢丢。

就比如今天的问题,以前nacos没一点毛病儿,到eureka就不行了。

子服务

这个还是昨天的两个玩意儿。
SpringCloud微服务项目搭建流程

因为这边主要是验证eureka和gateway的毛病,其他的feign神马的玩意没去搞,因为这个是不会出问题的,而且还没有dao,没有服务转发的需要,那个得等到小爷做具体的服务拆分的时候去搞,专门提取出feign层做依赖去。

网关配置

依赖导入


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

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


        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

启动类

这个应该不用说了,不过我习惯创建空的model,还是得自己加上这个玩意

@SpringBootApplication
public class GateWayApplication 

    public static void main(String[] args) 
        SpringApplication.run(GateWayApplication.class,args);
    


application 配置

这里就是出现毛病的地方了,服了这个老6

server:
  port: 8087


spring:
  application:
    name: gateway # 服务名称
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:

        - id: consume8081
          uri: lb://cloudconsumservice
          predicates:
            - Path=/consume/**
          filters:
            - StripPrefix=1

        - id: provide8083
          uri: lb://cloudprovideservice
          predicates:
            - Path=/provide/**
          filters:
#            - 转发做拼接,去掉provide后缀,uri/** 而不是 uri/provide/**
            - StripPrefix=1
#            与之对于的还有 PrefixPath=/Huterox
#  当访问 http://localhost:8762/aaa,加上前缀就变成 http://localhost:8762/Huterox/aaa
 

        - id: test
          uri: https://cn.bing.com
          predicates:
            - Path=/test/**
eureka:
#  将ip配置到eureka里面,不给就是host名会配置到那个里面
#  instance:
#    prefer-ip-address: true
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka


我踩坑的地方就在那个 StripPrefix=1,当然还有一个,这个服务名不能有“_” 要么去掉,要么改成 “-” 当时还发现这个拿不到注册中心的服务,后来改了,然后还是访问不到,然后加了test测试,然后可以,然后就猜测是准发路径的问题,结果猜对了,靠。
原来小爷 用nacos的时候这样就跑起来了

server:
  port: 10010

spring:
  application:
    name: gateway
  cloud:
    nacos:
      server-addr: nacos:8848 
    gateway:
      routes:
        - id: user-service 
          uri: lb://userservice 
          predicates: 
            - Path=/user/** 

      default-filters:
        - AddRequestHeader=Truth,Itcast is freaking awesome!

测试


可以看到网关生效了
下面也成功访问到了这个中心

ok,后面我应该就可以玩起来了,配置啥的应该就没问题了,剩下的端午再说了,一个晚上刷了两套毛概,一套(半套)四级,and 形势与政策。越到期末事情越多呀!

以上是关于SpringCloud基本微服务构建(Eureka+GateWay)的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud微服务云架构构建B2B2C电子商务平台之-服务的注册与发现Eureka

SpringCloud微服务云架构构建B2B2C电子商务平台之-Eureka服务消费Feign

SpringCloud02_Eureka概述单机案例集群案例微服务服务完善服务发现Discovery自我保护机制

SpringCloud微服务(01):Eureka组件,管理服务注册与发现

SpringBoot2.0+SpringCloud Eureka构建服务治理

《SpringCloud 从入门到入土 》 第3章:服务治理:Spring Cloud Eureka