分布式系统的开发问题

一、分布式系统中,如果保证访问的幂等性

解决办法和保证消息的幂等性方式一样,例如解决同一个订单多次请求。解决办法就是首先通过雪花算法生成一个全局唯一的订单ID,然后在写入的时候判断数据库里面是否已经insert该订单ID,如果有了就直接放弃insert操作。

二、分布式系统中,如何保证任务的顺序性

两种办法:

1.中间添加一个服务,通过该该服务来控制他们的调用顺序,这个服务奖消息发送给mq,从而保证消息的顺序性。

2.使用分布式锁

三、分布式协调各个服务之间的调用

四、通过zookeeper实现HA高可用

 这个应该是很常见的,比如hadoop、hdfs、yarn等很多大数据系统,都选择基于zk来开发HA高可用机制,就是一个重要进程一般会做主备两个,主进程挂了立马通过zk感知到切换到备用进程。

五、分布式session的数据问题

本人建议将数据放入的redis里面,其他机器请求的时候直接去redis里面读数据。

六、分布式事务的解决办法

spring+JTA来实现两阶段的事务处理--》先询问各个服务是否能够执行--》然后在执行,提交

TTC方案,手写业务回滚。

通过消息中间件进行回滚。

发布了469 篇原创文章 · 获赞 94 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/qq_37909508/article/details/102283817