资讯专栏INFORMATION COLUMN

微服务设计笔记

Null / 2241人阅读

摘要:微服务思想能否在计算机服务中实现蜂群效应单主机部署多个服务的弊端监控困难。不利于服务团队自治。而单个主机的部署导致所有服务都只能妥协于同一个运行环境。微服务测试端到端的测试是脆弱的。如何应对微服务系统故障在错误发生时采用不指责文化。

微服务思想能否在计算机服务中实现蜂群效应?

单主机部署多个服务的弊端

监控困难。监控整个主机还是具体到某一个服务?

资源占用。每个服务之间计算资源的占用是不可控制,相互影响的。

依赖冲突。每个服务依赖可能不同,甚至冲突。

不利于服务团队自治。该主机该由哪个团队进行维护?

强行统一不同服务的运行环境。每个服务所需要的运行环境可能有所偏好,比如有的计算密集,有的涉及存储。而单个主机的部署导致所有服务都只能妥协于同一个运行环境。

微服务测试

端到端的测试是脆弱的。测试涉及众多其它相关服务,这些服务可能会出现错误,导致测试无法达到测试想要的服务的目的。

遇到脆弱的测试应该及时修复问题,而不是接受这种异常,认为是出错是理所当然的。

端到端的测试应该尽快完成,否则开发人员已经开始干新的事情,切换大脑的上下文来修复测试是很痛苦的。

端到端的测试,把注意力放到测试场景上,而不是测试故事上,测试重心放到核心的测试场景上面。

身份验证和授权

SSO(Single Sign-On,单点登录)指,当主体试图访问一个资源时,会首先被定位到一个身份提供者那里进行身份认证。主体通过验证以后,身份提供者向服务提供者发送消息,让服务提供者决定是否允许他访问资源。

黄金法则:不要实现自己的加密算法,不要发明自己的安全协议。

如何应对微服务系统故障

在错误发生时采用不指责文化。

事物受益于失败和混乱。

超时处理。在调用下游服务时,应该设置一个默认的超时,并且根据日志调整超时参数。

断路器。使用断路器时,当对下游资源的请求发生一定数量的失败后,断路器会打开。接下来,所有的请求在断路器打开的状态下,会快速地失败。一段时间后,客户端发送一些请求查看下游服务是否已经恢复,如果它得到了正的响应,将重置断路器。

舱壁。把自己从故障中隔离出来的一种方式。

幂等

对于幂等操作来说,其多次执行产生的影响,均等于一次执行的影响。当不确定一个操作是否被执行,想要重新处理消息,从而从错误中恢复时,幂等会很有用。

CAP定理

分布式系统需要在三方面进行权衡:一致性(consistency),可用性(availability)和分区容忍性(partition tolerance)。定理表明,最多只能保证三个中的两个。

AP: 系统无法保证一致,比如服务节点之间无法同步数据。弥补方法可以采用最终一致性,在将来的某个时刻,所有的节点都能看到更新后的数据,但是不会立即发生,用户可能看到失效的数据。

CP:为了保证数据一致,该服务先暂时停用,这时要做好功能降级。保证一致性是困难的,不要试图自己实现一个一致性数据存储。

在分布式系统中,CA是不存在的。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25202.html

相关文章

  • 服务设计》读书笔记(关于服务的一点想法)

    摘要:而微服务将这个理念应用在独立的服务上。微服务对比与原来的单体应用,有它的优势,如服务的自治性增强但同时也会带来一些其他问题,如性能复杂度等问题。想要使用微服务,首先是要清楚哪些业务或者功能应该成为单独的服务。其次,考虑业务极有可能的变化。 1、在学习软件构造、设计相关知识时,大家应该有学习到内聚性的概念:即把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来。而 微服...

    lpjustdoit 评论0 收藏0
  • 《Java应用架构设计:模块化模式与OSGi》读书笔记

    摘要:本书概括以软件系统为例,重点讲解了应用架构中的物理设计问题,即如何将软件系统拆分为模块化系统。容器独立模块不依赖于具体容器,采用轻量级容器,如独立部署模块可独立部署可用性模式发布接口暴露外部配置使用独立的配置文件用于不同的上下文。 本文为读书笔记,对书中内容进行重点概括,并将书中的模块化结合微服务、Java9 Jigsaw谈谈理解。 本书概括 以Java软件系统为例,重点讲解了应用架构...

    seanHai 评论0 收藏0
  • 网易专业之《前端开发工程师》学习笔记(1)

    摘要:点击此处了解网易微专业课程前段时间报名参加了网易云课堂微专业课程前端开发工程师,这周课程开始了,正式学习。以下内容为前端开发工程师微专业的第一门课网页制作的课程学习指南,学习视频课程后自己整理的学习笔记,会持续更新内容。 何为网易微专业? 微专业是由网易云课堂联合各领域知名专家,以就业为导向,精心打造的职业培训方案。按要求完成学习,考试通过可获得专业认定证书,令你求职或加薪多一份独特优...

    geekzhou 评论0 收藏0
  • 网易专业之《前端开发工程师》学习笔记(1)

    摘要:点击此处了解网易微专业课程前段时间报名参加了网易云课堂微专业课程前端开发工程师,这周课程开始了,正式学习。以下内容为前端开发工程师微专业的第一门课网页制作的课程学习指南,学习视频课程后自己整理的学习笔记,会持续更新内容。 何为网易微专业? 微专业是由网易云课堂联合各领域知名专家,以就业为导向,精心打造的职业培训方案。按要求完成学习,考试通过可获得专业认定证书,令你求职或加薪多一份独特优...

    刘东 评论0 收藏0
  • 26天学通前端开发(配资料)

    摘要:网上有很多前端的学习路径文章,大多是知识点罗列为主或是资料的汇总,数据量让新人望而却步。天了解一个前端框架。也可以关注微信公众号晓舟报告,发送获取资料,就能收到下载密码,网盘地址在最下方,获取教程和案例的资料。 前言 好的学习方法可以事半功倍,好的学习路径可以指明前进方向。这篇文章不仅要写学习路径,还要写学习方法,还要发资料,干货满满,准备接招。 网上有很多前端的学习路径文章,大多是知...

    blair 评论0 收藏0

发表评论

0条评论

Null

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<