一、分布式系统中,如果保证访问的幂等性
解决办法和保证消息的幂等性方式一样,例如解决同一个订单多次请求。解决办法就是首先通过雪花算法生成一个全局唯一的订单ID,然后在写入的时候判断数据库里面是否已经insert该订单ID,如果有了就直接放弃insert操作。
二、分布式系统中,如何保证任务的顺序性
两种办法:
1.中间添加一个服务,通过该该服务来控制他们的调用顺序,这个服务奖消息发送给mq,从而保证消息的顺序性。
2.使用分布式锁
三、分布式协调各个服务之间的调用
四、通过zookeeper实现HA高可用
这个应该是很常见的,比如hadoop、hdfs、yarn等很多大数据系统,都选择基于zk来开发HA高可用机制,就是一个重要进程一般会做主备两个,主进程挂了立马通过zk感知到切换到备用进程。
五、分布式session的数据问题
本人建议将数据放入的redis里面,其他机器请求的时候直接去redis里面读数据。
六、分布式事务的解决办法
spring+JTA来实现两阶段的事务处理--》先询问各个服务是否能够执行--》然后在执行,提交
TTC方案,手写业务回滚。
通过消息中间件进行回滚。