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

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

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

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

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

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

在一些小公司,可能直接用的是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)

大家都在看

  • 数据库性能优化八大方案,你知道几个

    前言 毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。 如果我们有一套成熟的方法论,能让大家快速、准确的去选择…

    数据库 2023年6月14日
    072
  • mysql开启二进制日志

    打开xhell进入系统 进入mysql配置文件目录 执行 cd /etc/mysql 首先找到my.cnf这个配置文件,然后使用vim进入文件编辑 放开我标记的地方。 注意我标记的…

    数据库 2023年6月6日
    0104
  • MySQL8自增主键变化

    MySQL8自增主键变化 醉后不知天在水,满船清梦压星河。 一、简述 MySQL版本从5直接大跃进到8,相信MySQL8一定会有很多令人意想不到的改进,如果不想只会CRUD可以看看…

    数据库 2023年5月24日
    071
  • Mybatis-Plus一键生成代码

    Mybatis-Plus一键生成代码 一、闲言碎语 闲来无事看了看了MP的官网看到一键生成的代码更新了! 整个Ui风格都变了,遂决定瞅一眼新的代码生成器 官网地址~~ 二、引入依赖…

    数据库 2023年5月24日
    064
  • 详解在Linux中同时安装配置并使用 MySQL5.7 和 MySQL8.0

    最近需要使用mysql8.0版本,但是原本的mysql5.7版本已经被多个服务依赖,于是想想能不能同一台服务器装多个版本的mysql,一查确实可行,这里做一个记录方便自己后期回忆 …

    数据库 2023年5月24日
    072
  • centos 自己常用命令

    tar 1. 使用tar压缩文件 tar -zcvf test.tar.gz ./test/ 该命令表示压缩当前文件夹下的文件夹test,压缩后缀名为test.tar.gz 如果不…

    数据库 2023年6月11日
    075
  • 自己编写平滑加权轮询算法,实现反向代理集群服务的平滑分配

    学会了负载均衡算法,却没有用起来? 今天就来 实战一遍,感受下平滑加权轮询算法的魅力。 通过Java语言,自己编写的平滑加权轮询算法,结合线程池和Socket 网络编程等,实现了反…

    数据库 2023年6月6日
    0266
  • 平均工资:部门与公司比较

    力扣(LeetCode)615. 平均工资:部门与公司比较 困难难度数据库题目 一. 题目 给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资…

    数据库 2023年6月11日
    068
  • 创建一个Django项目总结

    2022-09-25 首先,要安装好虚拟环境,之后要切换到虚拟环境中,使用的命令 之后,创建一个Django项目使用的命令: 进入到该项目的目录下,创建一个子应用,使用的命令: 其…

    数据库 2023年6月14日
    096
  • Redis学习(1)—Redis概述

    什么是NoSQL NoSQL:Not Only SQL,意思不仅仅是SQL,它是属于 非关系型数据库。那什么是关系型数据库?数据结构是一种有行有列的数据库。 NoSQL数据库是为了…

    数据库 2023年6月14日
    073
  • fiddler的mock数据与二次开发示例

    fiddler的使用记录 fiddler了解 上官网下载工具,然后安装使用,https://www.telerik.com/fiddler,如果对该工具不熟悉,还有直白的教程,看过…

    数据库 2023年6月6日
    0107
  • md5解密异常

    javax.crypto.BadPaddingException: Given final block not properly paddedat com.sun.crypto.p…

    数据库 2023年6月11日
    082
  • MySQL–数据过滤(AND、OR、IN、NOT操作符)

    MySQL允许给出多个WHERE子句。这些子句可以两种方式使用:以AND子句的方式或OR子句的方式使用。 1、组合WHERE子句 此SQL语句检索由供应商1003制造且价格小于等于…

    数据库 2023年6月16日
    079
  • mysql笔记

    DBMS:数据库管理系统SQL:用于访问和处理数据库的标准的计算机语言DB:数据库 三者的关系: DBMS数据库管理系统执行SQL语句,来操作DB数据库当中的数据的 条件查询 in…

    数据库 2023年5月24日
    067
  • 翻译 | Kubernetes 将改变数据库的管理方式

    作者:Álvaro Hernández 当技术决策人考虑在 Kubernetes 上部署数据库时,面临的第一个问题就是:” Kubernetes 有应对有状态服务的能力…

    数据库 2023年5月24日
    0111
  • 2_Git

    一. 引言 在单人开发过程中, 需要进行版本管理, 以利于开发进度的控制 在多人开发过程中, 不仅需要版本管理, 还需要进行多人协同控制 二. 介绍 Git是一个 开源的分布式版本…

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