@spiritnotes
2016-07-03T14:18:28.000000Z
字数 1237
阅读 1752
读书笔记
软件工程
DOING
微服务是分布式解决方案
领域驱动设计、持续交互、按需虚拟化、基础设施自动化、小型自治团队、大型集群系统
微服务就是一些协同工作的小而自治的服务
在一个单块系统内,通常会创建一些抽象层或者模块来保证代码的内聚性,即单一职责原则。微服务将这个理念应用在独立服务上,根据业务的边界来确定服务的边界。
足够小,而不要过小。服务越小,独立性越小,但是管理大量服务也越复杂。
服务之间均通过网络调用进行通信,从而加强服务之间的隔离性,避免紧耦合。需要考虑什么应该暴露,什么应该隐藏。服务会暴露出API,然后服务之间通过API进行通信。
SOA是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。
软件中我们面临大量的需求变更。我们应该设计出一个合理的框架,在这个框架下可以慢慢演化出正确的系统。更接近城市规划师,模块划分。
考虑不同的服务之间如何交互,或者说保证我们能够对整个系统的健康情况进行监控。
理解债务的层次和其对系统的影响非常重要
专注两个重要概念上:松耦合和高内聚
每个限界上下文的东西可以分成两部分,一部分不需要与外界通信,一部分需要。
限界上下文:一个由显式边界限定的特定职责。
思考限界上下文时,不应该从共享数据的角度来考虑,而应该从这些上下文能够提供的功能来考虑
层次边界划分错误,会导致到处都会进行修改