让数据也面向对象(微服务治理数据)

kq123321 2019-07-11 原文

让数据也面向对象(微服务治理数据)

随着业务的扩展,系统也逐渐的庞大起来,系统的复杂性也随之增加,开发/维护成本也无限的进行扩张,这时候微服务构架应运而生。微服务的相关知识点这里也不在描述,感兴趣的同学可以在网上进行查询。

 

微服务解决了传统系统设计的耦合性问题,使庞大的系统进行划分为独立的服务,让每个独立的服务可以独立去解决各自的问题,大大减少了系统后期的维护成本,但是也增大前期的设计成本,因为前期如果设计出现问题,后期的开发将会面临各种不可控的问题。这里主要记录下自己对于微服务构架–服务之间处理数据的问题。

 

 

微服模式将传统系统拆分成N多服务之后,每个服务都拥有自己独立的数据库,每个服务各自维护自己的数据库,这样就会出现一个问题,服务之间的数据库如何处理?这里简单描述下比较常见的2种处理办法

 1.传统模型下–添加字段冗余

    服务A中的数据需要依赖服务B中的数据,这时候可以把服务B中的数据冗余在服务A数据中,查询的时候就可以直接查询服务A的数据,不需要进行跨库进行查询,可以节约很多开销。

    这样处理违反正常的范式设计的,数据也没有办法保持一致性。

 2.服务之间数据同步

    服务A中的数据需要依赖服务B中的数据,这时候可以把服务B中的数据同步到服务A中,查询的时候可以直接查询服务A中的数据库,不需要跨库查询。

   这样数据的及时性得不到保证,而且同步数据量过大也会增加服务的负担。

 

在查阅网上多种微服务数据库治理的方法后,感觉都达不到自己的期望。自己考虑后为什么不能用OOP思想去设计微服务的数据库?

我们把微服务中需要使用的数据库分为3类

1.private(私有)

  私有是微服务中独享的数据

2.protected(保护)

  保护就是使用受限的数据

3.public(公开)

  公开是所有服务可以使用的数据

私有数据就是微服务中每个独立服务自己的数据,保护/公开数据是微服务中共享服务的数据。

1.如何处理私有数据,私有数据是服务单独进行维护,其他服务只能通过API进行调用;

 

2.如何处理保护数据,保护数据在共享服务中,微服务中其他服务据需要使用数据需要经过共享服务的验证,是否有权限使用该数据。其他服务如果需要编辑共享数据,在获取共享服务的验证后,共享服务会分发相应的事务锁给其他服务,其他服务编辑好数据后写MQ,共享服务订阅MQ后,根据事务锁进行数据处理;

 

3.如何处理公开数据,公开数据就是微服务中需要耦合查询后数据。处理方式保护数据;

 

上述就是自己对微服务中数据库治理的一些思路想法,欢迎搭建斧正!

发表于 2019-07-11 12:29 追随微笑 阅读() 评论() 编辑 收藏

 

版权声明:本文为kq123321原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/kq123321/p/11169045.html

让数据也面向对象(微服务治理数据)的更多相关文章

随机推荐

  1. 一个师兄学JAVA的心得

      1、要珍惜这样一个能够完全静下心来学习的好机会。最好的学习环境莫过于校园了,有老师可以请教,有同学可以讨论 […]...

  2. 设计模式7大原则

    面向对象设计原则 概述 对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要 […]...

  3. JAVA 集合类小结

    一 集合和数组 因为本人也是个go的爱好者,所以对于集合类算是摸的比较透的。 说到集合,必须了解数组和集合。 […]...

  4. 爬取基础步骤(基础篇)

    接下来我以‘糗事百科’为例进行爬取。 思路: 一.创建一个类(命名方式最好是驼峰式) class QiuShi […]...

  5. CF600E Lomsat gelral 树上启发式合并

    题目描述 有一棵 \(n\) 个结点的以 \(1\) 号结点为根的有根树。 每个结点都有一个颜色,颜色是以编号 […]...

  6. 分享一些思维导图!

    最近看了一些文章的思维导图,发现思维导图是个非常强大的工具。了解了思维导图的作用之后,觉得把它运用到java上 […]...

  7. 大话设计模式笔记の 简单工厂模式

    前言 个人风格系列笔记,不会太详细,不喜勿喷,适用于复习设计模式而做。 概要 一个好的程序猿/媛敲出来的代码应 […]...

  8. nodejs中使用worker_threads来创建新的线程

    目录 简介 worker_threads isMainThread MessageChannel parent […]...

展开目录

目录导航