首页 > 其他分享 >微服务设计:分解单块系统

微服务设计:分解单块系统

时间:2023-07-01 18:57:08浏览次数:51  
标签:服务 要么 单块 分离 外键 分解 设计 数据库

限界上下文就是一个非常好的接缝,因为它的定义就是组织内高内聚和低耦合的边界。
数据库是所有杂乱依赖的源头
打破外键关系,把外键约束从数据库转移到代码中实现。这也就意味着,我们可能需要实现跨服务的一致性检查,或者周期性触发清理数据的任务。
表结构分离后,对于原先的某个动作而言,对数据库的访问次数可能会变多。因为以前简单地用一个SELECT语句就能得到所有的数据,现在则需要分别从不同的地方拿到数据,然后在内存中进行连接。还有,分成两个表结构会破坏事务完整性,这会对应用程序造成很大的影响。先分离数据库结构但不分离服务的好处在于,可以随时选择回退这些修改或是继续做,而不影响服务的任何消费者。我们对数据库分离感到满意之后,就可以考虑对整个应用程序的分离了。
事务是很有用的东西,它可以保证一些事件要么都发生,要么都不发生。在插入数据库时这一点非常有用,因为它允许我们对多个表同时进行修改,而且一旦发生任何错误,所有的操作都会被回退,从而保证数据库不会处于一个不一致的状态。一个事务可以帮助我们的系统从一个一致的状态迁移到另一个一致的状态:要么全部做完,要么什么都不变。
我们可以,也一定会犯错误,需要接受这个事实。但是另外一件我们应该做的事情是,理解如何降低这些错误所造成的影响。

标签:服务,要么,单块,分离,外键,分解,设计,数据库
From: https://www.cnblogs.com/hellosnow/p/17519717.html

相关文章

  • C/C++《数据结构课程设计》题目[2023-07-01]
    C/C++《数据结构课程设计》题目[2023-07-01]《数据结构课程设计》题目一、【大数四则运算】——线性表[习题描述]设计—个实现任意长的整数进行四则运算和幂次运算的演示程序。[基本要求]利用双向循环链表实现大数的存储,每个结点含一个整型变量。[实现提示]实现原理:任何一......
  • SAP Commerce Cloud 的 Footer 区域设计
    我们访问Spartacus首页,发现从后台请求的templateid为:LandingPage2Template我们研究这个CMS请求的响应:https://localhost:9002/occ/v2/electronics-spa/cms/pages?lang=en&curr=USD发现一个名(Name)叫Footer的Slot:这个slot里包含了很多Component,其中之一就是Fo......
  • SAP CRM My Note 应用的设计要点概述
    SAPCRMFiori(客户关系管理)是SAP提供的一套基于Fiori用户体验的客户关系管理应用程序。Fiori是一种现代化的、响应式的用户界面,为用户提供了一个直观、一致的体验。在SAPCRMFiori应用中,MyNotes应用是一个允许用户添加、查看和管理个人笔记的工具。MyNotes应用的主要......
  • 快速使用Python-Tkinter设计界面 方法与代码
    作者:干饭小熊猫链接:https://www.zhihu.com/question/68663671/answer/2519875621来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1简介1.1Tkinter是什么?Tkinter是Python自带的GUI库,Python的IDEL就是Tkinter的应用实例。Tkinter可以看作是Tk......
  • 参考资料------ 快速使用Python-Tkinter设计界面 方法与代码-20230701
    作者:干饭小熊猫链接:https://www.zhihu.com/question/68663671/answer/2519875621来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1简介1.1Tkinter是什么?Tkinter是Python自带的GUI库,Python的IDEL就是Tkinter的应用实例。Tkinter可以看作是Tk......
  • 一周课程学习总结1【关于Linux和c语言程序设计】
    前言这周是我正式开始学习嵌入式的第一周,首先学习了c语言环境的安装,简单的了解了Linux,然后学习了c语言程序设计的部分内容。下面是对这周学习内容的一些总结和我的个人理解,如有不对之处还请指出。LinuxLinux优点:1)开放性;2)完全免费;3)多用户;4)多任务;5)良好的用户界面;6)设备独立......
  • 游戏开发中新手引导的设计思路
    ​ 在制作一款游戏过程中,在核心玩法完成后,下一个任务就轮到了新手引导,这篇文章主要记录下在完成新手引导过程中碰到的一些问题和想法。​ 当时项目组内使用的是用反遮罩的方式来凸显交互位置,引导玩家点击,在制作引导表格的时候需要手动输入遮罩的座标以及宽高范围,十分麻烦。然后我......
  • 微服务设计:集成
    如果使用同步通信,发起一个远程服务调用后,调用方会阻塞自己并等待整个操作的完成。如果使用异步通信,调用方不需要等待操作完成就可以返回,甚至可能不需要关心这个操作完成与否。同步通信听起来合理,因为可以知道事情到底成功与否。异步通信对于运行时间比较长的任务来说比较有用,否......
  • PPT| 智慧校园顶层设计规划方案P71
    PPT总共有71页,受篇幅有限,有需要PPT的同学关注:智慧城市之家......
  • Java的MVC设计模式,带你深刻理解MVC
    什么是MVC?就是ModelViewControl,模型视图控制器。MVC流程图解1.MVC概念:MVC本来是存在于Desktop程序中的,M(Model)是指数据模型,V(View)是指用户界面,C(Control)是控制器。使用MVC的最直接目的就是将M和V实现代码分离,C则是确保M和V的同步,一旦M改变,V应该同步更新。2.MVC工作方......