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

记录一次基于SpringCloud Gateway网关 + nacos(注册以及配置中心)微服务搭建

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

记录一次基于SpringCloud Gateway网关 + nacos(注册以及配置中心)微服务搭建

基于SpringCloud Gateway网关 + nacos(注册以及配置中心)微服务搭建

最近公司的搭建的云平台使用了SpringCloud,对于网关这里不是很懂,想自己重新搭建一次,然后记录下以便后面查阅。

1.先创建SpringBoot项目

其实SpringCloud其实就是在SpringBoot上搭建的,所以在这里我就直接先用idea直接生成一个SpringBoot了。

1.1 先点击左上角的file->new->project

1.2 选择你的jdk版本(我现在是1.8版本有点老,不好意思

1.3 更改自定义项目名以及根目录名

1.4 选择你需要创建的SpringBoot版本

1.5 给自己的项目取个名字(也可以直接next!)

1.6 项目创建完毕

接下来开始修改maven 添加springCloud相关包
 
        2.2.4.RELEASE
        Hoxton.SR1
        2.2.0.RELEASE
    

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


        


    

    

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

   在这里将原来的SpringBoot替换为SpringCloud相关jar包,并导入
 

在这里我踩了关于nacos的坑,给大家说下

 
   上面是关于springBoot还有Cloud相关的包 不解释了,主要是nacos的jar有两个,
 (重要:nacos-discovery 为nacos注册中心的相关包,nacos-config为nacos配置中心的相关包, 我一开始以为这两个是一个东西)
   还有一点要注意, < dependencyManagement> 这个标签的问题,大家要注意下,被此标签包住的jar是不会被下载的!!!(好多兄弟踩坑了)

修改yml文件

 

server:
  port: 8899

spring:
  cloud:
   gateway:
      routes:
        - id: ReactiveCompositeDiscoveryClient_user-service
          uri: lb://user-service
          predicates:
            - Path=/user-service/**
          filters:
            - RewritePath=/user-service/(?.*), /${remaining} # 将 /user-service 前缀剔除
      discovery:
        locator:
          enabled: true # 是否开启,默认为 false 关闭
          url-expression: "'lb://' + serviceId" # 路由的目标地址的表达式,默认为 "'lb://' + serviceId"
        # Nacos 作为注册中心的配置项
  nacos:
   discovery:
    server-addr: 120.**.**.**:8848 # Nacos 服务器地址

在这里我将一个user-server注册进nacos的服务中心,再通过getway将请求转发至user-server

配置nacos的连接

由于nacos默认读取的是bootstrap.yaml 我们在项目中创建bootstrap.yaml文件,在这里我说下如果把nacos写进application.yaml里,nacos是读取不到的,在nacos源码里默认是读取bootstrap.yaml此文件,这个要注意。

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 120.*.*.*:8848 # Nacos 服务器地址

在此说明,nacos可根据环境的不同,创建多个命名空间,进行环境的配置隔离等。bootstrap-dev.yaml为开发环境配置。

到此服务消费者已经搭建完毕。接下来开始搭建服务提供者(user-server)
 
在重新复制一个新的SpringBoot项目,将刚才的Getway的pom文件复制过就可以。

spring:
  application:
    name: user-service # Spring 应用名
  cloud:
    nacos:
      # Nacos 作为注册中心的配置项
      discovery:
        server-addr: 120.**.**.**:8848 # Nacos 服务器地址 "'lb://'+serviceId"

server:
  #  port: ${random.int[10000,19999]}  # 服务器端口。默认为 8080
  port: 18081  # 服务器端口。默认为 8080

在这里将服务名(Spring应用名)注册进nacos服务中心,以及标注好端口
 
然后创建bootstrap.yaml 读取nacos的配置

spring:
  application:
      name: gateway-application

  cloud:
    nacos:
      # Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
      config:
        server-addr: 120.**.**.**:8848 # Nacos 服务器地址
        namespace: a4674d5e-16a5-42f4-afbe-4ca59a6bad40 # 使用的 Nacos 的命名空间,默认为 null
        group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
        name: gateway-application # 使用的 Nacos 配置集的 dataId,默认为 spring.application.name
        file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties

在这里要注意 file-extension 一定要是你nacos配置的后缀 Properties 和yaml一定要区分开,我看到还多人在这里踩坑。
 
随便写一个user的接口即可,等下测试使用
 

 
接下来直接启动项目,启动成功后,在nacos控制到能看到启动的服务
 


 
我们直接调用getway服务,开始测试

总结

  以上就是本次搭建的Getway+nacos的微服务搭建的全部内容了,以下是大致流程总结,下一期出在linux上搭建redis教程。

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

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

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