在基于微服务的系统中实现数据库一致性的最佳方法是什么?
在柏林的GOTO,Martin Fowler谈论微服务,他提到的一个"规则"是保留"每服务"数据库,这意味着服务不能直接连接到另一个服务"拥有"的数据库.
这是超级优雅和优雅,但在实践中它变得有点棘手.假设您有一些服务:
现在,客户在您的前端进行购买,这将调用订单管理服务,这将保存数据库中的所有内容 - 没问题.此时,还会拨打忠诚度计划服务,以便从您的帐户中记入/记入积分.
现在,当所有内容都在同一个DB/DB服务器上时,一切都变得简单,因为您可以在一个事务中运行所有内容:如果忠诚度计划服务无法写入数据库,我们可以回滚整个事情.
当我们在多个服务中执行数据库操作时,这是不可能的,因为我们不依赖于一个连接/利用运行单个事务.什么是保持事物一致并过上幸福生活的最佳模式?
我非常渴望听到你的建议!并提前致谢!
我需要在我自己的代码库(自定义PHP库)中集成一个事件调度程序,所以我看看Symfony2和Zend Framework 2正在做什么.
显然,没有用于调度事件的共享接口,因为两个框架都有不同的需求并决定实现自己的代码......所以我有点迷失:我不想重新发明我的个人轮子.
用于实现观察者模式的SPL接口可能有点幼稚,所以我在这里问你:你会做什么?
编辑
由于目前尚不清楚......我想重新使用现有的ED,让开发人员将其注入我的库中.
假设您使用调度程序开发了一个lib,并且您知道您的lib将成为Symfony Bundle的一部分并在ZF项目中重复使用:您肯定希望重新使用Symfony和ZF调度程序,而不是您自己的.
因此,我一直在寻找在主流库中实现的现有调度程序的共享接口,但听起来似乎没有解决方案.
php zend-framework event-dispatching symfony observer-pattern
我想创建一个Jakefile,它编译一些CoffeeScripts来安装NodeJS应用程序.
你是怎样做的?
我尝试过:https: //gist.github.com/1241827
但这是一种微弱的方法,绝对不是优雅的.
任何提示?
我正在使用react-native-firebase并且我想确保用户在应用程序重新启动时保持登录状态。现在我已经通过 hack 完成了(一旦应用程序启动,用户就会自动重新登录),但我想了解是否有更简单的方法来做到这一点。
我看到该setPersistence方法已禁用,尽管我不清楚什么是最佳选择...