当前位置: 首页 > news >正文

SpringCloudAlibaba项目搭建

版本关系

我这一套用的是:
  • mySQL版本 5.5.15

  • boot版本 2.2.13.RELEASE

  • cloud版本 Hoxton.RELEASE

  • cloud alibaba版本 2.2.0
    nacos openFeign Gateway sentinel seata的pom赖版本为cloudAlibaba默认的

  • nacos 客户端版本 1.1.4

  • sentinel dashboard版本 1.7.1

  • seata-server 1.0.0

springCloudAlibaba各个组件版本对应关系可参考: Spring Cloud Alibaba 版本发布说明

pom.xml 依赖

 	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.13.RELEASE</version>
        <relativePath/>
    </parent>
        <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.0.RELEASE</spring-cloud-alibaba.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!--springCloud的依赖-->
            <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--springCloud-alibaba的依赖-->
            <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-alibaba-dependencies -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
		
        <!-- lombok-->
		<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.16</version>
        </dependency>
        <!-- fastjson -->
        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.56</version>
        </dependency>
        <!-- jdbc Connector-->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>
        <!-- spring-boo web启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- nacos客户端 服务注册与发现 -->
        <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- openfeign 微服务接口式调用 里面包含了Hystrix 和 ribbon的jar包 -->
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!-- sentinel -->
        <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!-- gateway网关 -->
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-gateway -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
    </dependencies>
        <!-- seata 分布式事务管理 包括了druid 的jar包-->
     <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-seata -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
        </dependency>

配置文件

server:
  port: 8081 #服务端口号
spring:
  application:
    name: service-product #服务名
  datasource: #数据源配置
    driver-class-name: com.mysql.jdbc.Driver # 如果数据库版本是8.0.x  这里需要写 com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///shop?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource #seata 1.0.0需要配置这个 不然启动不起来
  cloud:
    nacos: #nacos配置
      discovery:
        server-addr: 127.0.0.1:8848 #去哪里注册和发现服务  这里应该写nacos服务所在的ip和端口号
    sentinel: #sentinel 配置
      eager: true
      transport:
        dashboard: localhost:8080 #sentinel服务 的地址
    gateway: #网关配置 主要是路由和过滤器
      globalcors: #全局跨域配置  这里配置的 是所有服务都支持的 一般都配置全局配置
        cors-configurations:
          '[/**]':
            allowedOrigins: '*' # 支持的请求地址 allowedOrigins
            allowedMethods: # 支持的请求方式 '*' 代表支持所有请求方式
              - GET
      routes:
        - id: order-route # 路由名
          uri: lb://service-order # 请求转发给哪一个服务  以负载均衡的策略
          predicates: # 路径断言
            - Path=/api/orderNacos/** # 访问路径  例如/api/order/createOrder 会转发给 service-order服务的 /api/order/createOrder
            #- IncludeParam=pid,3 #自定义路由断言规则测试
          #order: 0 # 优先级  数字越小 优先级越高
#          metadata:
#            cors: #全局跨域配置  这里配置的 是只有当前服务支持的
#              allowedOrigins: '*' # 支持的请求地址
#              allowedMethods: # 支持的请求方式
#                - GET
#                - POST
#              allowedHeaders: '*'
#              maxAge: 30
          filters:
#            - OnceToken=X-Response-Token,uuid #自定义过滤器测试
#            - Rewrite=/api/orderNacos/?(?<segment>.*),/$\{segment} # 路径重写  网关转发请求时 默认会原封不动的将路径转发  添加此项后会进行路径重写  例如 这里就是讲路径中的 /api/orderNacos 去掉  也就是将/api/orderNacos/abc转换为 /abc再发送至 service-order服务
            - AddResponseaHeader=X-Response-Abc,123 #给响应头添加内容  加一个X-Response-Abc  属性值为123
        - id: product-route
          uri: lb://service-product
          predicates:
            - Path=/api/product/**
#      default-filters: #默认过滤器 所有的路由都会生效
#        - AddResponseaHeader=X-Response-All,all #给所有的响应头添加内容
feign:
  sentinel:
    enabled: true # 配置 feign接口 也能 被 sentinel 识别

nacos、openFeign等组件支持的开启

//nacos
@EnableDiscoveryClient

//openFeign
@EnableFeignClients

//seata进行事务管理时需要开启事务
@EnableTransactionManagement

http://www.dtcms.com/a/69183.html

相关文章:

  • 数据库原理9
  • Tcp网络通信的基本流程梳理
  • docker指令整理
  • SpaceClaim二次开发(4)
  • MATLAB风光柴储微网粒子群算法
  • 上海高考解析几何
  • 『大模型笔记』什么是MCP?将AI智能体与数据库和API集成
  • 向量库集成指南
  • Windows下安装Git客户端
  • 关于在vue3中使用keep-live+component标签组合,实现对指定某些组件进行缓存或不缓存的问题
  • 【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)
  • 一窥DeepSeek开源EPLB项目:揭开技术背后的面纱
  • 西门子S7-1200 PLC远程上下载程序方案
  • 在1688平台上如何实现铺货和上传商品的自动化?
  • PinnDE:基于物理信息神经网络的微分方程求解库
  • 如何在PHP中实现数据加密与解密:保护敏感信息
  • 【免费】2008-2020年各省城镇登记失业率数据
  • 有关Java中的注解和反射
  • Adobe illustrator软件科研绘图学习
  • P1631 序列合并
  • 【OS】操作系统全解
  • 操作系统知识点29
  • Manus邀请码申请全流程指南(2025最新版)——申请Manus体验资格
  • 根据Excel快速生成表的创建以及新增数据记录的sql
  • 批量清空 Excel 文档主题、标记、作者、保存时间、总编辑时间元数据
  • 深入 Python 网络爬虫开发:从入门到实战
  • C# 初学者的系统学习路径与职业规划指南
  • FPGA为何要尽量减少组合逻辑的使用
  • APB-清华联合腾讯等机构推出的分布式长上下文推理框架
  • 图论part4|827. 最大人工岛、127. 单词接龙、463. 岛屿的周长