pa66用途障车做网站,信息科技公司网站怎么做,网站建设基本完成,可以推广的软件有哪些来自Stitch Fix团队的工程副总裁Randy Shoup在QCon纽约2017会议上讨论了如何在基于微服务的应用中管理数据和隔离持久化。他还介绍了将事件#xff08;Event#xff09;作为微服务的第一类构造。他介绍自己的团队将机器学习技术应用到了业务的各个组成部分#xff0c;比如购…来自Stitch Fix团队的工程副总裁Randy Shoup在QCon纽约2017会议上讨论了如何在基于微服务的应用中管理数据和隔离持久化。他还介绍了将事件Event作为微服务的第一类构造。他介绍自己的团队将机器学习技术应用到了业务的各个组成部分比如购买、库存管理以及风格推荐等。
个性化推荐会基于库存运行机器学习从而创建出推荐的算法。这些推荐算法随后会被全国范围内的设计师所监管从而形成个性化风格的推荐。
微服务架构是渐进演化的。像eBay、Twitter和Amazon这样的组织都经历了一些架构的迭代从单体应用转换成了微服务。
微服务除了具有单一的目的、定义良好的接口、模块化和独立性之外还需要负责隔离持久化。Shoup讨论了一些持久化的方式比如操作自己的数据存储或使用持久化服务。在第一种方式中会将数据存储在自己的数据库实例中这个实例是由服务团队拥有并进行运维的。而如果采用持久化服务的话我们会将数据存储在数据库的一个单独的模式中由其他团队或第三方供应商以服务的方式进行运维。数据应该是与服务的其他消费者相隔离的。
事件是微服务架构中的第一类构造。它们代表了现实世界是如何运作的并且保证应用符合一定的领域要求比如在金融方面。事件是服务接口的重要组成部分它应该包含服务产生的所有事件以及服务消费的所有事件。
从单体共享数据库抽取微服务一般涉及到如下几个步骤
创建服务服务边界应该包含服务本身以及它所面对的数据库应用要使用服务通过使用新创建的服务让应用与共享数据库解耦将数据转移至私有数据库然后将数据从共享数据库转移至新的私有数据库。这不会对客户端应用造成任何影响因为它们已经不直接依赖于数据库重复操作为应用中需要抽取成独立微服务的其他业务功能采用相同的过程。
Shoup还讨论到微服务用例涉及到共享数据Shared Data、连接join以及事务。
共享数据创建的服务是单一系统记录System of RecordSoR的并且拥有自己的所有数据。数据的其他副本是只读的只是非权威non-authoritative的缓存。为了访问共享数据我们有三个可选方案同步查找一个服务调用另外的服务来获取数据、具有缓存的异步事件或共享元数据库
连接将数据切分为单独的服务会让连接变得很困难。在微服务领域中我们可以在客户端应用中进行数据连接或者是通过监听两个服务的事件创建“物化视图Materialized Views”并在本地存储中维护非规格化denormalized的两个数据集的连接结果。
事务在单体应用中事务管理非常容易但是在微服务架构中却非常困难因为数据被拆分到了多个不同的服务中了。我们可以将事务实现为一种工作流它会按照倒序使用补偿操作从而形成一种回滚机制。很多现实系统已经采用了这种方式比如支付处理和费用审批的系统。这些流程也是采用功能即服务Serverless架构的理想候选方案。
原文地址http://www.infoq.com/cn/news/2017/07/managing-data-in-microservices .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注