戳蓝字“CSDN云计算”关注我们哦!

微服务(Microservice Architecture)是近几年流行的一种架构思想,关于它的概念很难一言以蔽之。今天,就让我们来看看关于微服务更加有深度的问题吧。

1

Q:微服务如何测试?

A:当涉及到测试时,微服务有一系列有趣的优点和缺点。一方面,测试代表定义明确功能的小型服务的单元测试可能比测试整个单一应用程序容易得多。另一方面,验证由许多微服务组成的整个应用程序的质量可能代表了大量的测试复杂性:不是运行单个命令来测试在一个进程中运行的代码,而是大量的集成相关组件先健康地运行,并在整个测试过程中保持运行。

这种新的微服务是否可以单独进行测试(使用单元测试或模拟依赖关系),还可以在更加实际的“集成”或“分段”环境中进行测试,在这种环境中,它将与生产中涉及的相同类型的服务相连接。测试是否包含性能验证和失败模式?所有的测试都会自动完成吗?还是人类必须参与运行并检查测试结果?以一种简单,快速和自动化的方式进行微服务测试将鼓励开发人员维护并防止“ 破窗 ”问题。

2

Q:微服务将如何配置?

A:一旦新的微服务投入生产,它的内部行为会受到什么影响?这包括基础结构的更改(例如,更改池中线程的最小数量)和一些应用程序级别的更改(例如,通过翻转功能标志来启用新功能)。对于所有这些变化,了解服务是否需要重新启动才能生效是至关重要的。

当然,如果可能的话,构建一个在其生命周期中完全不需要改变配置的服务将是最理想的方法。

3

Q:系统的其他部分如何消耗?

A:构建微服务没有多大意义,除非系统的其他组件使用它,因此理解它们如何使用微服务是至关重要的。

这些其他组件将同步或异步地与新的微服务交互吗?是否应该鼓励他们将响应缓存一段时间?什么是重试和幂等性?新微服务的正常运行时间SLA是否与系统中其他组件的正常运行时间SLA相匹配?

对于新微服务将提供的响应延迟,应该有明确的预期,使用微服务的组件应该知道这些预期。这样,当这些期望没有满足时,系统的其他部分可以决定触发超时、触发断路器或故障转移到服务的另一个实例。

4

Q:如何保证微服务的安全性?

A:除非是在高安全性环境中,否则大多数部署在防火墙后的微服务都不需要过分关注服务间安全性。在微服务之间添加大量的安全检查可以增加显著的操作复杂性,使生产问题很难调试和修复。由于维护、部署和保护一些正确签名的证书所需要的工作,甚至使用HTTP上的HTTPS进行服务间通信也可能是一个重要的维护开销。通常,更好的方法是允许流量在微服务之间畅通无阻,同时仍然应用合理的应用程序级别的身份验证和授权级别,当然还要保持非常安全的边界。

因此,系统中的其他组件很可能能够向微服务发送请求而不出问题,但它们可能仍然需要传递一些身份验证数据,这些数据表示发起外部用户,以便实际批准和处理请求。这绝不应该是明文密码数据,但它可以使用诸如JWT,OAuth,SAML或Auth0之类的技术。无论采用何种方法,该技术都必须非常清楚地记录下来,并且最好在客户端库或示例代码中捕获,以便其他开发人员可以轻松使用新的微服务。

5

Q:微服务将如何被发现?

A:当一个新的微服务启动时,系统中的其他组件如何找到它?发现过程越简单,它的灵活性就越低,之后会遇到更多的问题。例如,最简单的方法(同时也是一种脆弱的方法)是将微服务的地址硬编码到依赖它的其他组件的代码或配置中。这可能会一直工作到服务的地址必须更改,或者直到服务的多个实例在其他区域可用为止。这当然不是一种推荐的方法。

使用诸如DNS名称之类的间接技术来隐藏微服务的地址会更好一些,但是这也有它自己的缺点:找到一个合适的TTL值,迫使名字重做决议,使DNS缓存行为一致,等。通过设计,域名没有考虑服务的可用性,这可能导致应用程序组件遵循一条通往一个IP地址,没有监听,浪费时间,导致运行噪音,他们试图找到一个工作实例。它也会让开发人员感到非常困难,因为使用DNS作为路由机制通常会导致开发人员的/ etc / hosts文件的临时修改。

在复杂的领域,高度可用的数据存储或数据同步服务(例如ZooKeeper)可能被用作微服务的注册表,这些服务目前仍然运行良好。但仍需要更多的技术投资,并且还应该谨慎对待,以确保发现服务本身不会成为单点故障(SPOF)。当微服务启动时,它们将自己注册到这个注册服务中,当它们关闭时,它们将自己删除。如果它们意外终止或陷入死锁,也必须自动从注册表中删除它们。记住,发现不仅仅是发现正在运行的东西——发现什么是不可用的也是很重要的。

小伙伴们冲鸭,后台留言区等着你!

关于微服务,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~

-

福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

推荐阅读:

  • K8S安全军规101:对CNCF最佳实践的扩充

  • 50个最有价值的数据可视化图表(推荐收藏)

  • 微服务、Kubernetes和无服务器之后,即将发生的……

  • 月入5万,程序员夫人们过上"贵妇"生活了吗?

  • 为什么说稳定币才是诺奖得主哈耶克想要的非国家货币?

  • “扔瓶子”有套路?日本高中生开发机器人,手残党们有救了

  • 那些简历造假拿 Offer 的程序员,后来都怎么样了?

喜欢就点击“好看”吧

微服务精华问答 | 微服务如何测试?相关推荐

  1. 微服务精华问答 | 微服务有什么优点和不足呢?

    戳蓝字"CSDN云计算"关注我们哦! 过去几年来,"微服务架构"这个术语出现了,它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式.尽管这种架构风格 ...

  2. 微服务精华问答 | 为什么需要微服务?

    戳蓝字"CSDN云计算"关注我们哦! 过去几年来,"微服务架构"这个术语出现了,它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式.尽管这种架构风格 ...

  3. 微服务精华问答 | 如何理解中台战略和微服务

    戳蓝字"CSDN云计算"关注我们哦! 微服务(Microservice Architecture)是近几年流行的一种架构思想,关于它的概念很难一言以蔽之.今天,就让我们来看看关于微 ...

  4. 微服务精华问答 | 什么是金丝雀释放?

    戳蓝字"CSDN云计算"关注我们哦! 微服务(Microservice Architecture)是近几年流行的一种架构思想,关于它的概念很难一言以蔽之.今天,就让我们来看看关于微 ...

  5. 微服务精华问答 | 在使用微服务架构时,您面临哪些挑战?

    戳蓝字"CSDN云计算"关注我们哦! 过去几年来,"微服务架构"这个术语出现了,它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式.尽管这种架构风格 ...

  6. 微服务精华问答:什么是微服务架构中的DRY?| 技术头条

    微服务(Microservice Architecture)是近几年流行的一种架构思想,关于它的概念很难一言以蔽之. 究竟什么是微服务呢?今天就让我们一探究竟. 1  Q:什么是微服务架构中的DRY? ...

  7. OpenStack精华问答 | OpenStack服务介绍

    关于OpenStack的争议,从未停止,每每关于它的消息,都会一石激起千层浪.今天就让我们看看关于OpenStack的问答吧. 1 Q : OpenStack服务介绍 A : MySQL为各个服务器提 ...

  8. 与Susan Fowler探讨生产就绪微服务之问答

    Microservices.com Practitioners峰会是为从业者量身定制的微服务会议,峰会专注于介绍大规模采用微服务的实际应用.峰会将会于2017年1月31日在旧金山举行.演讲者包括来自U ...

  9. OpenStack精华问答 | OpenStack都有哪些基础服务?

    戳蓝字"CSDN云计算"关注我们哦! 关于OpenStack的探讨几乎从未间断,从2010年10月份一个版本正式发布至今,OpenStack在8年发展历程中,成为了最有争议的那一个 ...

最新文章

  1. 如何正确实施人工智能
  2. 20162311 算法复杂度-3
  3. Linq多表查询条件批量删除
  4. 一个爬虫的demo,requests,beatuifulsoup使用的
  5. 将War发布到Tomcat7上遇到的问题及其解决
  6. java给qq发消息_QQ发送消息
  7. 大数据时代的移动即时通讯
  8. php无限评论回复_php如何制作无限级评论功能?
  9. Netty空闲心跳检测机制
  10. Linux调试登陆Visual Studio
  11. 大前端主题添加强力推荐和联系我们模块
  12. python获取服务器端的时间
  13. 中值滤波器 median filter
  14. c语言怎么查找中文字符,C语言自学,汉字编码范围查询!
  15. 前端内容安全策略(csp)
  16. Python 自动关机小程序
  17. mysql的sleep线程多久_MySQL数据库sleep线程过多,怎么办?
  18. win7拔掉耳机后电脑没声音了
  19. linux下打印机监控,Linux下控制打印机笔记
  20. 好用的磁盘清理软件Disk Diet for mac安装教程及功能介绍

热门文章

  1. signature=adf15bd90b83b628c647a1aa64741773,Thoracic Oncology
  2. erp采购总监个人总结_erp采购总监总结.docx
  3. viewBox视图缩放(1)
  4. vue如何获取tree当前选中的节点_vue中element-ui 树形控件-树节点的选择(选中当前节点,获取当前id并且获取其父级id)...
  5. wpf 点击按钮弹出选择框_关于WPF的弹出窗口
  6. delphi中的函数传参如何传枚举参数_我是这样使用SpringBoot(API传参)
  7. 年仅48岁,985高校教授离世
  8. 全球如何应对新冠大流行?科学子刊社论:数据驱动模型指导
  9. 谁能救得了中兴?下一个是华为吗?
  10. Audio-based snore detection using deep neural networks解读