栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springcloud+nacos

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springcloud+nacos

Springcloud 学习

1.从简单demo 搭建开始

cloud_gateWay 网关

配置文件: bootstrap.yml问题一: bootstrap.yml和 application.yml 文件区别。问题二:lb://xx 客户端负载均衡。 cloud_order

配置文件: bootstrap.yml思考

1.从简单demo 搭建开始

使用 springcloud + nacos(注册配置中心) + gateway(网关)

cloud_gateWay 网关

pom如下




    
        org.caolinfeng.demo
        cloud_parent_impor
        0.0.1-SNAPSHOT
    

    4.0.0
    cloud_gateway
    0.0.1-SNAPSHOT
    cloud_gateway
    Demo project for Spring Boot

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

        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            ${nacos.version}
        
        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
            ${nacos.version}
        
        
 
        
       
            org.springframework.cloud
            spring-cloud-loadbalancer
            ${loadbalancer.version}
        

    

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

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


配置文件: bootstrap.yml
server:
  port: 1888
logging:
  level:
    org.springframework.cloud.gateway: TRACE
    org.springframework.http.server.reactive: DEBUG
    org.springframework.web.reactive: DEBUG
    reactor.ipc.netty: DEBUG
spring:
  application:
    name: cloud-gateway
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.104:8848
        namespace: 9b06e3f1-1772-45b9-9db9-3c912339c6ec
        group: demo
      config:
        server-addr: 192.168.0.104:8848
        namespace: 9b06e3f1-1772-45b9-9db9-3c912339c6ec
        group: demo
        prefix: ${spring.application.name}
        file-extension: yaml  # 配置文件类型
        refresh-enabled: true  # 是否开启自动刷新
    gateway:
      discovery:
        locator:
          enabled: true
#      routes:
#        - id: order-servcer
#          uri: lb://order-servcer
#          #uri: http://192.168.0.104:89 # 服务端 service_id
#          predicates:
#            - Path=/order/**
#          filters: # 过滤器,请求在传递过程中可以通过过滤器对其进行一定的修改
#            - StripPrefix=1 # 转发之前去掉1层路径
问题一: bootstrap.yml和 application.yml 文件区别。

配置文件 bootstrap.yml。当时用 application.yml 时 如果不使用nacos 作为配置中心,启动成功,如果使用nacos 作为配置中心 启动失败,改用 bootstrap.yml 时才能顺利加载配置

网关 使用gateway 路由到其他服务时 两种方式
1.指定路由
例如 http://192.168.0.104:89
2.加载配置做负载均衡
例如 lb://order-servcer

问题二:lb://xx 客户端负载均衡。

在gateWay 也必须引入如下依赖 才会调用到 lb://order-servcer成功否则503

   
        org.springframework.cloud
        spring-cloud-loadbalancer
        ${loadbalancer.version}
    
cloud_order

pom如下




       
        org.caolinfeng.demo
        cloud_parent_impor
        0.0.1-SNAPSHOT
    


    4.0.0
    cloud_order
    0.0.1-SNAPSHOT
    jar
    spring-boot-order
    Demo project for Spring Boot

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
            ${nacos.version}
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            ${nacos.version}
        

        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
        

        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
            ${openfeing.version}
        
        
        
            org.springframework.cloud
            spring-cloud-loadbalancer
            ${loadbalancer.version}
        
    

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

    

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



配置文件: bootstrap.yml
nacos:
  addr: 192.168.0.104:8848
  namespace: 9b06e3f1-1772-45b9-9db9-3c912339c6ec
  group: demo
spring:
  application:
    name: order-servcer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.104:8848
        namespace: 9b06e3f1-1772-45b9-9db9-3c912339c6ec
        group: demo
      config:
        server-addr: 192.168.0.104:8848
        namespace: 9b06e3f1-1772-45b9-9db9-3c912339c6ec
        prefix: ${spring.application.name}
        group: demo
        file-extension: yaml  # 配置文件类型
        refresh-enabled: true  # 是否开启自动刷新
server:
  port: 1890

测试接口

@RestController
@RequestMapping("/order")
public class OrderController {
    @Value("${usernamex}")
    private String usernamex;

    @GetMapping("/get/{id}")
    public String getOrderId(@PathVariable("id") Long id) {

        return String.format(usernamex + "%s%s", "   ——", id.toString());
    }
}

项目图如下

思考

gateway 首重路由转发,类似nginx 反向代理,对外暴露统一入口,根据路由规则转发到不同服务。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755260.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号