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,真正做到了拆箱即用、部署一个服务,不用再手动添加非常多的依赖环境。

点评:

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

思考:

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

相关推荐
xiaoopin2 小时前
简单的分布式锁 SpringBoot Redisson‌
spring boot·分布式·后端
默 语5 小时前
MySQL中的数据去重,该用DISTINCT还是GROUP BY?
java·数据库·mysql·distinct·group by·1024程序员节·数据去重
oDeviloo6 小时前
新版IntelliJ IDEA个性化设置兼容老版习惯
java·ide·intellij-idea
一只小透明啊啊啊啊6 小时前
Java Web 开发的核心组件:Servlet, JSP,Filter,Listener
java·前端·servlet
spencer_tseng7 小时前
Eclipse Uninstall Software
java·ide·eclipse
想ai抽7 小时前
pulsar与kafka的架构原理异同点
分布式·架构·kafka
嗯、.7 小时前
使用 iText 9 为 PDF 添加文字水印的完整实战
java·pdf·itext
怪兽20148 小时前
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
java·缓存·面试
皮皮林5518 小时前
Java 25 正式发布:更简洁、更高效、更现代!
java
源码_V_saaskw9 小时前
JAVA国际版二手交易系统手机回收好物回收发布闲置商品系统源码支持APP+H5
java·开发语言·微信·智能手机·微信小程序·小程序