IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringCloud(十)——Spring Cloud Alibaba组件 -> 正文阅读

[Java知识库]SpringCloud(十)——Spring Cloud Alibaba组件

SpringCloud(十)——Spring Cloud Alibaba组件

前言

  • SpringCloudAlibaba官方定义:

该微服务工具集是分布式应用开发的一整套解决方案。换句话说,该工具集为分布式应用开发提供了一站式解决方案,其中包含开发分布式应用的所有组件。

  • SpringCloudAlibaba特性以及提供的组件:
    • 服务流量控制和服务降级(Sentinel):对应替换Hystrix
    • 服务注册和发现组件(Nacos):对应替换consul以及Eureka
    • 统一中心(Nacos):对应替换config
    • 事件驱动(RocketMQ):对应替换Bus
    • 分布式事务支持(Seata);
    • Dubbo RPC:使用这个协议的前提是各个微服务使用的语言必须是同一种(Java)。

上述的几个组件中,Alibaba被使用的是前三个(即加粗)的组件,现今微服务开发使用的组件为:

  • Nacos:服务注册中心以及统一配置中心;
  • HttpRest:结合Ribbon或OpenFeign组件实现服务间的负载均衡通信;
  • Sentinel:服务流量监控以及服务降级;
  • Gateway:网关组件。

父项目环境搭建

本篇笔记开始说明SpringCloudAlibaba的相关组件,其项目环境搭建和SpringCloud完全相同,只是引入依赖有些区别。

  • 引入依赖:
<!--控制SpringCloud以及SpringCloudAlibaba版本依赖-->
<properties>
    <spring.cloud-version>2021.0.0</spring.cloud-version>
    <spring.cloud.alibaba.version>2.2.7.RELEASE</spring.cloud.alibaba.version>
</properties>
<!--SpringBoot版本-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.3</version>
</parent>
<!--SpringCloud以及Alibaba组件版本依赖-->
<dependencyManagement>
    <dependencies>
        <!--维护SpringCloud 版本-->
        <!--SpringCloud插件的引入同样不会引入依赖,只是维护版本-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring.cloud-version}</version>
            <!--引入父项目工具集的时候,表示当前为工具集-->
            <type>pom</type>
            <!--表示引入-->
            <scope>import</scope>
        </dependency>
        <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>

【注】:我们新开的父项目在一个新的路径下,这个时候需要将该目录下的JDK和Maven重新配置,否则会出现问题。

Nacos替换consul

使用Nacos替换consul需要注意的是,连接注册中心的依赖需要更改,远端服务器中的注册中心组件需要更改。

Nacos下载

Nacos下载教程

在此需要说明一下,下载教程中为大家提供了两个下载链接,主要是版本不同,大家注意区分。因为大家在使用Nacos依赖的版本如果过高(2.0版本以上)的时候,低版本的Nacos服务无法承载本地的版本。

查看Nacos在GitHub中的版本依赖开一发现,在1.4.1版本开始修改了老版本的客户端代码,所以大家要区分自己需要的版本。

Nacos客户端配置

在此创建的NacosClient服务仅仅代指需要注册到注册中心的微服务。

  • 引入依赖
<dependencies>
    <!--SpringCloud 项目必须基于SpringBoot-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--nacos 依赖-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>
  • 书写配置
server.port=8081
spring.application.name=NACOSCLIENT
# 配置总nacos
#spring.cloud.nacos.server-addr=${ip}:8848
# 单纯配置注册中心的路径
spring.cloud.nacos.discovery.server-addr=${ip}:8848
# 服务名 ,默认为SpringBoot服务名,所以可以不写
#spring.cloud.nacos.discovery.service=${spring.application.name}
  • 入口类添加注解
@SpringBootApplication
// 该注解表示根据配置文件来讲服务注册到相应的注册中心中,从20版本以后就可以不用写了
//@EnableDiscoveryClient
public class NacosClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosClientApplication.class,args);
    }
}

**【注】:**如果发现启动过程中发现无法连接到Nacos服务,请检查网络以及自己的版本是否可以可以匹配。

Nacos套用OpenFeign

Nacos使用OpenFeign进行服务间通信需要注意一些问题,如下:

<!--nacos-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <!--查看源码发现:SpringCloud在Hoxton.M2 RELEASED 版本之后就舍弃掉了Ribbon,而是使用LoadBalance-->
    <!--所以,不引入对应的LoadBalance会报错,同时,要注意去掉nacos中的ribbon组件,否则会覆盖loadbalance失效-->
    <exclusions>
        <exclusion>
            <groupId>com.netflix.ribbon</groupId>
            <artifactId>ribbon</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!--openfeign-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>

**【注】:**注释里面都说明了,在此不做赘述。

总结

从本篇笔记开始记录的问题,都是基于之前笔记的说明, 所以建议想要学习的同学进行系统的学习。最后,大家一定要对自己使用的版本进行查看。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:17:51  更:2022-03-10 22:19:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:44:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码