微服务精华问答 | 微服务如何测试?

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


640?wx_fmt=png

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


640?wx_fmt=gif1

Q:微服务如何测试?


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

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


640?wx_fmt=gif2

Q:微服务将如何配置?


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

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


640?wx_fmt=gif3

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


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

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

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


640?wx_fmt=gif4

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


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

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


640?wx_fmt=gif5

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


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

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

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

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

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

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


-

640?wx_fmt=png


福利

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


640?wx_fmt=jpeg


推荐阅读:

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

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

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

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

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

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

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


640?wx_fmt=png喜欢就点击“好看”吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React之事件绑定

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>state事件绑定</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <s…

你与数据科学家只差这26条python技巧

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | Peter Gleeson来源 | Python数据科学编译 | wLsqPython是目前世界上最流行的编程语言之一。因为:1.它容易学习2.它用途超广3.它有非常多的开源支持&#xff08;大量的模块和库&#xff09;作者 Peter Gleeson 是一名数据科学…

要闻君说:特朗普发声5G竞争,华为闪电回应!“云际智慧”新鲜出炉,瞄准下一代CDN与边缘计算平台;华为云狮城大区正式开服 ;...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好&#xff01;偶是要闻君。连续工作一周后终于挨到五&#xff0c;开森ing&#xff0c;放一首轻快&#xff0c;跟着学习吧&#xff01;文/要闻君特朗普发声5G竞争&#xff0c;华…

AVFoundation – AVAsset 加载媒体

目录 一.前言 1.AVAsset2.AVAssetTrack3.AVComposition / AVMutableComposition4.AVMutableVideoComposition5.AVMutableCompositionTrack6.AVMutableVideoCompositionLayerInstruction7.AVMutableVideoCompositionInstruction8.AVAssetExportSession 二.AVAsset 简介三.创建 …

阿里产品岗需是技术出身?分享技术转型产品的成功经验

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 |卡小基本文转载自公众号&#xff1a; 卡小基看世界最近看了一个爆料&#xff1a;不管这爆料是不是真的&#xff0c;至少在我9年的开发生涯中没遇到过几个靠谱的产品经理&#xff0c;究其原因就是大多非技术出身&#xff0c;非…

state的简写方式

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>state的简写方式</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <…

云漫圈 | 什么是DNS?什么是DNS污染?什么又是DNS劫持?

戳蓝字“CSDN云计算”关注我们哦&#xff01;文章转载自公众号&#xff1a;漫画编程2019年1月23日下午&#xff0c;我正在公司疯狂的撸着代码&#xff0c;沉浸在我的代码世界中&#xff0c;正在欣赏着自己刚刚写下的一行lambda表达式&#xff0c;突然微信上传来女朋友的消息。在…

全面剖析企业私有云

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 |孙杰本文转载自公众号&#xff1a;华章计算机在以AWS、Google、阿里等为代表的公有云发展的同时&#xff0c;很多大型企业出于数据安全性、系统稳定性、软硬件自主权、对自主可控以及TCO低的考虑&#xff0c;更加倾向于建设企…

React之props批量传递

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_props批量传递</title> </head> <body> <!-- 准备好一个容器 --> <div id"test1"></div> <div id"test2&qu…

趣挨踢 | 如何修改个人简历?一些过来人的经验

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 汕大小吴出处&#xff1a;https://www.nowcoder.com/discuss/154151一、前言又到了招聘的季节&#xff0c;看到很多师弟师妹们不太懂得如何写简历来展现自己&#xff0c;这里我想给出我个人的一些建议。因为我的简历修改了很…

React之props限制

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_props限制</title> </head> <body> <!-- 准备好一个容器 --> <div id"test1"></div> <div id"test2"&…

云评测 | OpenStack智能运维解决方案 @文末有福利!

戳蓝字“CSDN云计算”关注我们哦&#xff01;文章摘自 | 《OpenStack架构分析与实践》谈到OpenStack&#xff0c;一个难以避免的话题就是运维&#xff0c;对于OpenStack的运维而言&#xff0c;随着其项目的不断增多&#xff0c;传统的“人肉运维”方式显然不能满足当下及以后的…

要闻君说: 百度云喜提信息安全首证;紫光展锐携5G芯片进击2019MWC;OPPO首发5G手机惊艳亮相……...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好&#xff01;偶是要闻君。活动多多、新闻不少&#xff0c;精神饱满的周一&#xff0c;学起来&#xff01;&#xff01;&#xff01;文/要闻君一年一度&#xff0c;十分重磅&a…

Spring精华问答 | Spring Boot有哪些优点?

戳蓝字“CSDN云计算”关注我们哦&#xff01;Spring是于2003 年兴起的一个轻量级的Java 开发框架&#xff0c;为了解决企业应用开发的复杂性而创建的。今天&#xff0c;我们一起来看看关于Spring更加有深度的问答吧。。1Q&#xff1a;Spring Boot有哪些优点&#xff1f;A&#…

基于Kubernetes的持续部署方案

戳蓝字“CSDN云计算”关注我们哦&#xff01;文章转载自Docker方案概述本技术方案为基于Kubernetes为核心的持续部署&#xff08;下文简称CD&#xff09;方案&#xff0c;可以满足开发方的程序级日志查看分析&#xff0c;运维方的快速扩容与日常运维分析&#xff0c;并且可以保…

Tcp实现文件上传

package com.wuming.lesson02;import java.io.*; import java.net.ServerSocket; import java.net.Socket;public class TcpServerDemo02 {public static void main(String[] args) throws Exception {//1.创服务ServerSocket serverSocket new ServerSocket(9000);//2.监听客…

云存储精华问答 | 如何选择云迁移策略?

戳蓝字“CSDN云计算”关注我们哦&#xff01;云存储是在云计算概念上延伸和发展出来的一个新的概念&#xff0c;是一种新兴的网络存储技术&#xff0c;是指通过集群应用、网络技术或分布式文件系统等功能&#xff0c;将网络中大量各种不同类型的存储设备通过应用软件集合起来协…

UDP消息发送

package com.wuming.lesson03;import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException;//还是要等待客户端的连接 public class UdpServerDemo01 {public static void main(String[] args) throws Exception {//1.开放端口Datagram…

C/C++ 余弦函数 cos - C语言零基础入门教程

目录 一.cos 函数简介二.cos 函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C…

云重磅|中西合璧 联想凌拓瓜熟蒂落;5G实锤 华为推出首部5G折叠手机;​IBM打造Kubernetes无处不在”的模式...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周二第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…