springboot如何改成springcloud项目?

1. 注意:

nacos服务器版本,springboot,springcloud 和springcloudAliibaba 版本一定要对应

否则项目报错或者注册不到nacos上 

1. pom里加入cloud和cloudalibaba的 管理和 服务发现 的依赖

 
    

    

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



                pom
                import
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies


                2.2.7.RELEASE
                pom
                import
            
        

    
 
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            
                
                    jsr305
                    com.google.code.findbugs
                
                
                    HdrHistogram
                    org.hdrhistogram
                
            
        

2.启动类上加注解,开启服务发现

@EnableDiscoveryClient

3. 配置文件加nacos的注册地址

server.port=8092
spring.application.name=order-service



#nacos服务发现中心
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#spring.cloud.nacos.config.server-addr=127.0.0.1:8848
management.endpoints.web.exposure.include=*
#spring.cloud.nacos.config.file-extension=properties
# true为注册服务到nacos上,false为不注册
spring.cloud.service-registry.auto-registration.enabled=true

nacos 版本 2.0.3(windows)

默认是 集群启动

springboot如何改成springcloud项目?_第1张图片

 

发现启动报错

springboot如何改成springcloud项目?_第2张图片

 

改成单机模式启动

startup.cmd -m standalone

springboot如何改成springcloud项目?_第3张图片

 springboot如何改成springcloud项目?_第4张图片

 上面给出了nacos控制台地址:

http://192.168.60.84:8848/nacos/index.html

先启动子项目:

springboot如何改成springcloud项目?_第5张图片

 说明注册成功,

然后登入 nacos控制台 ,发现服务注册上了

springboot如何改成springcloud项目?_第6张图片

 springboot如何改成springcloud项目?_第7张图片

 

全部的pom依赖如下:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent

        2.2.9.RELEASE
         
    
    com.authresourcs
    order-service
    0.0.1-SNAPSHOT
    order-service
    Demo project for Spring Boot

    
        1.8
        

        Hoxton.RELEASE
    


    
    

    

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



                pom
                import
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies


                2.2.7.RELEASE
                pom
                import
            
        

    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

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



        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            
                
                    jsr305
                    com.google.code.findbugs
                
                
                    HdrHistogram
                    org.hdrhistogram
                
            
        

    


    
    
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/milestone
            
                false
            
        
    






然后配置一个网关服务:

cloud版本和上面的一样:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.9.RELEASE
         
    
    com.cloudalibaba
    gateway
    0.0.1-SNAPSHOT
    gateway
    Demo project for Spring Boot

    
        1.8
        2.2.1.RELEASE
        Hoxton.SR6
    

    
    
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        

        
        
            org.projectlombok
            lombok
            1.18.8
            provided
        
        
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        
        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
            
                
                    jsr305
                    com.google.code.findbugs
                
            
        
    

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

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

启动类代码如下:

package com.gateway;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class GatewayServiceApplication {

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


}

配置文件: application.yml

server:
  port: 9999

spring:
  application:
    # 应用名称
    name: gateway-service

    main:
      allow-bean-definition-overriding: true

  profiles:
    # 当前环境对应的 profile  name-active 为读取的配置文件
    active: develop
  cloud:
    nacos:
  # true为注册服务到nacos上,false为不注册
      discovery:
        server-addr: localhost:8848
        #此处的namespace是discovery服务对应的命名空间,与config不同
        #namespace: b7d26021-28b5-42d1-b36d-737a818a2146

      config:
        # 如果不想使用 Nacos 进行配置管理,设置为 false 即可
        enabled: false
        # Nacos Server 地址
        server-addr: 127.0.0.1:8848
        # 组,默认为 DEFAULT_GROUP
        group: DEFAULT_GROUP
        # 配置内容的数据格式,默认为 properties
        file-extension: yaml
        # 指定命名空间,默认为public
        namespace: dev_space
    # 将网关也 注册到nacos 上
    service-registry:
        auto-registration:
         enabled: true

    gateway:
      discovery:
        locator:
          #表示将请求路径的服务名配置改成小写  因为服务注册的时候,向注册中心注册时将服务名转成大写的了
          lowerCaseServiceId: true
          #表示gateway开启服务注册和发现功能,
          #并且spring cloud gateway自动根据服务发现为每一个服务创建了一个router,这个router将以服务名开头的请求路径转发到对应的服务
          enabled: true
      httpclient:
        response-timeout: 5000
        connect-timeout: 5000


ribbon:
  ReadTimeout: 120000
  ConnectTimeout: 120000





springboot如何改成springcloud项目?_第8张图片

然后进入nacos控制台进行查看:

springboot如何改成springcloud项目?_第9张图片

 接下来测试网关:springboot如何改成springcloud项目?_第10张图片

 网关的配置如下:

spring:
    cloud:
        gateway:
            routes:
            - id: nacos-server
              uri: lb://nacos-server #代表从注册中心获取服务,且以lb(负载均衡)的方式转发
              predicates:             #断言
              - Path=/nacos-server/**     #表示将以/provider/**开头的请求转发到uri为lb://nacos-server的地址上
              filters:
              - StripPrefix=1 #1为去掉path的/provider
            - id: pay-service
              uri: lb://pay-service #代表从注册中心获取服务,且以lb(负载均衡)的方式转发
              predicates:             #断言
              - Path=/pay-service/**     #表示将以/provider/**开头的请求转发到uri为lb://pay-service的地址上
              filters:
              - StripPrefix=1 #1为去掉path的/pay-service

            - id: order-service
              uri: lb://order-service #代表从注册中心获取服务,且以lb(负载均衡)的方式转发
              predicates:             #断言
              - Path=/order-service/**     #表示将以/provider/**开头的请求转发到uri为lb://order-service的地址上
              filters:
              - StripPrefix=1 #1为去掉path的/order-service

在浏览器输入:

http://localhost:9999/order-service/order/hello

springboot如何改成springcloud项目?_第11张图片

 说明网关转发成功!

你可能感兴趣的:(spring,cloud,spring,cloud,spring,boot,java)