共有 432 篇文章
在微服务架构下,你的服务可能由不同的团队提供和维护,在这种情况下,接口的开发和维护可能会带来一些问题,比如服务端调整架构或接口调整而对消费者不透明,导致接口调用失败。 为解决这些问题,Ian Robinson提出了一个以服务消费者定义契约为驱动的开发模式:“Consumer-Driver ContractsCDC”,就是:消费者驱动契约。...
前言 我们知道Eureka分为两部分,Eureka Server和Eureka Client。Eureka Server充当注册中心的角色,Eureka Client相对于Eureka Server来说是客户端,需要将自身信息注册到注册中心。本文主要介绍的就是在Eureka Client注册到Eureka Server时RetryableClientQuarantineRefreshPercent...
虽然之前在《Spring Cloud构建微服务架构》系列文章中介绍了Hystrix服务降级http://blog.didispace.com/spring-cloud-starter-dalston-4-1与Hystrix断路器http://blog.didispace.com/spring-cloud-starter-dalston-4-3的概念。但是,还是一直收到这样的提问:降级与熔断区别是什...
对于一个程序员,往往长期面对电脑,久坐不动,缺少运动,不合理的饮食习惯,熬夜等等。这些不良的生活习惯,往往导致程序员健康出现一些问题,如颈椎病,背部疼痛,腕管综合征等等。 《程序员健康指南》的目标是帮助程序员从一个周身疼痛,病弱且极有可能脾气暴躁的黑客,转变为一个快乐高效的程序员。这本书主要包括 - 对了解自身健康情况的一些测试方法。 - 改善健康情况的建议。...
在前两篇博客搭建攻略中,主要介绍了博客平台的选择以及写博的常用工具。作为本系列的最后一篇,可能也是大家最感兴趣的一篇,我将给大家介绍一下在博客编写过程中,是如何创造收益的。 下面,以我个人为例,总结一下我写博的同时所创造的一些收益。我的收益大致可以分为两类:广告收益和知识付费。由于我的博客与微信公众号的内容同步,所以也一起说一下。 广告收益...
在完成了博客的搭建之后,我们后续的主要任务就是创作内容了。而创作的过程中,我们又会有一系列的问题,比如:我们用什么工具来编写文章呢?怎么样才能画出一些高逼格的图片呢?这些图片的存储和处理怎么办呢?文章中的代码高亮如何实现呢? 要解决这些问题其实并不难,无非就是引入不同的工具来帮助我们,好的工具可以让我们的创作事半功倍!下面就来介绍下我常用的几个工具吧。 Markdown编辑器...
虽然在大学生涯就有开始写技术博客,但是一直都是三分钟热度,断断续续的在一些大平台上记录过一些内容,最终也都不了了之。真正开始搭建属于自己的博客(didispace.com)和分享技术内容是从2016年1月开始的,积累至今也有1年多的时间。在写博的过程中,除了内容本身的收获之外,还获得了很多其他方面的经验,而这些经验主要来自于对博客内容编辑的一些强迫症。...
九、通信协议使用的陷阱 在微服务架构体系中要求每个服务都是独立布署,这就意味着服务之间会有通信,也就是说会有很多的远程访问。 当你不知道这些远程访问需要多长时间的时候,就会掉入到这个陷阱,当然我们可以假定远程访问一次50毫秒,但我们是否真正的进行过测试呢?那么服务的平均响应时间是多少呢?即使有看上去很好的平均响应时间,那么糟糕的“长尾延迟”也会将整体系统摧毁。 9.1 延迟测量...
一、数据驱动的迁移反模式 微服务会创建大量小的、分布式的、单一用途的服务,每个服务拥有自己的数据。这种服务和数据耦合支持一个有界的上下文和一个无共享数据的架构,其中,每个服务及其对应的数据是独立一块,完全独立于所有其他服务。服务只暴露了一个明确的接口(服务契约)。有界的上下文可以允许开发者以最小的依赖快速轻松地开发,测试和部署。...
六、无因的开发者陷阱 名字来自詹姆斯·迪恩演的电影《无因的反叛》(Rebel Without a Cause),一个问题青年因为错误的原因做了错误的决定。 很多架构师和开发者在微服务的开发中权衡利弊, 比如服务粒度和运维工具,但是基于错误的原因,做了错误的决定。 6.1 做出错误的决定 图6-1说明了一种情况是通过测试发现服务划分的太细了,因此非常影响性能,主要是由于服务划分的太细导致增加了通信工...