小公司比较吃亏的两道微服务面试题

其实选择工作的时候,很多技术牛人都会选择一些小而美的公司,技术全面,能够以一个更全面的视角看整个公司的运作,人和人之间的相处也很简单。但是,有两道微服务的面试题,小公司的朋友们会比较吃亏。

题一:你们上下游通信用的是什么协议?

题二:你们服务拆分成了几个子服务?

为什么吃亏,咱们来分析一下。

题一:你们上下游通信用的是什么协议?

在一些小公司,可能直接用的是http协议。如果直接这样回答面试官。面试官下一个问题就有点难度了:”为什么用HTTP协议呢?”

这时候心里那个苦啊:”我也想用dubbo这样的RPC框架啊。但是公司非要用http,我自己又做不了主。但我总不能这么说吧”

最好的回答是真实的回答,但是要回答到本质。首先从面试官问题的本质出发,面试官实际的考察点是:服务通信方式RPC与REST的区别与怎么选取。

要是我,我这么回答:我们公司的基础设施还不是很完善,没有类似Dubbo这样的服务治理工具。所以我们还是使用基于http协议的REST调用。如果将来我们公司有了类似Dubbo这样的服务治理工具,并且足够稳定。内部之间的调用还是用RPC调用更为合适。

因为RPC与REST相比较,主要的区别如下:

小公司比较吃亏的两道微服务面试题

对于公司内部的使用,理想的情况是有标准的服务化能力和高性能,更适合RPC。

题二:你们服务拆分成了几个子服务?

在一些小公司,可能一个项目就是一个微信小程序,用户量几万的样子。这时候前后端分离,后端一个单体应用就足够。如果直接这样回答面试官。面试官会怀疑你对微服务完全没有经验。

这时候,首先还是要事实就是。做人诚信是根本。那要怎么回答呢?要是我,我这么回答。

目前综合项目本身的复杂度、业务量、成本和沟通上考量,目前我们项目采用的单体架构。将来,我们业务量上来,也可能会按领域拆分,毕竟 架构不是设计出来的,而是演进而来的

虽然我自身所做的项目简单,但是如果不局限我自身做的,我对整体也有一定了解,我就说说我了解的内容吧。

根据 康威定律,公司的组织架构设计等价于组织间的沟通结构,也极大的反应了公司的系统架构。我在一个小公司,所有人员加起来就是个 2个披萨(国外的大,一个披萨大概够6个人吃)的团队,开发测试运营都在一起。做的事情白话一点说就是个公众号小程序。

我们的项目想要工作,借助了微信开放平台,同时我们的服务器是放阿里云上的。如果把微信开放平台和阿里云纳入到架构中,是下面的样子(这时候如果是现场面试,我建议拿起白板笔边画边说):

小公司比较吃亏的两道微服务面试题

图画的比较粗糙,意思到了就可以了。反正我没有在面试中卡过谁画画水平不行。其实面试者在图中维护的只是核心服务部分。熔断、限流和降级都是在核心服务内部使用hystrix或者直接使用spring cloud来完成的。服务注册发现如题一所说因为是使用http协议,实际上是例如nginx之类的负载均衡器来完成。图中也涉及OAuth2,这是微服务安全的主流实现方式。

上面这张就把面试官的注意引入了Spring Cloud等一个个具体的技术问题,和自己所在的平台关系不大了。

总结

《CURD系统怎么做出技术含量–怎样引导面试》里,我说过其实面试官希望面试者来引导面试,将自己的特长能力充分展现出来。面试者如果可以洞悉面试官的心里,说明自己的格局是够的。

最后临场做了一首打油诗送给大家:

胸中有丘壑,

对答如有神。

惊艳面试官,

事业上青云。

Original: https://www.cnblogs.com/xiexj/p/15885740.html
Author: 编程一生
Title: 小公司比较吃亏的两道微服务面试题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576438/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL事务基本使用

    1 事务概述 1.1 事务的支持情况 1.2 事务的特性 1.3 事务的状态 2 使用事务 2.1 显示事务 2.2 隐藏事务 3 事务隔离等级 3.1 数据并发问题 3.2 事务…

    数据库 2023年6月9日
    0116
  • [转]万智牌规则和异能详解

    下面这些都是之前的旧文档了,直到我发现了一个神奇的网站。建议大家有任何疑问,都可以到这里查看规则文档 点击网站的右上方可以搜索 最近游戏过程中发现规则和异能详解的文档很少,找起来非…

    数据库 2023年6月9日
    0194
  • 360浏览器兼容模式下jsp页面访问不到js文件

    360浏览器兼容模式下jsp页面访问不到js文件 查看自己js中的语法问题,不要用ES6的语法,编译不了故找不到js文件 const var of 码出高效 java 所有整型包装…

    数据库 2023年6月11日
    080
  • MySQL主从不生效且无错误

    现象、主从不生效且无错误 前几天配置个MySQL主从,结果MySQL主从不生效,但在show slave status\G还没有错误,当时感觉很奇怪。change master t…

    数据库 2023年6月9日
    0114
  • django中的视图层

    1.什么是视图层 简单来说,就是用来接收路由层传来的请求,从而做出相应的响应返回给浏览器 2.视图层的格式与参数说明 2.1基本格式 from django.http import…

    数据库 2023年6月14日
    077
  • Maven常用命令

    一、Maven常用命令及其介绍 mvn clean 对项目进行清理,删除target目录下编译的内容 mvn compile 编译项目源代码 mvn test 对项目进行运行测试 …

    数据库 2023年6月16日
    095
  • 真正在大厂干了几年,我学会了反内卷[转]

    内卷这个概念的内涵很丰富,与我们的生活息息相关。为了普及和传播知识,我参考了相关的信息,把我个人的粗浅理解奉献给朋友们。 什么是内卷? 内卷 involution,与之对应的是 e…

    数据库 2023年6月14日
    0124
  • 1. SQL

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    数据库 2023年5月24日
    0100
  • 2022-08-17 DQL—-子查询,日期格式

    子查询、日期格式 DQL查询语言 子查询 根据结果集中的行数,子查询可以分为以下几类: [En] According to the number of rows in the re…

    数据库 2023年5月24日
    098
  • MySQL实战45讲 15

    15 | 答疑文章(一):日志和索引相关问题 日志相关 binlog(归档日志)和redo log(重做日志)配合崩溃恢复,在两阶段提交的不同瞬间,MySQL如果发生异常重启,是怎…

    数据库 2023年5月24日
    0111
  • SpringBoot自动配置

    @SpringBootApplication SpringBoot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来…

    数据库 2023年6月16日
    099
  • 努力的去帮助他人

    天道运而无所积,故万物成;帝道运而无所积,故天下归;–庄子《天道篇》 知识分享才能成长,财富流动才能更多;努力的去帮助每一个人,自己也会收获更多的快乐;不要为生活琐事在…

    数据库 2023年6月16日
    0102
  • 数据结构入门之用链表模拟栈

    1:栈的介绍: LIFO(last in first out)表示就是后进入的元素, 第一个弹出栈空间.往往先把拿出去使用. 其限制是仅允许在表的一端进行插入和删除运算。这一端被称…

    数据库 2023年6月6日
    087
  • 配置文件动态刷新

    1. 背景 2. 相关知识储备 思路一 : 民科 mtime 文件最后修改时间 思路二: 科班 操作系统通知特性, 例如 linux 的 inotify 3. 相关代码设计 总结 …

    数据库 2023年6月9日
    088
  • 关于ThreadLocal的一道面试题

    问:上面这段代码会输出什么?为什么? 为什么输出1然后空指针了? 输出1是没有任何问题的。那空指针是为什么呢? 因为这是两个线程,子线程和主线程。子线程设置1,主线程肯定拿不到啊。…

    数据库 2023年6月16日
    0111
  • JUC学习笔记(五)

    创建线程的方法-一种是通过创建 Thread 类,另一种是通过使用 Runnable 创建线程。但是,Runnable 缺少的一项功能是,当线程终止时(即 run()完成时),我们…

    数据库 2023年6月6日
    0136
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球