天天看点

架构与思维:分布式环境下,互斥性与幂等性问题,分析与解决方案

作者:猿之生活JAVA技术学堂

创作不易,关注、点赞,分享,转发,评论,收藏,掌握互联网前沿知识,支持一下,谢谢。

架构与思维:分布式环境下,互斥性与幂等性问题,分析与解决方案

分布式场景下概述

架构与思维:分布式环境下,互斥性与幂等性问题,分析与解决方案

随着互联网信息技术的快速发展,数据量越来越大,业务逻辑越来越复杂,系统高并发访问和海量数据处理的场景越来越多。

如何以较低的成本实现系统的高可用性、可扩展性和可扩展性非常重要。

为了解决系统架构的性能问题,系统架构也在不断发展。

分布式系统由通过网络松散耦合的独立服务器组成。

分布式系统具有以下特征:

1.可扩展性:通过水平扩展可以提高系统的性能和吞吐量。

2.高可靠性:高容错性,即使一个或几个系统出现故障,系统仍能提供服务。

3.高并发:每台机器并行独立处理和计算。

4.廉价高效:多台小型机代替单台高性能计算机。

基于分布式系统的这些特征,最经典的有两个问题:

1、互斥性问题。

2、幂等性问题。

分布式存储系统中的一致性问题

为了保持系统的高可用,同时增加读操作的并发性,同一份数据会有多份副本,不同的副本存储于不同的节点上

架构与思维:分布式环境下,互斥性与幂等性问题,分析与解决方案

微服务应用的分布式一致性问题

微服务架构下,原有的单体应用按功能被拆分成一个个微服务应用,每个微服务应用被部署在不同的机器节点上,只完成原有单体应用的某一部分功能,操作属于该业务功能的数据库或表。

架构与思维:分布式环境下,互斥性与幂等性问题,分析与解决方案

一致性类型

架构与思维:分布式环境下,互斥性与幂等性问题,分析与解决方案

互斥的

互斥是对共享资源的抢占,保证了对共享资源的序列化访问。最常用的是synchronized和lock,两个内置的锁,适用于单个进程的多线程。

分布式系统中的程序如何互斥访问关键资源?

基于zookeeper的分布式锁具有以下特点:

1.顺序节点:可以避免群体奇袭效应。

2.临时节点:为避免机器停机,锁不能被释放。

3.watch机制:可以及时唤醒等待的线程。

架构与思维:分布式环境下,互斥性与幂等性问题,分析与解决方案

分布式锁在日常Coding中已经很常用。但是分布式锁这方面的知识依然非常深奥。

幂等性

幂等性指的是,使用相同参数对同一资源重复调用某个接口的结果与调用一次的结果相同。

架构与思维:分布式环境下,互斥性与幂等性问题,分析与解决方案

常见幂等性问题

1、重复下单

2、重复消费

3、发送短信

4、form表单提交

5、接口超时重试

继续阅读