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

点评:

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

思考:

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

相关推荐
我是一只代码狗5 分钟前
springboot中使用线程池
java·spring boot·后端
hello早上好18 分钟前
JDK 代理原理
java·spring boot·spring
PanZonghui23 分钟前
Centos项目部署之Java安装与配置
java·linux
沉着的码农1 小时前
【设计模式】基于责任链模式的参数校验
java·spring boot·分布式
Mr_Xuhhh1 小时前
信号与槽的总结
java·开发语言·数据库·c++·qt·系统架构
纳兰青华1 小时前
bean注入的过程中,Property of ‘java.util.ArrayList‘ type cannot be injected by ‘List‘
java·开发语言·spring·list
coding and coffee1 小时前
狂神说 - Mybatis 学习笔记 --下
java·后端·mybatis
千楼1 小时前
阿里巴巴Java开发手册(1.3.0)
java·代码规范
reiraoy2 小时前
缓存解决方案
java
安之若素^2 小时前
启用不安全的HTTP方法
java·开发语言