gateway整合nacos

之前了解过通过springCloud整合阿里的nacos作为配置中心,由于之前的需求是想要配置中心搞成可管理的化的,而原始的springCloudConfig是要把配置放到git上再结合springCloudBus才能实现配置的动态刷新。

 

刚开始是研究了一下携程的apollo作为配置中心,但是光是搭建起来就花了一些功夫,然后再整合到springcloud中,感觉还是有点麻烦的,后来也不知哪里听说的阿里的nacos也可以做就抱着试一下的心态学了一下。

 

学完就发现非常的简单,不光是搭建简单而且整合起来也非常的容易,nacos可以作为配置中心,但是因为项目的一直用的是eureka所以也就没去想那部分,偶尔心血来潮就整了下gateway+naocs过程非常的简单。

 

首先依赖的版本要对应好,不然会有很多的问题 图片和代码

gateway整合nacos_第1张图片

 



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.5.RELEASE
         
    
    com.lyj
    api-gateway-nacos
    0.0.1-SNAPSHOT
    api-gateway-nacos
    Demo project for Spring Boot

    
        UTF-8
        UTF-8
        1.8
        Hoxton.SR3
        0.2.1.RELEASE
        2.9.2
    

    
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        

        
            org.springframework.cloud
            spring-cloud-starter-gateway
        

        
            org.springframework.boot
            spring-boot-starter-actuator
        

        
            org.springframework.cloud
            spring-cloud-starter-netflix-ribbon
        

        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
        

        
        
            io.springfox
            springfox-swagger2
            ${swagger.version}
        

        
            io.springfox
            springfox-swagger-ui
            ${swagger.version}
        

        
            org.projectlombok
            lombok
            1.16.20
        
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-alibaba-dependencies
                ${spring-cloud-alibaba.version}
                pom
                import
            
        
    


    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            

            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                
                    true
                
            
        
    

Maven的配置可以按照我的这个配置,然后配置对应的yml和所需的注解

 

gateway整合nacos_第2张图片

 

bootstrap.yml配置:

server:
    port: 9099
spring:
    application:
        name: api-gateway-nacos
    cloud:
        nacos:
            discovery:
                server-addr: 127.0.0.1:8848

application.yml配置:

spring:  cloud:    gateway:      discovery:        locator:          enabled: true          lowerCaseServiceId: true # 请求服务是小写的时候改成true(默认为false轻微服务必须是大写)      routes:        - id: user          uri: lb://user  # 服务端 service_id          order: 8089          # 网关断言匹配          predicates:            - Path=/user/**    # 路由映射路径 这里注意,这个路径会追加到 service_id后          filters:            - GwSwaggerHeaderFilter            - StripPrefix=1  # 转发过滤前缀个数            
ribbon:  eureka:    enabled: true # 开启eureka轮询  eager-load:    enabled: true  # 开启Ribbon的饥饿加载模式(防止第一次请求超时的问题)    clients: user, product # 指定需要开启的服务(需要开启Ribbon的饥饿加载模式)  ReadTimeout: 60000  ConnectTimeout: 60000  MaxAutoRetries: 0  MaxAutoRetriesNextServer: 1  OkToRetryOnAllOperations: false
# 设置最大容错超时时间# 执行超时时间为9秒,会对服务熔断路由defaultfallback生效hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 90000

# 设置最大容错超时时间hystrix:  threadpool:    default:      coreSize: 100      maximumSize: 5000      allowMaximumSizeToDivergeFromCoreSize: true      maxQueueSize: -1  command:    default:      circuitBreaker:        # 是否强制将断路器设置成开启状态(true开启,false不开启)最好不开启否者会导致访问服务一直熔断        foreOpen: false      execution:        timeout:          enabled: true        isolation:          thread:            timeoutInMilliseconds: 900000

 

这边配置的注释已经写的很清楚了,可以根据需要CRUD,接着启动windows的nacos

 

gateway整合nacos_第3张图片

 

然后启动项目

 

gateway整合nacos_第4张图片

 

服务已经成功注册上来,接着注册对应服务随便写个测试类调用即可成功的实现网关的转发调用

 

gateway整合nacos_第5张图片

 

gateway整合nacos_第6张图片

 

注册服务的端口是9090,网关服务的端口是9099

 

gateway整合nacos_第7张图片

 

通过网关的端口成功调用到jwt服务的应用,到这gateway整合nacos就顺利的完成了。

 

关注公众号领取学习java和分布式资源

 

  

你可能感兴趣的:(微服务)