
微服务
文章平均质量分 96
玛卡~巴卡
这个作者很懒,什么都没留下…
展开
-
【分布式事务】深入探索 Seata 的四种分布式事务解决方案的原理,优缺点以及在微服务中的实现
分布式事务是在分布式系统中保持数据一致性的关键问题之一。Seata(Simple Extensible Autonomous Transaction Architecture)是一款开源的分布式事务解决方案,它提供了四种不同的事务模式,分别是XA、AT、TCC、SAGA。本文将深入探讨这四种分布式事务解决方案的原理、优缺点以及应用场景,以帮助开发人员更好地选择适合其项目的分布式事务模式。原创 2023-11-08 16:47:32 · 2728 阅读 · 3 评论 -
【分布式事务】初步探索分布式事务的概率和理论,初识分布式事的解决方案 Seata,TC 服务的部署以及微服务集成 Seata
分布式事务是指在分布式系统中,多个独立的事务操作需要协同工作以维护数据的一致性和完整性。在传统的单机事务中,ACID(原子性、一致性、隔离性、持久性)属性可以轻松满足,但在分布式系统中,由于涉及多个数据存储节点,实现分布式事务变得更加复杂。关键问题包括如何协调各个参与者的事务、如何处理网络分区和节点故障、如何保证全局数据一致性等。因此,分布式事务需要特殊的技术和协议来管理和维护数据一致性,以确保分布式系统的正确运行。原创 2023-11-07 21:05:19 · 1418 阅读 · 0 评论 -
【RabbitMQ】RabbitMQ 集群的搭建 —— 基于 Docker 搭建 RabbitMQ 的普通集群,镜像集群以及仲裁队列
在RabbitMQ中,有不同的集群模式,包括普通模式、镜像模式和仲裁队列。每种模式具有不同的特点和应用场景。原创 2023-11-05 15:20:31 · 4091 阅读 · 2 评论 -
【RabbitMQ】RabbitMQ 消息的堆积问题 —— 使用惰性队列解决消息的堆积问题
消息的堆积问题是指在消息队列系统中,当生产者以较快的速度发送消息,而消费者处理消息的速度较慢,导致消息在队列中积累并达到队列的存储上限。在这种情况下,最早被发送的消息可能会在队列中滞留较长时间,直到超过队列的容量上限。当队列已满且没有更多的可用空间来存储新消息时,新的消息可能无法进入队列,从而导致消息丢失。这种情况下的消息通常被称为死信,因为它们无法被正常消费。原创 2023-11-04 17:24:06 · 4550 阅读 · 1 评论 -
【RabbitMQ】 RabbitMQ 消息的延迟 —— 深入探索 RabbitMQ 的死信交换机,消息的 TTL 以及延迟队列
消息队列是现代分布式应用中的关键组件,用于实现异步通信、解耦系统组件以及处理高并发请求。消息队列可以用于各种应用场景,包括任务调度、事件通知、日志处理等。在消息队列的应用中,有时需要实现消息的延迟处理、处理未能成功消费的消息等功能。本文将介绍一些与消息队列相关的关键概念和技术,包括死信交换机(Dead Letter Exchange)、消息的 TTL(Time To Live,生存时间)、以及使用 DelayExchange 插件实现消息的延迟处理。通过深入理解这些概念和技术,将能帮助我们更好地设计和构原创 2023-11-04 15:53:04 · 2582 阅读 · 0 评论 -
【RabbitMQ】RabbitMQ 消息的可靠性 —— 生产者和消费者消息的确认,消息的持久化以及消费失败的重试机制
在现代分布式应用程序中,消息队列扮演了至关重要的角色,允许系统中的各个组件之间进行异步通信。这种通信模式提供了高度的灵活性和可伸缩性,但也引入了一系列的挑战,其中最重要的之一是消息的可靠性。首先让我们来了解一下,在消息队列中,消息从生产者发送到交换机,再到队列,最后到消费者,有哪些情况会导致消息的丢失?生产者发送的消息未送达交换机;消息到达交换机后未到达队列;MQ 宕机,队列中的消息会丢失;消费者接收到消息后未消费就宕机了。原创 2023-11-02 19:51:26 · 15059 阅读 · 5 评论 -
【微服务】Feign 整合 Sentinel,深入探索 Sentinel 的隔离和熔断降级规则,以及授权规则和自定义异常返回结果
在前文中,介绍了 Sentinel 的流控模式和流控效果,然而限流只是一种预防措施,虽然可以尽量避免因为并发问题而引起的服务故障,但服务仍然可能因其他因素而发生故障。为了将这些故障控制在一定范围内,以避免雪崩效应的发生,我们需要依赖线程隔离(舱壁模式)和熔断降级机制。原创 2023-10-23 22:52:42 · 4758 阅读 · 0 评论 -
【微服务保护】Sentinel 流控规则 —— 深入探索 Sentinel 的流控模式、流控效果以及对热点参数进行限流
微服务架构的流行使得在分布式系统中保障稳定性变得尤为关键。在前文中,已经讨论了微服务中可能出现的雪崩问题以及相应的解决方案。作为确保系统可用性的关键工具之一,Sentinel 应运而生,它是一款功能强大的流量控制组件,为开发人员提供了多种方式来管理和保护微服务。在本文中,我将深入探讨 Sentinel 的核心功能,包括流控模式、流控效果和对热点资源的限流策略。深入了解这些概念,并通过示例演示如何在 Spring Cloud 项目中使用 Sentinel,以便更好地应对各种流量控制和限流需求。原创 2023-10-20 19:23:06 · 3130 阅读 · 0 评论 -
【微服务保护】初识 Sentinel —— 探索微服务雪崩问题的解决方案,Sentinel 的安装部署以及将 Sentinel 集成到微服务项目
微服务架构在现代软件开发中变得越来越重要。它通过将大型应用程序拆分成小而自治的服务单元,使开发、部署和维护变得更加灵活和高效。然而,微服务架构也引入了一些新的挑战,其中之一就是“雪崩”问题。在这篇文章中,我们将探讨什么是雪崩问题,以及如何应对它。雪崩问题是指在微服务架构中,一个微服务的故障可能会引发级联效应,导致整个系统不可用。这个问题可能会对业务造成严重影响,因此了解如何预防和处理雪崩问题至关重要。此外,还将介绍 Sentinel 框架,这是一款由阿里巴巴开源的微服务流量控制组件。原创 2023-10-20 16:32:23 · 1164 阅读 · 0 评论 -
【ElasticSearch】深入探索 ElasticSearch 对数据的聚合、查询自动补全、与数据库间的同步问题以及使用 RabbitMQ 实现与数据库间的同步
在本文中,我们将深入探讨 ElasticSearch 在数据处理中的关键功能,包括数据聚合、查询自动补全以及与数据库的同步问题。首先,我们将聚焦于 ElasticSearch 强大的聚合功能,解释什么是聚合以及如何通过 DSL 语句和 RestClient 实现各种聚合操作。这一功能能够让我们更深入地了解和分析存储在 ElasticSearch 中的数据。随后,我们将介绍查询自动补全功能,重点探讨拼音分词器、自定义分词器,以及如何通过 DSL 实现搜索的自动补全功能。原创 2023-10-13 21:36:09 · 1016 阅读 · 12 评论 -
【ElasticSearch】使用 Java 客户端 RestClient 实现对文档的查询操作,以及对搜索结果的排序、分页、高亮处理
在 Elasticsearch 中,通过 RestAPI 进行 DSL 查询语句的构建通常是通过中的resource()方法来实现的。该方法包含了查询、排序、分页、高亮等所有功能,为构建复杂的查询提供了便捷的接口。RestAPI 中构建查询条件的核心部分是由一个名为的工具类提供的。该工具类包含了各种查询方法。原创 2023-10-11 22:40:33 · 1251 阅读 · 1 评论 -
【ElasticSearch】深入探索 DSL 查询语法,实现对文档不同程度的检索,以及对搜索结果的排序、分页和高亮操作
Elasticsearch(简称ES)是一个强大的开源搜索和分析引擎,广泛应用于各种应用程序中,从企业级搜索引擎到日志和指标分析。其强大之处在于其灵活的数据模型和丰富的查询语言,使得用户能够轻松地进行全文检索、精确查询、地理坐标查询等操作。本文将深入探讨Elasticsearch的DSL(Domain Specific Language)查询,分为多个部分进行介绍。原创 2023-10-11 18:55:28 · 1111 阅读 · 0 评论 -
【ElasticSearch】基于 Java 客户端 RestClient 实现对 ElasticSearch 索引库、文档的增删改查操作,以及文档的批量导入
ElasticSearch 官方提供了各种不同语言的客户端,用来操作 ES。这些客户端的本质就是组装 DSL 语句,通过 HTTP 请求发送给 ES 服务器。。在本文中,我们将着重介绍 ElasticSearch Java 客户端中的 RestClient,并演示如何使用它实现对索引库和文档的各种操作。RestClient 是 ElasticSearch 提供的用于与 ElasticSearch 集群进行通信的 Java 客户端。它提供了一种简单而灵活的方式来执行 REST 请求,并处理响应。原创 2023-10-08 19:53:10 · 3352 阅读 · 3 评论 -
【ElasticSearch】基于Docker 部署 ElasticSearch 和 Kibana,使用 Kibana 操作索引库,以及实现对文档的增删改查
Elasticsearch 和 Kibana 是强大的工具,用于构建实时搜索和数据可视化解决方案。Elasticsearch 是一个分布式、高性能的搜索引擎,可以用于存储和检索各种类型的数据,从文本文档到地理空间数据。Kibana 则是 Elasticsearch 的可视化工具,用于实时分析和可视化大规模数据集。在本文中,将探讨如何使用 Docker 进行快速部署 Elasticsearch 和 Kibana,搭建一个强大的搜索和分析平台。原创 2023-10-08 18:04:05 · 6924 阅读 · 2 评论 -
【ElasticSearch】深入了解 ElasticSearch:开源搜索引擎的力量
在信息时代,数据的增长速度之快让我们迅速感受到了信息爆炸的挑战。在这个背景下,搜索引擎成为了我们处理海量数据的得力工具之一。而 ElasticSearch 作为一款强大的开源搜索引擎,不仅能够高效地存储和检索数据,还在日志分析、实时监控等领域展现了其卓越的性能。正向索引是基于文档 id 创建索引,适用于小规模数据和简单查询场景。倒排索引通过分析文档内容,记录词条信息,适用于大规模数据和复杂查询场景,提高了查询效率。ElasticSearch 的强大之处在于其面向文档的存储和全文搜索功能。原创 2023-10-07 21:15:16 · 2119 阅读 · 1 评论 -
【Spring AMQP】基于 Spring AMQP 实现简单、工作队列模型,发布订阅模型 Fanout、Direct、Topic ,以及更改 AMQP 的消息转换器
在分布式系统中,消息队列是一种常见的通信方式,用于实现不同模块之间的解耦、异步通信。Spring AMQP 是 Spring 框架对 AMQP(高级消息队列协议)的支持,提供了丰富的 API 和注解,使得在 Spring 项目中使用消息队列变得更加简便。本文将介绍如何基于 Spring AMQP 实现简单队列模型、工作队列模型,以及发布订阅模型的 Fanout、Direct、Topic 的实现。同时,我们还会探讨 AMQP 的消息转换器,以及如何更改默认的消息转换器。原创 2023-10-06 18:08:28 · 1498 阅读 · 1 评论 -
【RabbitMQ】初识消息队列 MQ,基于 Docker 部署 RabbitMQ,探索 RabbitMQ 基本使用,了解常见的消息类型
RabbitMQ 是一个开源的消息代理软件,实现了高级消息队列协议(AMQP)。它允许不同应用之间进行异步通信,并提供了一种有效的方式来处理分布式系统中的大量消息。原创 2023-10-06 12:10:08 · 1156 阅读 · 2 评论 -
【Docker】搭建 Docker 镜像仓库
在 Docker 生态系统中,镜像仓库(Docker Registry)扮演着关键的角色,用于存储和分享 Docker 镜像。镜像仓库有公共的和私有的两种形式,每种形式都有其特定的应用场景。公共镜像仓库Docker HubDocker Hub 是 Docker 公共仓库,是最大的 Docker 镜像仓库之一。它提供了大量的公共镜像供用户使用。你可以在 Docker Hub 上找到官方的基础镜像,也可以找到其他用户分享的各种应用和工具的镜像。国内云服务商提供的公共仓库由于 Docker Hub原创 2023-10-05 13:13:51 · 10227 阅读 · 6 评论 -
【Docker Compose】Docker Compose 的安装,使用以及实现微服务集群的部署
Docker Compose 是 Docker 公司提供的一个用于定义和运行多容器 Docker 应用程序的工具。通过 Docker Compose,可以使用简单的 YAML 文件来配置整个应用程序的服务、网络、卷等各种参数。这样,我们可以轻松实现一键部署和管理多个 Docker 容器,简化了多容器应用的配置和管理。原创 2023-10-05 12:25:59 · 1152 阅读 · 0 评论 -
【Docker】初识 Docker,Docker 基本命令的使用,Dockerfile 自定义镜像的创建
Docker 是一种开源的容器化平台,旨在简化应用程序的开发、交付和部署过程。通过使用容器技术,Docker 能够将应用程序、所有依赖项以及程序运行所需要的环境打包成一个独立的容器。这个容器包含了运行应用所需的一切,包括操作系统、库和代码等等。这种打包的方式使得应用程序在任何环境中都能够以一致的方式运行,从而实现了跨平台、可移植和快速部署的优势。原创 2023-10-05 11:12:10 · 1010 阅读 · 8 评论 -
【Spring Cloud】深入探索统一网关 Gateway 的搭建,断言工厂,过滤器工厂,全局过滤器以及跨域问题
在微服务架构中,网关是至关重要的组件,具有多重职责,为整个系统提供了一系列关键功能。微服务结构图:用户的所有请求首先经过网关,这使得网关成为系统的第一道防线。通过对传入请求的过滤、验证和安全策略的实施,网关确保只有合法的请求能够访问内部的微服务。网关具有路由功能,能够将收到的请求正确地分发给相应的微服务。这种路由机制使得系统更加灵活,同时,网关还结合了负载均衡的特性,确保各个微服务能够平衡地处理请求,提升系统的性能和可用性。作为系统的入口,网关提供了一个统一的接入点,简化了客户端与微服务之间的通信。原创 2023-10-03 17:51:46 · 2308 阅读 · 5 评论 -
【Spring Cloud】基于 Feign 实现远程调用,深入探索 Feign 的自定义配置、性能优化以及最佳实践方案
Feign 提供了一些自定义配置项,可以根据项目的需求进行调整。类型作用说明修改日志级别NONEBASICHEADERSFULL。响应结果的解析器用于解析 HTTP 远程调用的结果,例如将 JSON 字符串解析为 Java 对象。请求参数编码用于将请求参数编码,便于通过 HTTP 请求发送。支持的注解格式定义 Feign 接口中支持的注解格式,默认是 SpringMVC 的注解。失败重试机制控制请求失败的重试机制,默认是没有重试,但会使用 Ribbon 的重试。修改 Feign 的日志级别。原创 2023-10-02 22:39:30 · 3709 阅读 · 0 评论 -
【Spring Cloud】深入理解 Nacos 的统一配置管理,配置热更新,多环境配置共享,集群搭建
在微服务架构中,配置管理是一个至关重要的问题。随着系统规模的扩大,配置的管理和更新变得更加繁琐。Nacos 作为一个全能的服务发现和配置管理平台,为解决这一问题提供了全方位的支持。在本文中,我们将深入理解 Nacos 的配置管理,包括配置的统一管理、热更新、多环境配置共享以及Nacos集群的搭建。原创 2023-09-30 19:14:13 · 3214 阅读 · 0 评论 -
【Spring Cloud】深入探索 Nacos 注册中心的原理,服务的注册与发现,服务分层模型,负载均衡策略,微服务的权重设置,环境隔离
在微服务架构中,服务注册中心是整个体系中的关键组件之一。它负责服务的注册、发现和管理,为微服务之间的通信提供了基础设施。在这方面,Nacos(Namespace Aware Clustered Object Storage)作为一种服务发现和配置管理系统,提供了丰富的功能,旨在简化微服务架构中的服务注册、配置管理以及服务元数据的处理。是一个开源的、易于配置的、多功能的服务发现和配置管理系统。它由阿里巴巴开发,提供了一种简化微服务架构中服务发现、动态配置和服务元数据的解决方案。原创 2023-09-30 12:32:33 · 3495 阅读 · 8 评论 -
【Spring Cloud】Ribbon 实现负载均衡的原理,策略以及饥饿加载
在前文《深入理解 Eureka 注册中心的原理、服务的注册与发现》中,介绍了如何使用 Eureka 实现服务的注册与拉取,并且通过添加注解实现了负载均衡。服务是在何时进行拉取的?负载均衡是如何实现的?负载均衡的原理和策略又是什么?本文旨在深入探讨使用 Eureka 实现负载均衡的原理,为我们理解微服务架构中服务调用的内部机制提供更清晰的认识。通过解答这些疑惑,我们将更好地理解服务发现、负载均衡的运作方式,为构建高性能、稳定的分布式系统打下坚实的基础。Ribbon。原创 2023-09-29 08:52:19 · 2238 阅读 · 0 评论 -
【Spring Cloud】深入理解 Eureka 注册中心的原理、服务的注册与发现
在微服务架构中,服务的注册与发现是至关重要的一环。为了实现这一目标,Eureka 注册中心应运而生。在本篇文章中,我们将深入理解 Eureka 注册中心的原理,以及探讨服务的注册与发现机制。在微服务的协作中,服务之间的远程调用是常见的需求。然而,使用传统的 RestTemplate 远程调用方式存在一些问题,例如耦合度高、维护困难等。为了解决这些问题,我们将探讨如何利用 Eureka 注册中心来优雅地进行服务的注册与发现,从而更好地构建微服务架构。原创 2023-09-27 22:10:13 · 2366 阅读 · 0 评论 -
【Spring Cloud】认识微服务架构,拆分简单的 Demo 实现服务的远程调用
随着互联网技术的不断发展,软件架构也在不断演变,从最早的单体架构逐步演进为分布式架构,再到如今更为灵活和可伸缩的微服务架构。在这个演变的过程中,架构设计逐步从简单向复杂迈进,服务之间的耦合度逐步降低,从而更好地适应了不断变化的业务需求。是一套在分布式系统中快速构建微服务架构的开发工具集。它提供了一系列的工具和组件,使得开发者能够轻松地在分布式系统中构建各种微服务,并解决微服务架构中的一些常见问题,如服务发现、配置管理、负载均衡、熔断器等。原创 2023-09-27 18:22:25 · 682 阅读 · 0 评论