对分布式一些理解

1,微服务的优缺点

微服务的解决的问题,

  吞吐量,易扩展,小模块的快速开发,解决单点故障多。

缺点,

  单个请求的反应时间变长,需要通过rpc调取多个下游服务。

  部署整条链路复杂,排错,定位问题复杂。

  架构逻辑复杂。

2,分布式一些难点

  1,容易出错,所以需要把错误当成正常逻辑,写在代码里。能处理的,不能处理的抛给调用方,可以忽略的忽略掉。具体情况,具体分析。

  2,监控和全链路追踪日志,需要能快速定位问题,解决问题,需要平时做演练。

  3,需要自动化运维。  

3,分布式保持数据一致性问题

  著名理论cap     数据一致性,可用性,分区容忍性。p是必须按,c和a二选一。

  如果做到数据强一致性,需要分布式锁,分布式事务,保证数据一致性,错误回滚。上下游幂等。加锁期间,服务不可用。

  如果强可用性,数据是最终一致性。这时候异步处理,一般需要消息队列,数据库,缓存等。

  保证数据一致性,上游重试,加下游幂等。事务保证错误回滚。

4,数据库主从不一致怎么处理

  1,拆库拆表,降低并发。

  2,增加缓存,减少数据库访问。

  3,强制读主库。

  4,其他从数据库主从原理方面考虑了。

 

  

 

posted @ 2018-07-27 09:11  程序猿101  阅读(153)  评论(0编辑  收藏  举报