一.理想的集成应该是什么样的? 1.避免破坏性修改 如果在一个微服务的响应中添加一个字段,服务的消费方不应该受到影响. 2.保证API的技术无关性 微服务之间的通信应该是与技术无关的. 3.使服务的消费方易于使用 如果消费方使用该服务比登天还难,那么无论该微服务多漂亮都没用任何意义.但同时,易于使用的服务可能内部封装了很多细节,这会增加耦合. 4.隐藏内部实现细节 消费方与服务方的内部细节应该是分开的,如果与细节绑定,则意味着改变服务内部的一些变化,消费方也要跟着修改,这会增加修改的成本. 二.
1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类: Netty是否可以做推送服务器? 如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端? 使用Netty开发推送服务遇到的各种技术问题. 由于咨询者众多,关注点也比较集中,我希望通过本文的案例分析和对推送服务设计要点的总结,帮助大家在实际工作中少走弯路. 1.2. 推送服务
一.测试象限(Brain Marick) 二.测试金字塔(Mike Cohn) 1.单元测试 通常只测试一个函数或方法调用,通过TDD或者基于属性而写的测试就属于这一类,在UnitTest中,我们不会启动服务,对且对外部文件和网络连接的使用也很有限,通常我们需要大量的单元测试. 单元测试是帮助开发人员,是面向技术而非业务的. 2.服务测试 对于包含多个服务的系统,一个服务测试只测试其中一个单独服务的功能.只测试一个单独的服务可以提高测试的隔离性,这样我们可以更快地定位并解
什么样的服务才是好的服务? 高内聚.松耦合的服务才是好的服务.简而言之,就是把相关性强的放在一起,相关性不强的分开,物以类聚,人以群分,服务的划分也是这样.这就需要确定什么要放在一起,什么是要分开的,这个寻找的过程就是确定服务边界的过程. 限界上下文 限界上下文确定了这个边界内它所承担的职责. Evans在<领域驱动设计>中作喻:细胞之所以会存在,是因为细胞膜定义了什么在细胞内,什么在细胞外,并且确定了什么物质可以通过细胞.这是限界上下文的绝好比喻. 任何一个给定的领域都包含多个限界上下文.限
微服务设计中提到服务间常见的PRC 有如下几种:SOAP.Thrift.Protocol Buffers. 为了搞清楚几种RPC背后的机理以及应用场景,特意研究了一番: SOAP(Simple Object Access Protocol) 简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分: SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架: SOAP编码规则(encod
系列文章目录: <微服务设计>读书笔记大纲 改变思维的角度:故障无处不在 当微服务规模化后,故障是无可避免的,以往我们总是想尽力避免故障的发生,而当故障实际发生时,我们往往束手无策.我们花了很多时间在流程设计和应用设计的层面上来阻止故障的发生,但实际上很少花费时间思考如何第一时间从故障中恢复过来. 一些公司喜欢组织活动,活动当天系统会被关掉以模拟故障发生,然后不同团队演练如何应对这种情况.这些项目中最著名的是混乱猴子(Chaos Monkey),在一天的特定时间随机停掉服务器,
cha1:微服务的概念--<微服务设计>读书笔记 cha2:微服务架构师的职责--<微服务设计读书笔记> cha3:建模:确定服务的边界--<微服务设计>读书笔记 cha4:微服务集成--<微服务设计>读书笔记 服务的协作:服务间的消息传递--<微服务设计>读书笔记 cha5:拆分:分解单块系统--<微服务设计>读书笔记 cha6:部署:持续集成(CI)与持续交付(CD)--<微服务设计>读书笔记 cha7:测试--<
原文:http://www.infoq.com/cn/articles/netty-million-level-push-service-design-points 1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类: Netty是否可以做推送服务器? 如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端? 使用Netty开发
最近在看<微服务设计>这本书.记录下自己的心得体会. 豆瓣:https://book.douban.com/subject/26772677/ 1.主题脉络 第一章 微服务:阐述了微服务的特点,以及带来的好处: 第二章 演化式架构师:描述了架构师的工作内容和若干准则,非常有参考价值. 第三章 如何建模服务 :好服务的标准?以及如何拆分服务的方法:上下文边界+业务概念沟通 第四章 集成:分享了服务间的协作方式,以及服务的版本管理 第五章 分解单块系统:更细的阐述拆分服务的方面. 第六章 部署:服