1、您对微服务有何了解?

微服务,又称微服务 架 构,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合 。

通俗地说,你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状物。他们最初从使用各种材料的小部分开始,并继续从中构建一个大型蜂箱。这些细胞形成图案,产生坚固的结构,将蜂窝的特定部分固定在一起。这里,每个细胞独立于另一个细胞,但它也与其他细胞相关。这意味着对一个细胞的损害不会损害其他细胞,因此,蜜蜂可以在不影响完整蜂箱的情况下重建这些细胞。

图 1:微服务的蜂窝表示 – 微服务访谈问题

请参考上图。这里,每个六边形形状代表单独的服务组件。与蜜蜂的工作类似,每个敏捷团队都使用可用的框架和所选的技术堆栈构建单独的服务组件。就像在蜂箱中一样,每个服务组件形成一个强大的微服务架构,以提供更好的可扩展性。此外,敏捷团队可以单独处理每个服务组件的问题,而对整个应用程序没有影响或影响最小。

2、微服务架构有哪些优势?

图 2:微服务的 优点 – 微服务访谈问题

· 独立开发 – 所有微服务都可以根据各自的功能轻松开发

· 独立部署 – 基于其服务,可以在任何应用程序中单独部署它们

· 故障隔离 – 即使应用程序的一项服务不起作用,系统仍可继续运行

· 混合技术堆栈 – 可以使用不同的语言和技术来构建同一应用程序的不同服务

· 粒度缩放 – 单个组件可根据需要进行缩放,无需将所有组件缩放在一起

3、微服务有哪些特点?

图 3:微服务的 特点 – 微服务访谈问题

· 解耦 – 系统内的服务很大程度上是分离的。因此,整个应用程序可以轻松构建,更改和扩展

· 组件化 – 微服务被视为可以轻松更换和升级的独立组件

· 业务能力 – 微服务非常简单,专注于单一功能

· 自治 – 开发人员和团队可以彼此独立工作,从而提高速度

· 持续交付 – 通过软件创建,测试和批准的系统自动化,允许频繁发布软件

· 责任 – 微服务不关注应用程序作为项目。相反,他们将应用程序视为他们负责的产品

· 分散治理 – 重点是使用正确的工具来做正确的工作。这意味着没有标准化模式或任何技术模式。开发人员可以自由选择最有用的工具来解决他们的问题

· 敏捷 – 微服务支持敏捷开发。任何新功能都可以快速开发并再次丢弃

4、设计微服务的最佳实践是什么?

以下是设计微服务的最佳实践:

图 4:设计微服务的最佳实践 – 微服务访谈问题

5、微服务架构如何运作?

微服务架构具有以下组件:

图 5:微服务 架构 – 微服务面试问题

· 客户端 – 来自不同设备的不同用户发送请求。

· 身份提供商 – 验证用户或客户身份并颁发安全令牌。

· API 网关 – 处理客户端请求。

· 静态内容 – 容纳系统的所有内容。

· 管理 – 在节点上平衡服务并识别故障。

· 服务发现 – 查找微服务之间通信路径的指南。

· 内容交付网络 – 代理服务器及其数据中心的分布式网络。

· 远程服务 – 启用驻留在 IT 设备网络上的远程访问信息。

6、微服务架构的优缺点是什么?

7、单片,SOA 和微服务架构有什么区别?

图 6: 单片 SOA 和微服务之间的比较 – 微服务访谈问题

· 单片架构类似于大容器,其中应用程序的所有软件组件组装在一起并紧密封装。

· 一个面向服务的架构是一种相互通信服务的集合。通信可以涉及简单的数据传递,也可以涉及两个或多个协调某些活动的服务。

· 微服务架构是一种架构风格,它将应用程序构建为以业务域为模型的小型自治服务集合。

8、在使用微服务架构时,您面临哪些挑战?

开发一些较小的微服务听起来很容易,但开发它们时经常遇到的挑战如下。

· 自动化组件:难以自动化,因为有许多较小的组件。因此,对于每个组件,我们必须遵循 Build,Deploy 和 Monitor 的各个阶段。

· 易感性:将大量组件维护在一起变得难以部署,维护,监控和识别问题。它需要在所有组件周围具有很好的感知能力。

· 配置管理:有时在各种环境中维护组件的配置变得困难。

· 调试:很难找到错误的每一项服务。维护集中式日志记录和仪表板以调试问题至关重要。

9、SOA 和微服务架构之间的主要区别是什么?

SOA 和微服务之间的主要区别如下:

10、微服务有什么特点?

您可以列出微服务的特征,如下所示:

100道Java面试题整理(助力2020面试!)的更多相关文章

  1. 509道Java面试题解析:2020年最新Java面试题

    <Java面试全解析>是我在 GitChat 发布的一门电子书,全书总共有 15 万字和 505 道 Java 面试题解析,目前来说应该是最实用和最全的 Java 面试题解析了. 我本人是 ...

  2. 面试开挂:近百道Java面试题整理

    1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被 ...

  3. 18家大厂Java面试题整理了350道(分布式+微服务+高并发)

    一.性能调优系列 1.Tomcat性能调优 JVM参数调优: -Xms 表示JVM初始化堆的大小, -Xmx表示JVM堆的最大值.这两个值的大小一般根据需要进行设置. 当应用程序需要的内存超出堆的最大 ...

  4. 面试百度、阿里、腾讯,这134道Java面试题你会多少?

    这里一共是134道Java面试题,看看你能对几道吧! 1. Java 语言有哪些特点 2. 面向对象和面向过程的区别 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 4. Oracle JD ...

  5. 尚学堂Java面试题整理

    博客分类: 经典分享   1. super()与this()的差别? - 6 -  2. 作用域public,protected,private,以及不写时的差别? - 6 -  3. 编程输出例如以 ...

  6. 【JAVA面试】java面试题整理(4)

    版权声明:转载请注明 https://blog.csdn.net/qq_33591903/article/details/83473779                               ...

  7. 精选30道Java笔试题附答案分析

    精选30道Java笔试题解答 都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑 ...

  8. java面试题—精选30道Java笔试题解答(二)

    摘要: java面试题-精选30道Java笔试题解答(二) 19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System ...

  9. 北京Java笔试题整理

    北京Java笔试题整理 1.什么是java虚拟机?为什么ava被称作是"平台无关的编程语言? 答:Java虚拟机可以理解为一个特殊的"操作系统",只是它连接的不是硬件,而 ...

随机推荐

  1. linux桌面系统 镜像下载

    1.Ubuntu 官方下载地址(不推荐,网速较慢):https://www.ubuntu.com/download 阿里云:http://mirrors.aliyun.com/ubuntu-relea ...

  2. Docker Yearning + Inception SQL审核平台搭建

    [一]安装[1.1]系统环境系统环境:CentOS Linux release 7.6.1708 (Core)系统内存:4G系统内核:1Python:3.6.4关闭iptables and selin ...

  3. 002、将mysql用作一个简单的计算器

    SELECT PI( ), , ( ) ; 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢.

  4. 吴裕雄--天生自然C++语言学习笔记:C++ 数据抽象

    数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节. 数据抽象是一种依赖于接口和实现分离的编程(设计)技术. 它们向外界提供了大量用于操作对象数据的公共方法,也 ...

  5. XSS跨站脚本攻击与CSRF跨站请求伪造攻击的学习总结(转载)

    转载自 https://blog.csdn.net/baidu_24024601/article/details/51957270 之前就了解过这方面的知识,但是没有系统地总结.今天在这总结一下,也让 ...

  6. mysql 带换行符的字符串数据插入数据库异常

    带换行符的字符串数据插入数据库异常现象 某个字符串类型的字段中部分记录中带换行符,数据同步插入异常,提示如下类似警告信息: Incorrect string value:'<aherf=&quo ...

  7. UVA - 11584 Partitioning by Palindromes(划分成回文串)(dp)

    题意:输入一个由小写字母组成的字符串,你的任务是把它划分成尽量少的回文串,字符串长度不超过1000. 分析: 1.dp[i]为字符0~i划分成的最小回文串的个数. 2.dp[j] = Min(dp[j ...

  8. 10 ~ express ~ 使用 cookie 保存用户 信息

    思维导图: (1) 保存 cookie (2)销毁 cookie 一,保存 cookie 1,app.js  . 新增代码 var Cookies = require('cookies') /** * ...

  9. 在MFC做DLL动态链接库时,使用boost,出现断言错误

    建立的MFC DLL工程中有使用boost::thread,就会发生compile正常但是一程式执行或者直接编辑就出現ASSERT错误. 错误位置:dllinit.cpp,Line: 587,ASSE ...

  10. 分享几个IntelliJ IDEA 2019 jihuo码(pojie码、zhuce码),亲测可用

    文章转载自:https://www.jiweichengzhu.com/article/eb340e382d1d456c84a1d190db12755c 如果还有问题,加群交流:686430774(就 ...