架构设计上的实践总结

  1. 解决跨区数据一致问题,如果数据库不支持同步,则在业务层做双读或者双写,双读和双写的使用场景不同
  2. 灌库在线数据库,为了减少在线压力,尽量的把压力转移到离线数据库来(例如hbase支持大批量的scan)
  3. 对于读和写的权衡,如果是读多写少,则需要保证读优先,写尽量不要影响读;如果是读少写多,则要尽量避免写写冲突,尽量不要影响写,读的优先级低
  4. 对于数据库,也有读写之间的权衡,牺牲部分读性能的以LSM-tree结构的数据库为准:如leveldb、hbase、pika、rocksdb以及mysql的redo日志;优先读性能的数据库有mysql的myisam引擎(B树,数据存节点上)
  5. 对于升级后做数据兼容,大部分IDL能支持(例如protobuf),但存在某些不支持的数据协议(例如json),这时候需要采取双读或者双写的方式规避不兼容带来的数据不一致问题
  6. 设计原则:架构就是取舍,取舍就存在不确定性,但原则可以遵循:1)合适原则 2)演进原则
posted on 2022-03-25 11:47  bytesmover  阅读(83)  评论(0编辑  收藏  举报