微服务的底层数据基本上都是异构的,MySQL、HBase、Redis、ES等等。基本上业务处理都会直接写入MySQL,然后通过订阅binLog的方式来做数据同步。数据处理的时候需要考虑乱序问题。对于要求强一致性的数据一定要携带版号。
收起无论是否采用微服务架构,针对高并发的支持的情况,数据存储可以分为两个阶段:第一持久化存储;第二缓存;针对持久化存储,首先微服务架构的各个服务时分库存储,针对不同的数据类型,可以采用不同的数据持久化引擎,例如关系型数据可以采用mysql做数据持久化引擎,时序数据可以采用influxdb,以及其他擅长存储不同数据类型的持久化引擎。但是需要注意集群化部署时的数据同步,数据备份以及故障切换等问题;针对缓存的,是对数据库的补充,能够有效的避免平凡操作数据库,导致请求延迟增大的效果。
针对数据同步以来CAP原理,首先需要考虑业务需求,需要满足强一致性,还是最终一致性来保证。根据不同的特性,可以选择其他的存储引擎。例如etcd,zookeeper,consul等