微服务
微服务
软件求生
这个作者很懒,什么都没留下…
展开
-
微服务:微服务的交互模式。
本文介绍微服务之间交互的通用设计模式,这些设计模式对为服务之间的交互定义契约,服务的生产者和调用者都需要遵守这些契约,才能保证微服务不出问题。 读者容错模式 读者容错模式(Tolerant Reader)指微服务化中服务提供者和消费者之间如何对接口的改变进行容错。从字面上来讲,消费者需要对提供者提供的功能进行兼容性设计,尤其对服务提供者返回的内容进行兼容,或者解决在服务者改变接口或者数据的格式...转载 2019-02-05 11:03:12 · 1321 阅读 · 0 评论 -
微服务:性能评估参考标准。
设计一个系统时,最重要的非功能质量就是高性能,不但需要进行性能测试,而且需要在设计系统时就对系统各方面的容量进行合理评估,因此,我们需要对一些常用的计算机操作所需要的时间有个大体的评估,这样才能设计出一个合理且易于实现的系统,从而减小线上系统失败所带来的风险。 常用的应用层性能指标参考标准 以下标准是使用PC X86 桌面机器的经验值,并不代表使用线上生产机器的经验值,仅供参考,评审时应该根据...转载 2019-02-13 09:45:26 · 5924 阅读 · 1 评论 -
微服务:非功能质量需求的具体指标。
非功能质量需求的具体指标针对不同的系统主要分为4部分:应用服务器、数据库、缓存和消息队列,本文会总结并列出这4部分指标,以帮助读者在实际生产实践中做非功能质量需求的设计方案。 应用服务器 应用服务器是服务的入口,请求流量从这里进入系统,数据库、缓存和消息队列的访问量取决于应用服务器的访问量。对应用服务器的访问量进行评估至关重要,应用服务器主要关心每秒请求的峰值及对请求的响应时间等指标,通过这些...转载 2019-02-12 12:04:23 · 2023 阅读 · 0 评论 -
微服务:超时补偿的原则。
我们许哟啊对服务间同步超时造成的后果进行处理,而处理方法有快速失败和内部补偿两种,补偿模式也有调用方补偿和接收方补偿两种,具体使用哪种方式呢? 超时补偿问题如下所示。 服务间调用超时补偿的原则如下。 服务1调用服务2,如果服务2响应服务1并且告诉服务1消息已接收,那么服务1的任务就结束了;如果服务2处理失败,那么服务2应该负责重试或者补偿。在这种情况下,服务2通常接收消息后先持久再告诉服...转载 2019-02-12 11:03:23 · 2264 阅读 · 0 评论 -
微服务:迁移开关的设计。
本文介绍在应用微服务架构的过程中,对迁移场景下不一致问题的解决方案。 在大多数企业里,新项目和老项目一般会共存,大家都在努力的去掉老项目,但是由于种种原因总是去不掉,如果要彻底的去掉老项目,就必须有非常完善的迁移方案。 在迁移过程中必须使用开关,开关一般都会基于多个维度来设计,例如:全局的、用户的、角色的、商户的、产品的,等等。如果在迁移过程中遇到问题,则我们需要关闭开关,迁移回老的系统,这需...转载 2019-02-12 10:52:44 · 494 阅读 · 1 评论 -
微服务:同步与异步的抉择。
尽量使用异步来替换同步操作。 能用同步解决的问题,不要引入异步。 这两个原则从字面意义上看是完全不同的,甚至是矛盾的。实际上,这里的原则都没有错,只不过原则抽象的太干净利落,以至于没有给出适合这些原则的环境信息。 第1条原则是从业务功能的角度触发的,也就是从用户或者使用方的交互模式出发的,如果业务逻辑允许,用户对产品的交互形态没有异议,则我们可以将一些耗时较长的、用户对响应没有特别要求的操作异...转载 2019-02-11 17:19:36 · 1997 阅读 · 0 评论 -
微服务的交互模式。
服务与服务之间的交互模式可以分为以下3类。 同步调用模式 在同步调用模式中,服务1调用服务2,服务1的线程阻塞等待服务2返回处理结果,如果服务2一直不返回处理结果,则服务1一直等待超时为止。 同步调用模式如下图所示。 同步调用模式适用于大规模、高并发的短小操作,而不适用于后端负载较高的场景,例如:几乎所有JDBC的实现完全使用BIO同步阻塞模式。 接口异步调用模式 在接口异步调用模...转载 2019-02-11 16:58:51 · 814 阅读 · 0 评论 -
微服务:微服务的容错模式。
在使用微服务架构以后,整体的业务流程被拆分成小的微服务,并组合在一起对外提供服务,微服务之间使用轻量级的网络协议通信,通常是RESTful风格的远程调用。由于服务与服务的调用不再是进程内的调用,而是通过网络进行的远程调用,众所周知,网络通信是不稳定、不可靠的,一个服务依赖的服务可能出错、超时或者宕机,如果没有及时发现和隔离问题,或者在设计中没有考虑如何应对这样的问题,那么很可能在短时间内服务的线程...转载 2019-02-11 10:34:44 · 1813 阅读 · 0 评论 -
微服务:微服务的分解和组合模式。
使用微服务架构划分服务和团队是微服务架构实施的重要一步,良好的划分和拆分使系统达到松耦合和高内聚的效果,然后通过微服务的灵活组装可以满足上层的各种各样的业务处理需求。 在微服务架构的需求分析和架构设计过程中,通常使用领域的动词和名词来划分微服务的,例如,对于一个电商后天系统,可以分解为订单、商品、商品目录、库存、购物车、交易、支付、发票、物流等子系统,每个名词和动词都可以是一个微服务,将这几个微...转载 2019-02-06 12:03:14 · 4302 阅读 · 1 评论 -
微服务:非功能质量需求的概述。
本节讲解核心非功能质量指标,主要体现在高性能、高可用、可伸缩、可扩展、安全性等方面,并讲解其他功能质量指标,例如:可测试性、可监控性等,读者可以参考这些质量指标,来保证系统架构设计满足用户和系统对非功能质量的需求。 核心非功能指标如下表所示。 核心非功能质量指标 描述 高性能 运行效率高、性价比高 可用性 持续可用性、缩短宕机时间、出错恢复、可靠性 ...转载 2019-05-05 10:57:29 · 810 阅读 · 0 评论