spring cloud alibaba集成sentinel及版本问题处理

        用最新的spriing cloud alibaba集成sentinel 出现了各种各样的问题,归结起来就是版本不对,但是网上找的博客没有看到最新版的,怎么都对不上。所以做一个记录,或许看到的时候已经又更新了,不重要,只要找对了方法。哪个版本都能对应上了

创建步骤:

idea + maven 3.6.3 + jdk 1.8

1. 首先创建一个maven项目,也可以创建Spring Initializr.  因为不光是搭建一个测试环境,方便后期使用,我直接按照我做正式项目的搭建方式来弄了

下图是创建完成的结构,因为spring cloud alibaba,各个项目最好统一管理,所以我把src目录删除,只作为父项目统一管理

 

2. 创建sentinel 的项目,作为子项目,也是maven项目,当然也可以选择Spring Initializr

 

3.接下来就需要给项目添加依赖了

父pom文件:spring-cloud-project的pom,首先是加入我们需要的版本,这个就是最坑的事情了,如果没有对上版本,后面都没法运行。如何指定呢?

        并不是所有的版本都有对应,cloud , boot,alibaba都是单独的组件,想要合并,是需要找官网给出来的确定版本

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

        因为我这儿是spring cloud alibaba的环境,所以直接再alibaba官网找毕业版本

直接使用最新的版本 2.2.7RELEASE   cloud 及 boot也对应一下 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>spring-cloud-project</artifactId>
    <!-- pom方式,只让子继承 -->
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>sentinel-project</module>
    </modules>

    <!-- 自定义版本-->
    <properties>
        <!--这个名称最好不要改,后面的子pom会用这种格式去找,改了就找不到了,非要改子pom引用对应依赖就必须要指定版本-->
        <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
        <spring-boot.version>2.3.12.RELEASE</spring-boot.version>
        <spring-cloud-alibaba.version>2.2.7.RELEASE</spring-cloud-alibaba.version>
    </properties>

    <!--不添加依赖,让子pom继承使用-->
    <dependencyManagement>
        <dependencies>
            <!-- spring-boot 相关依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring-cloud 相关依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring-cloud-alibaba 相关依赖-->
            <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>
            <!-- spring-boot-starter-web 相关依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <target>1.8</target>
                    <source>1.8</source>
                    <encoding>UTF-8</encoding>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

以上是完整的父pom内容

4. 子项目pom及yml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring-cloud-project</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>sentinel-project</artifactId>


    <dependencies>
        <!--spring boot web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- sentinel 本章只用一个来做示例,其他组件大同小异-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
    </dependencies>

</project>
server:
  port: 8877 #自定义端口
spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8858  #sentinel地址

5. 创建启动类及测试用controller

至此配置完成

补充一个:最开始我是选择spring boot 2.6.2,启动会报错

(所以不要单纯的去追求最新版本,只能去找官网给出的毕业版本)

原因是因为spring boot 2.6以后不允许循环依赖。只需要在yml里面加一个配置就好

完整yml:

server:
  port: 8877 #自定义端口
spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8858  #sentinel地址
  main:
    allow-circular-references: true #2.6.0后默认不允许 允许循环依赖

再运行,访问都没啥问题了

        版本问题也是比较恶心,官网和博客各个地方说明的东西也不一定能应用上,一方面做一个记录,另一方面也是各位如果遇到这个问题,希望这篇文章能够有所帮助

       

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring CloudSpring Cloud Alibaba都是基于Spring Framework的开源框架,用于构建分布式系统和微服务架构。它们都提供了一系列的组件和工具来简化微服务开发和管理。 Spring Cloud是一个由Pivotal团队维护的项目,它集成了Netflix开源的一些组件,如Eureka作为注册中心、Ribbon作为负载均衡器、Feign作为服务调用工具等。同时,Spring Cloud还提供了其他功能,如Config Server用于动态管理配置、Gateway用于构建API网关等。 而Spring Cloud Alibaba则是阿里巴巴开源的项目,它在Spring Cloud的基础上进行了扩展和定制,增加了一些阿里巴巴自己的组件和工具。比如,它使用Nacos作为注册中心和配置中心,使用Sentinel作为熔断降级工具。 总的来说,Spring CloudSpring Cloud Alibaba都是用于构建微服务架构的框架,它们的区别在于Spring Cloud集成了Netflix组件,而Spring Cloud Alibaba集成了阿里巴巴的一些组件。根据具体的需求和技术栈选择使用哪个框架可以更好地满足开发和管理微服务的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Spring Cloud AlibabaSpring Cloud的区别](https://blog.csdn.net/weixin_43888891/article/details/126653270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值