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

点评:

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

思考:

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

相关推荐
ProtonBase12 分钟前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
时时刻刻看着自己的心15 分钟前
clickhouse分布式表插入数据不用带ON CLUSTER
分布式·clickhouse
乐之者v18 分钟前
leetCode43.字符串相乘
java·数据结构·算法
suweijie7683 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
公贵买其鹿4 小时前
List深拷贝后,数据还是被串改
java
xlsw_7 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹8 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭9 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
Data跳动9 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
暮湫9 小时前
泛型(2)
java