当前位置: 首页 > news >正文

JAVA面试题之三分布式和微服务的区别是什么?

面试题之三

分布式和微服务的区别是什么?

难度指数:3星

考察频率:50%

开发年限:3年左右

二者是隶属于不同的概念。

一.概念

微服务是系统架构的设计方式,是将复杂的业务拆分成多个微型的服务,让这些服务可以单独部署和运行。服务与服务之间可以使用RPC、OpenFeign来调用(通信)。

分布式是一种系统的部署方式,主要是将一个服务拆分部署到多态机器,以此来降低单台服务器的负载压力。拆分的方式:水平拆分、垂直拆分,一般采用集群、主备份的方式来部署服务。

二.软件系统的演进

java WEB服务打成war包,放到tomcat 、jetty服务容器上运行。但是这样的项目只适合单人、小团队开发,不利于团队的协作。

垂直拆分,按照不同的系统,拆分成不同的团队,定义接口文档,前端 、后端。优势:前后端,可以同时进行工作,提高生产力,大大挺高了开发效率。MVC框架:Struts 、WebWork、SpringMVC等。

随着业务规模越来越大,业务复杂度越来越高,仅仅前后端分离已经不能满足业务需求了。整个开发团队,后端开发工程师的压力更大,缓解后端的访问压力,开发增设服务器、性能调优、分布式技术,服务拆分。

问题:服务之间的调用问题、协调问题、集群负载均衡问题。

RMI WebService ,JSONP 、Http Restful,RPC.

ZOOKeeper分布式协调中心

Nginx:解决负载均衡问题。

上述都是分布式技术栈。

微服务是分布式之后一种架构设计思想。SpringBoot出现之后,正式流程微服务这样的概念。SpringBoot内置了Tomcat,真正做到了拆箱即用、部署一个服务,不用再手动添加非常多的依赖环境。

点评:

强调的是,你是否真正的了解二者的技术内涵,时间先后。

思考:

微服务优势和劣势,以及你在工作中是否碰到了一些技术问题。

http://www.lryc.cn/news/294969.html

相关文章:

  • electron实现软件(热)更新(附带示例源码)
  • 飞天使-k8s知识点12-kubernetes散装知识点1-架构有状态资源对象分类
  • mhz_c1f
  • Excel——高级筛选匹配条件提取数据
  • Python初学者学习记录——python基础综合案例:数据可视化——动态柱状图
  • 1.27马尔科夫链,抽样蒙特卡洛模拟(逆转化方法,接受拒绝矩阵),马尔科夫链蒙特卡洛MCMC,隐马尔科夫(HMM(V算法剪枝优化),NLP)
  • MC34063异常发热分析
  • 获取真实 IP 地址(一):判断是否使用 CDN(附链接)
  • 跨越财务困境,聚道云软件连接器如何助力企业轻松实现数字化转型?
  • Python接口自动化测试框架运行原理及流程
  • strtok的使用
  • 0206作业
  • 数据结构-栈
  • CentOS7搭建k8s-v1.28.6集群详情
  • Android实现底部导航栏方法(Navigation篇)
  • python 爬虫篇(1)---->re正则的详细讲解(附带演示代码)
  • (超详细)10-YOLOV5改进-替换CIou为Wise-IoU
  • Java-并发高频面试题-2
  • Windows安装Redis
  • Nicn的刷题日常之 有序序列判断
  • 1、将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践
  • vite+vue3发布自己的npm组件+工具函数
  • 嵌入式软件bug分析基本要求
  • 【C/C++ 17】继承
  • 解决Linux Shell脚本错误:“/bin/bash^M: bad interpreter: No such file or directory”
  • idea创建spring项目
  • 【UE 材质】扇形材质
  • 【react native】ScrollView的触摸事件与TouchableWithoutFeedback的点击事件冲突
  • 鸿蒙内核框架
  • 幻兽帕鲁专用服务器,多人游戏(专用服务器)搭建