分布式带来的缺陷以及引入的相关技术!有没有必要引用分布式!

前言

本篇文章主要是自己的一些理解和一些使用过程中的思考。主要就是说明一下springcloud是什么以及分布式系统中遇到的一些麻烦和如何解决。究竟有没有必要来实现分布式系统。

springcloud与分布式系统关系

Spring Cloud与分布式系统之间存在着密切的关系。Spring Cloud是一个基于Spring Boot的企业级云应用开发工具集,它为开发者提供了在分布式系统(如微服务架构)中快速构建应用的一系列解决方案。
在这里插入图片描述

微服务架构支持:Spring Cloud为微服务架构提供了一套全面的解决方案,帮助开发者实现服务的注册与发现、配置管理、服务间调用、负载均衡、断路器、智能路由、微服务监控等关键功能。这些都是构建分布式系统不可或缺的部分。

综上所述,Spring Cloud通过提供一系列开箱即用的组件和服务,极大地简化了分布式系统尤其是微服务架构的开发与运维工作,使得开发者能够更专注于业务逻辑的实现,而不是基础设施的搭建和维护。它是实现高效、可靠分布式系统的一个重要工具集。

springboot 升级springcloud

在这里插入图片描述

分享一些常见的分布式系统遇到的问题和

开发过程中常见的问题。

分布式日志

单体架构中我们的日志系统直接截取调用了谁的功能和服务在一个链路里面很容易看清楚。但是在分布式系统中会有使用分布式日志的需求。将不同系统的日志搜集起来。

分布式事务

常见的处理思想以及方案还是要掌握的。常见的方案最终一致性等方案都会有一定的
常见的seata处理方案。
SpringBoot中使用RocketMQ实现事务消息来保证分布式事务的一致性(有代码)
这个b站也有视频。后续看情况分析一下seata的用法。
在这里插入图片描述

引入重试之后的幂等操作

IM聊天系统为什么需要做消息幂等?如何使用Redis以及Lua脚本做消息幂等【第12期】
自己做过使用redis以及lua脚本做幂等的文章以及视频。
在这里插入图片描述

分库分表

目前还没有视频。有过一篇文章。
【分布式webscoket】IM聊天系统消息如何存储 如何分库分表以及Seata解决事务以及ShardingSphere-Scaling解决数据迁移
有过这样一篇文章。后续自己出一下视频。

分布式系统的两面性

分布式单体?分布式系统产生的原因

分布式单体指的是没有实现微服务架构所追求的高内聚低耦合、独立部署和扩展的能力导致管理和运维的复杂度增加,却没有带来分布式系统应有的优势,比如独立可伸缩性、容错性等。

分布式是面试需要还是技术需要

这个我觉得得看公司规模和使用到的技术。如果公司是分布式单体类似的架构。那么感觉学习到的分布式技术用处也不大。而且工作都搬砖。确实用不到一些更高的技术。但是面试的时候很可能就上来就是高并发项目经验。高并发 的技术。所以感觉实际工作和开发会有一定的障碍。在处理高并发过程中很多的高并发技术需要学习一下。

其他问题

我自己的git项目中会逐渐的把这些东西给补充上

  1. 数据一致性问题:由于网络延迟、节点故障等因素,保持数据一致性是一个挑战。

    解决方案:引入了CAP定理指导下的多种一致性模型(如最终一致性、强一致性),以及分布式一致性算法(如Raft、Paxos)来保证数据的一致性。

  2. 网络通信问题:网络延迟和分区(网络分割)可能导致消息丢失、重复或乱序。

    解决方案:使用消息队列(如RabbitMQ、Kafka)进行异步通信,以及实现重试机制、幂等性设计来确保消息的可靠传递。

  3. 系统复杂性:分布式系统的设计、部署和维护远比单一系统复杂。

    解决方案:采用微服务架构、容器化(Docker)、服务网格(Istio)等技术来管理复杂性,以及DevOps工具链(如Kubernetes)来自动化部署和运维。

  4. 故障检测与恢复:节点故障频繁,需要快速检测并恢复。

    解决方案:健康检查机制、心跳检测、容错设计(如冗余部署)、自动故障转移等技术。

  5. 性能瓶颈:数据分布和网络通信可能成为性能瓶颈。

    解决方案:负载均衡(如Nginx、HAProxy)、缓存技术(如Redis、Memcached)、数据分片和分区等优化措施。

  6. 安全性问题:分布式系统增加了攻击面,数据传输和存储安全成为重点。

解决方案:加密传输(HTTPS、TLS)、身份认证(OAuth、JWT)、访问控制(RBAC)、安全审计等措施。

引入的相关技术

分布式协调服务:Zookeeper、Etcd,用于分布式锁、配置管理、服务发现等。
分布式事务处理:如Seata、分布式事务框架,支持TCC、SAGA等模式。
服务治理框架:Spring Cloud、Dubbo,提供服务注册与发现、负载均衡、断路器等功能。
监控与日志管理:ELK Stack、Prometheus+Grafana,用于系统监控、日志收集与分析。
API网关: Kong、Apigee,用于统一接入、安全控制、流量管理。
分布式数据库:Cassandra、MongoDB、TiDB,针对大规模数据存储和访问设计。
通过这些技术和策略,可以有效缓解分布式系统中的缺陷,提升系统的稳定性和效率。

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值