springboot第54集:思维导图后端知识点微服务分布式架构周刊

这篇具有很好参考价值的文章主要介绍了springboot第54集:思维导图后端知识点微服务分布式架构周刊。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

BigDecimal num1 = new BigDecimal('0.1');
BigDecimal num2 = new BigDecimal('0.2');
BigDecimal sum = num1.add(num2);
BigDecimal product = num1.multiply(num2);

mysql: innodb和myisam有什么区别?

InnoDB和Myisam是MySQL数据库中两种非常流行的存储引擎,主要存在四大区别:

  1. 事务支持能力不同:InnoDB支持ACID事务。所以可以处理高级别的数据完整性和可靠性。而MyISAM不支持事务,所以MyISAM在处理需要高度数据完整性的操作时不如InnoDB可靠。

  2. 锁定机制不同:InnoDB使用行级别锁定,所以在并发读写操作时性能更好,尤其是对于在线事务处理类型的应用,比如并发量大的实时系统。而MyISAM使用表级锁定。这可能在高并发的情况下导致性能问题,因为当一条记录被修改时,整个表都会被锁定。

  3. 数据完整性和恢复能力不同:InnoDB提供了外键约束来维护数据完整性,支持崩溃后的自动恢复。但是MyISAM不支持外键,并且在系统崩溃后恢复数据也更加困难。

  4. 存储结构,InnoDB是把数据存储在表空间中的,所以可以更好地处理大型数据库。而MyISAM是把数据存储在独立的文件里,每个表一个文件,适合读密集型的应用。

总的来说,InnoDB是一个更优秀的存储引擎,提供了事务支持,行级锁定和数据完整性,非常适合需要高并发和高可靠性的系统。

mysql什么是索引,底层原理是什么?

索引是数据库重要的概念之一,用于快速定位和访问数据表中的数据。它类似于书籍的目录,可以加速数据的检索过程,不需要扫描整个数据表,索引基于一个或多个列构建,能提高查询数据的效率。

对于业务系统的查询效率提升有非常大的帮助:

-- customers 表的 customer_id 和 orders 表的 customer_id 都有索引
SELECT customers.customer_id, orders.order_date
FROM customers
JOIN orders ON customers.customer_id = orders.customer_id
WHERE customers.customer_id = 101;

对于业务系统的查询效率提升有非常大的帮助,复杂的查询,比如带有JOIN或WHERE子句的查询,索引可以显著提高查询速度。可以优化UPDATE和DELETE的操作。

UPDATE customers
SET address = '新地址'
WHERE customer_id = 123;

因为这些增删改操作都需要先查找目标数据再进行操作。

如何实现索引:有两种重要的实现方式。B树和B+树。B树是一个平衡的多路搜索树,它的所有叶节点都在同一层。每个节点包含多个键(key),和指向子节点的指针,B树保证了每个节点的键和子节点树,在预定范围内,B+树是B树的变种,所有的数据记录都存储在叶子节点,内部节点仅存储键值,也就是非叶子节点不存储实际数据。仅存储键值。这些键值作为分隔值,指导搜索操作向下走向正确的分支,而叶节点之间以指针相连,形成一个链表。相比于B树,B+树的查询效率更加稳定,因为所有的查询都要到达叶子节点,由于叶子节点形成链表,B+树也特别适合于顺序遍历操作。

事务的四大特性是什么

MySQL事务的四大特性指的就是:原子性,一致性,隔离性,持久性。

原子性:指的就是事务被视为不可分割的最小单元,一个事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用回滚日志来实现,回滚日志记录着事务所执行的修改操作。

隔离性指的就是一个事务所做的修改在最终提交一起,对其它事务是不可见的。

一致性指的就是数据库的数据在事务执行前后都保持一致性状态。在一致性状态下,所有事务对同一个数据的读取结果都是相同的。

一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。

系统发生崩溃可以用重做日志进行恢复,从而实现持久性。与回滚日志记录数据的逻辑修改不同,重做日志记录的是数据页的物理修改。

事务的ACID特性,不是很好理解:原子性,一致性,隔离性,持久性。

只有满足一致性,事务的执行结果才是正确的。在无并发的情况下,事务串行执行,隔离性一定能够满足。此时只要能满足原子性,就一定能满足一致性。在并发的情况下,多个事务并行执行,事务不仅要满足原子性,还需要满足隔离性,才能满足一致性。事务满足持久化是为了能应对系统崩溃的情况。

什么是面向对象

面向对象是一种思想,世间万物都可以看做一个对象,Java是一个支持并发、基于类和面向对象的计算机高级编程语言。面向对象软件开发具有的优点有:1. 代码开发模块化,更易维护和修改;2. 代码复用性强;3. 增加代码的可读性。

面向对象有三大特征:封装,继承,多态。

封装就是给对象提供了隐藏内部特性和行为的能力;对象提供一些能被其他对象访问的方法,来改变它内部的数据;在Java当中有4种修饰符:default,public,private,protected。每一种修饰符给其他的位于同一个包或者不同包下面对象,赋予了不同的访问权限。

default: 同包中;public:都可以;protected:不同包,不是继承子类;private:同类中成员

继承就是给对象提供了以基类获取字段和方法的能力。继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。

多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作,可以应用到其他类型的值上面。

多态中,父类作为形参的方法和子类作为形参的方法都是一样的。形参父类类型可以接收子类对象。这是多态的特性。

DDD到底是什么

三层架构:模型,视图,控制器

  1. 业务接口层:Module API

  2. 业务逻辑层:VO,Service

  3. 数据访问层:PO,MapperXML,Dao

DDD四层架构:(全称:领域驱动设计,所谓的领域就是特定业务领域的问题和逻辑,驱动指的就是以业务领域的复杂性为核心进行软件设计和开发,和它对比的就是传统的MVC架构),拆分为四层就是表示层,应用层,领域层和基础设施层。

表示层负责与用户交互(处理用户请求)

// 表示层
// Web 控制器:处理HTTP请求
@RestController
public class ArticleController {
 private ArticleApplicationService articleApplicationService;

 @PostMapping('/articles')
 public Article createArticle(@RequestBody ArticleDto articleDto) {
  return articleApplicationService.createArticle(articleDto.getTitle(), articleDto.getContent());
 }
}

应用层负责业务逻辑的执行,但它不包含业务规则或知识,只协调我们接下来的领域层来实现业务用例

// 领域实体:文章
public class Article {
 private Long id; // 值对象
 private String title;
 private String content;

 // 构造函数,getter和setter省略
}

// 领域服务:文章服务
public class ArticleService {
 public Article createArticle(String title, String content) {
  // 领域事件:创建文章的业务逻辑
  return new Article(title, content);
 }
}

而领域层就包含业务逻辑的核心部分,是DDD的关键所在。包括实体(Entity)、值对象(Value Object)、领域服务(Domain Service)、领域事件(Domain Event)等。这一层封装了业务逻辑,定义了业务规则和业务行为。

基础设施层:主要用来连接数据库和各种中间件

// 数据访问接口:文章仓储
public interface ArticleRepository {
 Article save(Article article);
 Article findById(Long id);
}

// 数据访问实现:基于某种数据库的文章仓储实现
public class SqlArticleRepository implements ArticleRepository {
 // 实现数据库操作的细节
}

DDD的特点是强调业务逻辑的重要性,也就是领域层逻辑,更加专注业务,减少沟通成本

  1. 用户接口层:API,DTO

  2. 应用层: Application Service

  3. 领域层:MapperXM Repository Aggregate(Domain Service Entity ValueObject)

  4. 基础层:Repository AOP (缓存 总线 网关 第三方工具 文件 其它)

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

Apache Kafka UI 是一个免费的开源 Web UI,用于监控和管理 Apache Kafka 集群,可方便地查看 Kafka Brokers、Topics、消息、Consumer 等情况,支持多集群管理、性能监控、访问控制等功能。

  1. termQuery("cName.keyword", xxxBO.getCName()):

  • 这是一个精确查询(Term Query),用于匹配 cName.keyword 字段与 depotInfoBO.getCName() 的值相等的文档。

matchPhraseQuery("mobile", xxxBO.getMobile()):

  • 这是一个短语匹配查询(Match Phrase Query),用于匹配 mobile 字段包含与 xxxBO.getMobile() 相等的短语的文档。

termsQuery("xxxId.keyword", xxxBO.getDepotIds()):

  • 这是一个多值查询(Terms Query),用于匹配 xxxId.keyword 字段包含在 xxxBO.getDepotIds() 列表中的文档。

boolQueryBuilder.must(QueryBuilders
            .wildcardQuery("cName.keyword", "*" + depotInfoBO.getCName() + "*"));

Netty是一个用于构建网络应用程序的Java框架。Netty提供了一个抽象的Channel接口,它表示一个可以进行I/O操作的通道,例如网络套接字。

Netty的Channel接口是一个抽象的概念,它提供了统一的API,使得可以在不同的传输协议(如TCP、UDP等)上进行操作。在Netty中,你可以通过不同的Channel实现来处理不同类型的网络通信。

在Netty中,常见的一些Channel实现包括:

  1. NioSocketChannel: 基于Java NIO的Socket通道。

  2. NioServerSocketChannel: 基于Java NIO的ServerSocket通道。

  3. OioSocketChannel: 基于传统的阻塞I/O的Socket通道。

  4. OioServerSocketChannel: 基于传统的阻塞I/O的ServerSocket通道。

连接鉴权

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

连接的客户端信息在Zookeeper创建的临时节点

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

自定义发送心跳包的内容.

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

自定义Netty的channel

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

客户端连接的clientId和channelId的信息在Redis存储的

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

客户端请求Netty服务器地址

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

定义的Kafka的topic

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

基于Netty的websocket消息推送服务器

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

发送心跳间隔以及服务超时剔除

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

消息服务系统架构图

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png

Zookeeper注册的Netty服务器的临时节点

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
sender.addCallback(// 发送成功的回调
        result -> log.info("Send success:offset({}),partition({}),topic({})",// 打印成功消息 发送成功:偏移量({}), 分区({}), 主题({})
                result.getRecordMetadata().offset(),
                result.getRecordMetadata().partition(),
                result.getRecordMetadata().topic()),
        ex -> log.error("Send fail:{}", ex.getMessage()));// 发送失败的回调

Pipeline 是 Netty 中用于处理和拦截事件的容器。在 Netty 中,所有的处理逻辑被组织成一个由多个 ChannelHandler 组成的 ChannelPipelinePipeline 是对这些 ChannelHandler 进行组织和管理的容器。

当数据通过 Channel 时,会经过 ChannelPipeline 中的一系列 ChannelHandler 处理。每个 ChannelHandler 负责处理或者传递事件,这样可以将整个处理逻辑划分为多个小的、可复用的组件。

所以,ChannelPipeline 就是一个处理数据的通道,ChannelHandler 就是处理逻辑的组件。 Netty 的事件模型基于这个概念,通过 ChannelPipeline 将处理逻辑拆分成一系列的 ChannelHandler,方便扩展和管理。

docker pull mrvautin/adminmongo

Installation

  1. Navigate to folder & install adminMongo: git clone https://github.com/mrvautin/adminMongo.git && cd adminMongo

  2. Install dependencies: npm install

  3. Start application: npm start or node app

  4. Visit http://127.0.0.1:1234 in your browser

Note: Node.js version 4.x or above is required

Electron App

adminMongo can also be used as a cross platform Electron application. Due to the size of Electron it will need to be built manually.

To build for Mac:

$ npm run-script packageOsx

To build for Windows:

$ npm run-script packageWin32

To build for Linux:

$ npm run-script packageLinux

Once built, the executable will be in the /releases folder.

springboot第54集:思维导图后端知识点微服务分布式架构周刊,架构,spring boot,微服务,分布式,后端
image.png
public enum HttpStatus {
    CONTINUE(100, "继续"),
    SWITCHING_PROTOCOLS(101, "切换协议"),
    PROCESSING(102, "处理中"),
    CHECKPOINT(103, "检查点"),
    OK(200, "请求成功"),
    CREATED(201, "已创建"),
    ACCEPTED(202, "已接受"),
    NON_AUTHORITATIVE_INFORMATION(203, "非权威信息"),
    NO_CONTENT(204, "无内容"),
    RESET_CONTENT(205, "重置内容"),
    PARTIAL_CONTENT(206, "部分内容"),
    MULTI_STATUS(207, "多状态"),
    ALREADY_REPORTED(208, "已报告"),
    IM_USED(226, "IM Used"),
    MULTIPLE_CHOICES(300, "多种选择"),
    MOVED_PERMANENTLY(301, "永久移动"),
    FOUND(302, "找到"),
    /** @deprecated */
    @Deprecated
    MOVED_TEMPORARILY(302, "临时移动"),
    SEE_OTHER(303, "查看其他"),
    NOT_MODIFIED(304, "未修改"),
    /** @deprecated */
    @Deprecated
    USE_PROXY(305, "使用代理"),
    TEMPORARY_REDIRECT(307, "临时重定向"),
    PERMANENT_REDIRECT(308, "永久重定向"),
    BAD_REQUEST(400, "错误的请求"),
    UNAUTHORIZED(401, "未经授权"),
    PAYMENT_REQUIRED(402, "需要付款"),
    FORBIDDEN(403, "禁止访问"),
    NOT_FOUND(404, "未找到"),
    METHOD_NOT_ALLOWED(405, "不允许使用该方法"),
    NOT_ACCEPTABLE(406, "不可接受"),
    PROXY_AUTHENTICATION_REQUIRED(407, "需要代理身份验证"),
    REQUEST_TIMEOUT(408, "请求超时"),
    CONFLICT(409, "请求冲突"),
    GONE(410, "资源不可用"),
    LENGTH_REQUIRED(411, "需要内容长度"),
    PRECONDITION_FAILED(412, "先决条件失败"),
    PAYLOAD_TOO_LARGE(413, "请求实体过大"),
    /** @deprecated */
    @Deprecated
    REQUEST_ENTITY_TOO_LARGE(413, "请求实体过大"),
    URI_TOO_LONG(414, "请求URI过长"),
    /** @deprecated */
    @Deprecated
    REQUEST_URI_TOO_LONG(414, "请求URI过长"),
    UNSUPPORTED_MEDIA_TYPE(415, "不支持的媒体类型"),
    REQUESTED_RANGE_NOT_SATISFIABLE(416, "请求范围不符合要求"),
    EXPECTATION_FAILED(417, "期望失败"),
    I_AM_A_TEAPOT(418, "我是一个茶壶"),
    /** @deprecated */
    @Deprecated
    INSUFFICIENT_SPACE_ON_RESOURCE(419, "资源空间不足"),
    /** @deprecated */
    @Deprecated
    METHOD_FAILURE(420, "方法失败"),
    /** @deprecated */
    @Deprecated
    DESTINATION_LOCKED(421, "目标被锁定"),
    UNPROCESSABLE_ENTITY(422, "不可处理的实体"),
    LOCKED(423, "已锁定"),
    FAILED_DEPENDENCY(424, "请求的依赖关系失败"),
    TOO_EARLY(425, "操作过早"),
    UPGRADE_REQUIRED(426, "需要升级"),
    PRECONDITION_REQUIRED(428, "要求先决条件"),
    TOO_MANY_REQUESTS(429, "请求过多"),
    REQUEST_HEADER_FIELDS_TOO_LARGE(431, "请求头字段太大"),
    UNAVAILABLE_FOR_LEGAL_REASONS(451, "因法律原因不可用"),
    INTERNAL_SERVER_ERROR(500, "服务器内部错误"),
    NOT_IMPLEMENTED(501, "未实现"),
    BAD_GATEWAY(502, "网关错误"),
    SERVICE_UNAVAILABLE(503, "服务不可用"),
    GATEWAY_TIMEOUT(504, "网关超时"),
    HTTP_VERSION_NOT_SUPPORTED(505, "HTTP版本不支持"),
    VARIANT_ALSO_NEGOTIATES(506, "变体协商"),
    INSUFFICIENT_STORAGE(507, "存储空间不足"),
    LOOP_DETECTED(508, "检测到循环"),
    BANDWIDTH_LIMIT_EXCEEDED(509, "超出
String amount = "10.50";
String amountInCents = new BigDecimal(amount)
                            .multiply(new BigDecimal("100"))
                            .toBigInteger()
                            .toString();

System.out.println(amountInCents);  // 输出:1050


new BigDecimal(amount)  // 将金额(假设为字符串格式)转换为 BigDecimal 类型
    .multiply(new BigDecimal("100"))  // 乘以 100,将金额转换为以分为单位的 BigDecimal 类型
    .toBigInteger()  // 将结果转换为 BigInteger 类型
    .toString();  // 将 BigInteger 转换为字符串

Maven项目的POM文件(Project Object Model,项目对象模型)的一部分。<modelVersion>元素指定了项目所遵循的POM模式的版本。

  • <artifactId>:指定项目的唯一标识符。<version>:指定项目的版本号。<groupId>:指定项目的组织或公司ID,<packaging>:指定项目的打包类型。<name>: 指定项目的名称。<description>: 提供对项目的简要描述。

  • <project.build.sourceEncoding>: 指定项目源代码的编码格式为UTF-8。

  • <project.reporting.outputEncoding>: 指定项目报告输出的编码格式为UTF-8。

  • <java.version>: 指定项目使用的Java版本为1.8。

  • <hutool.version>: 指定项目使用的Hutool库的版本为5.3.0。

  • <groupId>: 指定父项目的组织或公司ID,这里是 org.springframework.boot

  • <artifactId>: 指定父项目的唯一标识符,这里是 spring-boot-starter-parent

  • <version>: 指定父项目的版本号,这里是 2.3.2.RELEASE

<dependencyManagement>
    <dependencies>
        <!-- Spring Cloud Dependencies -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR9</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <!-- Spring Cloud Alibaba Dependencies -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.6.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <!-- Spring Boot 核心依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot</artifactId>
    </dependency>

    <!-- Spring Boot Web Starter,用于构建Web应用 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Kafka Starter,用于集成Kafka消息队列 -->
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
    </dependency>

    <!-- Spring Boot Starter for Redis,用于集成Redis数据库 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

    <!-- Spring Boot Starter for Aspect-Oriented Programming (AOP) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>

    <!-- Spring Boot Starter for Logging -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
    </dependency>
</dependencies>
<dependencies>
    <!-- Spring Cloud Starter for OpenFeign,用于声明式REST客户端 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

    <!-- Spring Cloud Starter for Ribbon,用于负载均衡 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>

    <!-- Spring Cloud Starter for Alibaba Nacos Discovery,用于服务发现 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <exclusions>
            <!-- 排除Nacos客户端,因为Nacos Discovery已经包含了该依赖 -->
            <exclusion>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-client</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- Spring Cloud Starter for Alibaba Nacos Config,用于配置中心 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
</dependencies>
<dependencies>
    <!-- EasyExcel,用于处理Excel文件 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>3.1.1</version>
    </dependency>

    <!-- Spring Cloud Starter for Netflix Eureka Client,用于服务注册与发现 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

    <!-- Spring Cloud Starter for OpenFeign,用于声明式REST客户端 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

    <!-- Spring Cloud Starter for Netflix Hystrix,用于断路器模式 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    </dependency>

    <!-- Spring Cloud Starter for Netflix Hystrix Dashboard,用于Hystrix仪表板 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
    </dependency>

    <!-- Spring Cloud Starter for Zipkin,用于分布式跟踪 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>

    <!-- Spring Cloud Starter for Sleuth,用于分布式追踪 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>

    <!-- Spring Boot Admin Starter Client,用于监控和管理Spring Boot应用 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>2.1.0</version>
    </dependency>

    <!-- Reactor Core,用于响应式编程 -->
    <dependency>
        <groupId>io.projectreactor</groupId>
        <artifactId>reactor-core</artifactId>
        <version>3.2.10.RELEASE</version>
    </dependency>
</dependencies>
<dependencies>
    <!-- MyBatis Spring Boot Starter,用于整合MyBatis和Spring Boot -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.0</version>
    </dependency>

    <!-- PageHelper,用于MyBatis的分页插件 -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.1.3</version>
    </dependency>

    <!-- MyBatis通用Mapper,用于简化MyBatis的开发 -->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper</artifactId>
        <version>3.4.6</version>
    </dependency>

    <!-- Druid,用于数据库连接池和监控 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.12</version>
    </dependency>

    <!-- Jedis,用于连接Redis -->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
    </dependency>

    <!-- springfox-swagger2,用于生成API文档 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.7.0</version>
    </dependency>

    <!-- springfox-swagger-ui,用于提供Swagger UI以查看生成的API文档 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.7.0</version>
    </dependency>

    <!-- Knife4j Spring Boot Starter,用于提供Knife4j的集成支持 -->
    <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>knife4j-spring-boot-starter</artifactId>
        <version>2.0.4</version>
    </dependency>

    <!-- MySQL Connector/J,用于连接MySQL数据库 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.48</version>
    </dependency>
</dependencies>
<dependencies>
    <!-- Apache HttpClient,用于处理HTTP请求 -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.12</version>
    </dependency>

    <!-- Apache HttpMime,用于处理HTTP消息的MIME类型 -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>4.5.12</version>
    </dependency>

    <!-- Gson,用于处理JSON数据 -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>

    <!-- Project Lombok,用于简化Java代码 -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.8</version>
    </dependency>

    <!-- Apache Commons Lang,提供通用的工具类 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.9</version>
    </dependency>

    <!-- DataStax Cassandra Java Driver,用于连接Cassandra数据库 -->
    <dependency>
        <groupId>com.datastax.cassandra</groupId>
        <artifactId>cassandra-driver-core</artifactId>
        <version>3.1.2</version>
    </dependency>

    <!-- CodaHale Metrics,用于收集应用程序的性能指标 -->
    <dependency>
        <groupId>com.codahale.metrics</groupId>
        <artifactId>metrics-core</artifactId>
        <version>3.0.2</version>
    </dependency>

    <!-- Google Guava,提供Java核心库的扩展功能 -->
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>18.0</version>
    </dependency>
</dependencies>
<dependencies>
    <!-- Elasticsearch Transport Client,用于与Elasticsearch集成 -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>transport</artifactId>
        <version>7.11.2</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- Apache Commons Lang,提供通用的工具类 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.9</version>
    </dependency>

    <!-- Apache Commons Collections,提供集合处理的工具类 -->
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
    </dependency>

    <!-- Alibaba Nacos Client,用于服务发现和配置中心 -->
    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
    </dependency>

    <!-- Elasticsearch Java REST Client,用于与Elasticsearch进行REST通信 -->
    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>7.11.2</version>
    </dependency>

    <!-- Elasticsearch Transport Netty4 Client,用于Elasticsearch的Netty4传输客户端 -->
    <dependency>
        <groupId>org.elasticsearch.plugin</groupId>
        <artifactId>transport-netty4-client</artifactId>
        <version>7.11.2</version>
    </dependency>

    <!-- Elasticsearch REST Client,用于与Elasticsearch进行REST通信 -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client</artifactId>
        <version>7.11.2</version>
    </dependency>

    <!-- ClickHouse JDBC Driver,用于连接ClickHouse数据库 -->
    <dependency>
        <groupId>ru.yandex.clickhouse</groupId>
        <artifactId>clickhouse-jdbc</artifactId>
        <version>0.2.4</version>
    </dependency>

    <!-- Elasticsearch REST High-Level Client,用于高级REST通信 -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>7.11.2</version>
    </dependency>

    <!-- MongoDB Java Driver,用于连接MongoDB数据库 -->
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.12.5</version>
    </dependency>

    <!-- Fastjson,用于处理JSON数据 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.75</version>
        <scope>compile</scope>
    </dependency>

    <!-- Hutool All-in-one工具类库,提供丰富的工具方法 -->
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>${hutool.version}</version>
    </dependency>

    <!-- Hutool Core,Hutool的核心工具类库 -->
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-core</artifactId>
        <version>5.6.3</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

加群联系作者vx:xiaoda0423

仓库地址:https://github.com/webVueBlog/JavaGuideInterview文章来源地址https://www.toymoban.com/news/detail-829367.html

到了这里,关于springboot第54集:思维导图后端知识点微服务分布式架构周刊的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • C++ 类和对象(静态的static、友元、内部类、匿名对象、explicit)知识点+完整思维导图+实操图+深入细节通俗易懂建议收藏

    C++ 类和对象(静态的static、友元、内部类、匿名对象、explicit)知识点+完整思维导图+实操图+深入细节通俗易懂建议收藏

            时间的步伐有三种:未来姗姗来迟,现在像箭一样飞逝,过往永远静立不动。本章是类和对象的一个收尾篇,相信通过这三篇类和对象的学习,应该你已经更加清楚了解了C++的类和对象。 话不多说安全带系好,发车啦 (建议电脑观看) 。 附:红色,部分为重点

    2024年02月06日
    浏览(12)
  • C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

    C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

            从本章开始我们正式进入到C++的内容,对此如果没有学习过C语言的建议先将C语言系统的学习一遍后再来(已经更新完在专栏就能看到)。 话不多说安全带系好,发车啦 (建议电脑观看) 。 附:红色,部分为重点部分;蓝颜色为需要记忆的部分(不是死记硬背哈,

    2023年04月24日
    浏览(45)
  • SpringBoot知识范围-学习步骤--【思维导图知识范围】

    SpringBoot知识范围-学习步骤--【思维导图知识范围】

    添加链接描述语言视频选择 收录专辑链接 C 张雪峰推荐选择了计算机专业之后-在大学期间卷起来-【大学生活篇】 JAVA 黑马B站视频JAVA部分的知识范围、学习步骤详解 JAVAWEB 黑马B站视频JAVAWEB部分的知识范围、学习步骤详解 SpringBoot SpringBoot知识范围-学习步骤【思维导图知识范

    2024年02月13日
    浏览(8)
  • 后端知识点:哈夫曼编码

    后端知识点:哈夫曼编码

    字符就是计算机中数据的表现形式。象数字,汉字,字母都是字符。在计算机中,对非数值的文字和其他符号进行处理时,要对文字和符号进行数字化,即用二进制编码来表示文字和符号。其中西文字符最常用到的编码方案有ASCII编码和EBCDIC编码。对于汉字,我国也制定的相

    2023年04月09日
    浏览(10)
  • 后端常使用的中间件知识点--持续更新

    类型 难度 mysql mysql中SQL优化:多角度分析 包学包会,sql优化全过程,刨根分析 redis 多角度剖析redis数据结构及底层实现原理、应用场景 MQ 简单大体说明RabbitMQ的使用(简单版) mybatis 使用JDBC的批量插入百万数据要多少秒 一遍就会的,从0开始在springboot上使用Mybatis对数据库进

    2024年02月13日
    浏览(11)
  • SpringBoot知识点复习

    约定优于配置:Spring Boot鼓励开发人员遵循一组默认约定,减少配置的复杂性。 自动配置:Spring Boot可以自动配置应用程序,根据项目的依赖和需要自动配置Spring特性。 嵌入式Web服务器:Spring Boot提供了内嵌的Web服务器,如Tomcat、Jetty和Undertow,使Web应用程序的部署变得简单。

    2024年02月05日
    浏览(11)
  • 【SpringBoot】SpringBoot2.x知识点杂记

    本文仅供学习交流使用 为什么要使用 Spring Boot 因为Spring, SpringMVC 需要使用的大量的配置文件 (xml文件) 还需要配置各种对象,把使用的对象放入到spring容器中才能使用对象 需要了解其他框架配置规则。 SpringBoot 就相当于 不需要配置文件的Spring+SpringMVC。 常用的框架和第三

    2024年02月03日
    浏览(7)
  • 知识点19--springboot多模块开发

    知识点19--springboot多模块开发

    本篇向大家介绍本系列demo教程中最后一个知识点就是多模块开发,多模块听着高大上,其实就是依靠maven相互之间的依赖,把多个模块融合进一个项目中而已,说的再直白一些就是像日常开发那样把其他模块导入一个模块,这个模块用来启动并调用所有模块而已。下面通过一

    2024年02月06日
    浏览(10)
  • SpringBoot + Vue基本知识点荟萃

    SpringBoot + Vue基本知识点荟萃

    Maven是一个项目管理工具,可以对Java项目进行自动化的构建和依赖管理 项目构建:提供标准的,跨平台的自动化构建项目的方式 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突等问题 统一开发结构:提供标准的,统一的项目开发结构,如下图所

    2023年04月17日
    浏览(23)
  • Springboot实体类entity相关知识点详解

    目录 entity实体类相关知识点详解:       解释1:上面代码使用的注解是 Lombok 提供的注解,用于简化实体类的开发。       解释2:属性的注释自动生成问题:                解释3:java序列化反序列化,实体类实现Serializable接口:                     java序列化和反

    2024年02月08日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包