索引:SpringCloudAlibaba分布式组件全部框架条记

打印 上一主题 下一主题

主题 635|帖子 635|积分 1905

一·保举一套分布式微服务的版本管理父工程pom模板:Springcloud、SpringCloudAlibaba、Springboot

  1. <properties>
  2.         <maven.compiler.source>17</maven.compiler.source>
  3.         <maven.compiler.target>17</maven.compiler.target>
  4.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  5.         <hutool.version>5.8.22</hutool.version>
  6.         <lombok.version>1.18.26</lombok.version>
  7.         <druid.version>1.1.20</druid.version>
  8.         <mybatis.springboot.version>3.0.2</mybatis.springboot.version>
  9.         <mybatisPlus.springboot.version>3.5.7</mybatisPlus.springboot.version>
  10.         <mysql.version>8.0.11</mysql.version>
  11.         <swagger3.version>2.2.0</swagger3.version>
  12.         <mapper.version>4.2.3</mapper.version>
  13.         <fastjson2.version>2.0.40</fastjson2.version>
  14.         <persistence-api.version>1.0.2</persistence-api.version>
  15.         <spring.boot.test.version>3.1.5</spring.boot.test.version>
  16.         <spring.boot.version>3.3.0</spring.boot.version>
  17.         <spring.cloud.version>2023.0.2</spring.cloud.version>
  18.         <spring.cloud.alibaba.version>2023.0.1.0</spring.cloud.alibaba.version>
  19.     </properties>
  20.     <dependencyManagement>
  21.         <dependencies>
  22.             <!--springboot 版本控制依赖-->
  23.             <dependency>
  24.                 <groupId>org.springframework.boot</groupId>
  25.                 <artifactId>spring-boot-starter-parent</artifactId>
  26.                 <version>${spring.boot.version}</version>
  27.                 <type>pom</type>
  28.                 <scope>import</scope>
  29.             </dependency>
  30.             <!--springcloud 版本控制依赖-->
  31.             <dependency>
  32.                 <groupId>org.springframework.cloud</groupId>
  33.                 <artifactId>spring-cloud-dependencies</artifactId>
  34.                 <version>${spring.cloud.version}</version>
  35.                 <type>pom</type>
  36.                 <scope>import</scope>
  37.             </dependency>
  38.             <!--springcloud alibaba 版本控制依赖-->
  39.             <dependency>
  40.                 <groupId>com.alibaba.cloud</groupId>
  41.                 <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  42.                 <version>${spring.cloud.alibaba.version}</version>
  43.                 <type>pom</type>
  44.                 <scope>import</scope>
  45.             </dependency>
  46. <!--            &lt;!&ndash;SpringBoot集成mybatis&ndash;&gt;-->
  47. <!--            <dependency>-->
  48. <!--                <groupId>org.mybatis.spring.boot</groupId>-->
  49. <!--                <artifactId>mybatis-spring-boot-starter</artifactId>-->
  50. <!--                <version>${mybatis.springboot.version}</version>-->
  51. <!--            </dependency>-->
  52.             <!--SpringBoot集成mybatis-plus-->
  53.             <dependency>
  54.                 <groupId>com.baomidou</groupId>
  55.                 <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
  56.                 <version>${mybatisPlus.springboot.version}</version>
  57.             </dependency>
  58.             <!--Mysql数据库驱动8 -->
  59.             <dependency>
  60.                 <groupId>mysql</groupId>
  61.                 <artifactId>mysql-connector-java</artifactId>
  62.                 <version>${mysql.version}</version>
  63.             </dependency>
  64.             <!--SpringBoot集成druid连接池-->
  65.             <dependency>
  66.                 <groupId>com.alibaba</groupId>
  67.                 <artifactId>druid-spring-boot-starter</artifactId>
  68.                 <version>${druid.version}</version>
  69.             </dependency>
  70.             <!--通用Mapper4之tk.mybatis-->
  71.             <dependency>
  72.                 <groupId>tk.mybatis</groupId>
  73.                 <artifactId>mapper</artifactId>
  74.                 <version>${mapper.version}</version>
  75.             </dependency>
  76.             <!--persistence-->
  77.             <dependency>
  78.                 <groupId>javax.persistence</groupId>
  79.                 <artifactId>persistence-api</artifactId>
  80.                 <version>${persistence-api.version}</version>
  81.             </dependency>
  82.             <!-- fastjson2 -->
  83.             <dependency>
  84.                 <groupId>com.alibaba.fastjson2</groupId>
  85.                 <artifactId>fastjson2</artifactId>
  86.                 <version>${fastjson2.version}</version>
  87.             </dependency>
  88.             <!-- swagger3 调用方式 http://你的主机IP地址:5555/swagger-ui/index.html -->
  89.             <dependency>
  90.                 <groupId>org.springdoc</groupId>
  91.                 <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
  92.                 <version>${swagger3.version}</version>
  93.             </dependency>
  94.             <!--hutool-->
  95.             <dependency>
  96.                 <groupId>cn.hutool</groupId>
  97.                 <artifactId>hutool-all</artifactId>
  98.                 <version>${hutool.version}</version>
  99.             </dependency>
  100.             <!--lombok-->
  101.             <dependency>
  102.                 <groupId>org.projectlombok</groupId>
  103.                 <artifactId>lombok</artifactId>
  104.                 <version>${lombok.version}</version>
  105.                 <optional>true</optional>
  106.             </dependency>
  107.             <!-- spring-boot-starter-test -->
  108.             <dependency>
  109.                 <groupId>org.springframework.boot</groupId>
  110.                 <artifactId>spring-boot-starter-test</artifactId>
  111.                 <version>${spring.boot.test.version}</version>
  112.                 <scope>test</scope>
  113.             </dependency>
  114.             <dependency>
  115.                 <groupId>com.lmf.cloud</groupId>
  116.                 <artifactId>common</artifactId>
  117.                 <version>1.0.0</version>
  118.             </dependency>
  119.         </dependencies>
  120.     </dependencyManagement>
  121.    
  122.     <build>
  123.         <plugins>
  124.             <!--            Springboot3升级之后必须添加的maven编译插件,这样才能解析接口方法参数,默认是不能自动解析接口参数-->
  125.             <plugin>
  126.                 <groupId>org.apache.maven.plugins</groupId>
  127.                 <artifactId>maven-compiler-plugin</artifactId>
  128.                 <version>3.13.0</version>
  129.                 <configuration>
  130.                     <parameters>true</parameters>
  131.                     <source>17</source>
  132.                     <target>17</target>
  133.                 </configuration>
  134.             </plugin>
  135.         </plugins>
  136.     </build>
复制代码
二·SpringBoot、SpringCloud、SpringCloudAlibaba等各种组件的版本匹配图:



三·SpringBoot 3.x.x版本项目中,必须在pom中引入一个插件,否则接口方法参数无法剖析

  1. <build>
  2.         <plugins>
  3.             <!--            Springboot3升级之后必须添加的maven编译插件,这样才能解析接口方法参数,默认是不能自动解析接口参数-->
  4.             <plugin>
  5.                 <groupId>org.apache.maven.plugins</groupId>
  6.                 <artifactId>maven-compiler-plugin</artifactId>
  7.                 <version>3.13.0</version>
  8.                 <configuration>
  9.                     <parameters>true</parameters>
  10.                     <source>17</source>
  11.                     <target>17</target>
  12.                 </configuration>
  13.             </plugin>
  14.         </plugins>
  15. </build>
复制代码
四·Spring Cloud Alibaba 参考文档:

1.尚硅谷学习条记脑图下载:2024版

https://gitee.com/lmf-2021/SpringCloud2024/blob/master/SpringCloud%E7%AC%AC3%E5%AD%A32024.html
2.官方全套示例文档,比力简短,不适合新手,适合熟手复习

https://spring-cloud-alibaba-group.github.io/github-pages/2022/zh-cn/
五·Nacos:服务注册发现、配置管理中央

服务注册发现、配置管理中央;自己就是一个单独的微服务;同时也是所有分布式微服务组件的底子应用
  1. <!--    Springcloud-nacos-服务注册中心整合依赖-->
  2. <dependency>
  3.     <groupId>org.springframework.cloud</groupId>
  4.     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  5. </dependency>
  6. <!--        springcloud-nacos-config-配置中心整合依赖-->
  7. <dependency>
  8.     <groupId>com.alibaba.cloud</groupId>
  9.     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  10. </dependency>
  11. <!--Springcloud-bootstrap容器整合依赖,可以使用bootstrap.yml配置文件-->
  12. <dependency>
  13.     <groupId>org.springframework.cloud</groupId>
  14.     <artifactId>spring-cloud-starter-bootstrap</artifactId>
  15. </dependency>
复制代码
1.Nacos分阶段引入示例:

https://www.cnblogs.com/crazymakercircle/p/14231815.html
2.Nacos配置yml完整示例与解释:

https://developer.aliyun.com/article/1157617
增补1:Nacos服务跨分组调用

https://blog.csdn.net/m0_56287495/article/details/129240577
六·LoadBalancer:远程服务调用框架、客户端负载平衡工具

远程服务调用框架、客户端负载平衡工具(Nginx是服务端负载平衡工具);需要依赖服务注册与发现;支持与多种http库集成
  1. <!--        Springcloud-loadbalancer-远程服务调用、负载均衡整合依赖,可以单独使用-->
  2. <dependency>
  3.     <groupId>org.springframework.cloud</groupId>
  4.     <artifactId>spring-cloud-starter-loadbalancer</artifactId>
  5. </dependency>
复制代码
https://www.cnblogs.com/itxiaoshen/p/16247702.html
七·Openfeign(保举):远程服务调用框架、客户端负载平衡工具

远程服务调用框架、客户端负载平衡工具(Nginx是服务端负载平衡工具);需要依赖服务注册与发现,内部整合了LoadBalancer负载平衡,可以完全替代LoadBalancer组件
  1. <!--Springcloud-openfeign-远程服务调用、负载平衡整合依赖,底层整合loadbalancer,因此需要该依赖--><dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--        Springcloud-loadbalancer-远程服务调用、负载均衡整合依赖,可以单独使用-->
  2. <dependency>
  3.     <groupId>org.springframework.cloud</groupId>
  4.     <artifactId>spring-cloud-starter-loadbalancer</artifactId>
  5. </dependency>
  6. <!-- 根据需要是否添加下面依赖,用于替换Openfeign底层的http请求为请求毗连池--><!-- httpclient5--><dependency>    <groupId>org.apache.httpcomponents.client5</groupId>    <artifactId>httpclient5</artifactId></dependency><!-- feign-hc5-整合依赖--><dependency>    <groupId>io.github.openfeign</groupId>    <artifactId>feign-hc5</artifactId></dependency>
复制代码
https://blog.csdn.net/weixin_44606481/article/details/132499972
增补1:Openfeign各种属性配置官方文档

https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/appendix.html
八·Gateway:微服务端网关路由

微服务端网关路由;自己就是一个单独的微服务;需要依赖服务注册与发现;Gateway服务配置路由之后,再访问Gateway服务,Gateway服务就可以把请求转发到其他详细微服务上面;
  1. <!--        网关是响应式编程,必须删除掉 spring-boot-starter-web 场景dependency-->
  2. <!--        Springcloud-gateway-网关路由整合依赖-->
  3. <dependency>
  4.     <groupId>org.springframework.cloud</groupId>
  5.     <artifactId>spring-cloud-starter-gateway</artifactId>
  6. </dependency>
  7. <!--        根据需要添加:解决netty框架与mac系统m1芯片集成dns问题-->
  8. <dependency>
  9.     <groupId>io.netty</groupId>
  10.     <artifactId>netty-resolver-dns-native-macos</artifactId>
  11. <!--            <version>4.1.75.Final</version> &lt;!&ndash;版本号自己切&ndash;&gt;-->
  12.     <classifier>osx-aarch_64</classifier>
  13. </dependency>
复制代码
1.入门概括先容:

https://developer.aliyun.com/article/1294775#slide-4
2.详细先容:

https://www.cnblogs.com/crazymakercircle/p/11704077.html#autoid-h2-0-0-0
3.官方中文文档-最新版:

https://springdoc.cn/spring-cloud-gateway/#setrequestheader
增补1:Nginx网关与Gateway网关区分:

一样平常情况:将Nginx设置为流量网关,Gateway设置为业务网关,两者作用都是负载平衡作用,Gateway网关细腻度更低
https://developer.aliyun.com/article/1392682
https://developer.aliyun.com/article/1002990#slide-3
九·Sentinel:服务流量治理组件

服务流量治理组件;自己就是一个单独的微服务;A微服务配置注册到Sentinel服务之后,访问A微服务接口,请求的流量就会被Sentinel服务监控到
  1. <!--        SpringCloud alibaba sentinel 服务流量治理组件-->
  2. <dependency>
  3.     <groupId>com.alibaba.cloud</groupId>
  4.     <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
  5. </dependency>
复制代码
1.官方文档:

https://sentinelguard.io/zh-cn/docs/basic-implementation.html
2.详细条记:

https://www.cnblogs.com/crazymakercircle/p/14285001.html#autoid-h2-0-0-0
3.整合实战条记:

https://www.cnblogs.com/crazytrip/p/15212602.html
4.尚硅谷的Springcloud第3季脑图:下载当地查察

https://gitee.com/lmf-2021/SpringCloud2024/blob/master/SpringCloud%E7%AC%AC3%E5%AD%A32024.html
十·Seata:分布式事务组件

分布式事务组件;自己就是一个单独的微服务;需要依赖服务注册与发现
  1. <!--        Springcloud-seata-分布式事务整合依赖-->
  2. <dependency>
  3.      <groupId>com.alibaba.cloud</groupId>
  4.      <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
  5. </dependency>
复制代码
1.官方文档:

https://seata.apache.org/zh-cn/docs/overview/what-is-seata
2.Seata各大模式原理分析:

https://blog.csdn.net/qq_48721706/article/details/122656490
3.Seata2.0 安装部署,与Nacos、SpringCloud项目集成条记:

(保举)https://blog.csdn.net/weixin_43840661/article/details/135432796
https://blog.csdn.net/weixin_36027342/article/details/135897943
https://blog.csdn.net/qq_42767920/article/details/135743126
十一·Micrometer:微服务接口调用链路追踪组件

  1. <!--micrometer-tracing-bom导入链路追踪版本中心  1-->
  2. <dependency>
  3.     <groupId>io.micrometer</groupId>
  4.     <artifactId>micrometer-tracing-bom</artifactId>
  5.     <version>${micrometer-tracing.version}</version>
  6.     <type>pom</type>
  7.     <scope>import</scope>
  8. </dependency>
  9. <!--micrometer-tracing指标追踪  2-->
  10. <dependency>
  11.     <groupId>io.micrometer</groupId>
  12.     <artifactId>micrometer-tracing</artifactId>
  13.     <version>${micrometer-tracing.version}</version>
  14. </dependency>
  15. <!--micrometer-tracing-bridge-brave适配zipkin的桥接包 3-->
  16. <dependency>
  17.     <groupId>io.micrometer</groupId>
  18.     <artifactId>micrometer-tracing-bridge-brave</artifactId>
  19.     <version>${micrometer-tracing.version}</version>
  20. </dependency>
  21. <!--micrometer-observation 4-->
  22. <dependency>
  23.     <groupId>io.micrometer</groupId>
  24.     <artifactId>micrometer-observation</artifactId>
  25.     <version>${micrometer-observation.version}</version>
  26. </dependency>
  27. <!--feign-micrometer 5-->
  28. <dependency>
  29.     <groupId>io.github.openfeign</groupId>
  30.     <artifactId>feign-micrometer</artifactId>
  31.     <version>${feign-micrometer.version}</version>
  32. </dependency>
  33. <!--zipkin-reporter-brave 6-->
  34. <dependency>
  35.     <groupId>io.zipkin.reporter2</groupId>
  36.     <artifactId>zipkin-reporter-brave</artifactId>
  37.     <version>${zipkin-reporter-brave.version}</version>
  38. </dependency>
复制代码
1.Micrometer安装利用详解:

https://www.cnblogs.com/cjsblog/p/11556029.html
2.SpringBoot 利用 Micrometer 集成 Prometheus 监控 Java 应用性能

https://blog.csdn.net/aixiaoyang168/article/details/100866159
https://juejin.cn/post/7051109463180181535

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表