什么是微服务?
微服务就是把原本臃肿的一个项目的所有模块拆分开来并做到互相没有关联,甚至可以不使用同一个数据库。 比如:项目里面有User模块和Power模块,但是User模块和Power模块并没有直接关系,仅仅只是一些数据需要交互,那么就可以吧这2个模块单独分开来,当user需要调用power的时候,power是一个服务方,但是power需要调用user的时候,user又是服务方了, 所以,他们并不在乎谁是服务方谁是调用方,他们都是2个独立的服务,这时候,微服务的概念就出来了。
微服务和分布式的区别?
谈到区别,我们先简单说一下分布式是什么,所谓分布式,就是将偌大的系统划分为多个模块(这一点和微服务很像)部署到不同机器上(因为一台机器可能承受不了这么大的压力或者说一台非常好的服务器的成本可能够好几台普通的了),各个模块通过接口进行数据交互,其实 分布式也是一种微服务。 因为都是吧模块拆分开来变为独立的单元,提供接口来调用,那么 他们本质的区别在哪呢? 他们的区别主要体现在“目标”上, 何为目标,就是你这样架构项目要做到的事情。 分布式的目标是什么? 我们刚刚也看见了, 就是一台机器承受不了的,或者是成本问题 , 不得不使用多台机器来完成服务的部署, 而微服务的目标 只是让各个模块拆分开来,不会被互相影响,比如模块的升级亦或是出现BUG等等... 讲了这么多,可以用一句话来理解:分布式也是微服务的一种,而微服务他可以是在一台机器上。
微服务与Spring-Cloud的关系(区别)?
微服务只是一种项目的架构方式,或者说是一种概念,就如同我们的MVC架构一样,那么Spring-Cloud便是对这种技术的实现。
微服务一定要使用Spring-Cloud吗?
我们刚刚说过,微服务只是一种项目的架构方式,如果你足够了解微服务是什么概念你就会知道,其实微服务就算不借助任何技术也能实现,只是有很多问题需要我们解决罢了例如:负载均衡,服务的注册与发现,服务调用,路由。。。。等等等等一系列问题,所以,Spring-Cloud 就出来了,Spring-Cloud将处理这些问题的的技术全部打包好了,就类似那种开袋即食的感觉。。
先给大家分享一波福利里面包含了一些Java后端开发岗位的面试题、主要都是互联网行业的,还有一些是Java架构方面的技术资料,里面包括有Java高并发、分布式、微服务、JVM、源码分析等技术讲解
这些面试题领取方式加群:810589193,点击链接加入群聊【Java架构学习交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl免费获取
Num1
Spring是干什么的,为什么会有这个框架?(What,Why)
说下Spring的IOC和AOP,实际中用过AOP没,怎么用的,IOC的底层通过什么实现的?什么是反射?为什么有反射?有没有实际写过反射的例子?
Spring的事务机制的一些属性,传播机制,隔离级别等;
分布式了解不?分布式理论晓得不?CAP相关?
dubbo说一下,dubbo的实现原理?
Spring boot用过没,和Spring区别有哪些?Spring Cloud用过没,原理?Spring Cloud和Dubbo区别?适用场景说下。
数据库的优化做过哪些?Mysql的索引,B+树能简单说下么?
HashMap的实现原理。
项目相关:
在公司都是负责哪些模块,该模块做什么,用哪些技术;项目组多少人,担任的职位;公司的开发流程,需求的评审怎么做。两家公司的开发流程各有什么优缺点,有什么可以改进的;
各项目组之间如何对接工作,与其他对接的项目组或部门,对接中有什么问题,如何解决的;
有没有带过团队,有没有带过新人。带新人/团队都是做什么,有什么问题,如何解决。
Num2
在公司负责什么模块,该模块是做什么的?
如果进行sql优化,从哪几个方面进行着手?
了解dubbo协议和hession协议么?
前端的一些问题(前端的基本都不会了)
rocketmq适用过程中遇到过什么问题,怎么解决的,为什么会出现这些问题?
redis适用时遇到过什么问题,如何解决的。
jdk8的一些特性。
dubbo的一些属性,@reference注解的一些主要参数说下。
Num3
Spring的HTTP请求一个完整的请求流程,如何请求到一个具体的方法;
Spring MVC哪些常用注解,@PathVarible与@RequestParam区别;
集合框架说下,Set/Map/List相关说下,HashMap实现原理,ArrayList实现原理;
Spring FactoryBean作用,具体工作中哪里用到过;
Mybatis常用标签,namespace作用,resultType与resultMap区别,添加对象之后如何获取id;Mybatis缓存说下;
内部类的几种形式,静态内部类和匿名内部类区别;
消息队列适用场景,有哪几种消息类型,点对点与订阅发布区别;
项目如何发布,maven相关说下,maven命令,maven发布流程,ependencies与dependencyManagement的区别;pom常用标签,打包类型除了常用的war,jar,还有什么;
Spring如何加载一个bean,A引用B,B引用A,Spring如何加载这两个bean;
http协议说下,握手机制说下,restful各个请求类型区别;
最大并发量多少,并发相关问题及解决方式;
用过哪些git命令;
Num4
用过哪些git命令,git cherry-pick,git rebase用过没;
个人技术方面的优势/劣势;
synchronized使用过没,底层如何实现的;
redis实际中用在了哪些地方,适用于哪些场景?遇到过什么问题?
Spring的aop及ioc说一下;
mybatis的缓存说下;
dubbo实现原理,接口如何反射到具体的实现上,如何实现 一个接口多个实现;
Thread/Runnable区别,Thread的wait/sleep区别;
HashMap的put过程,ConcurrentHashMap的简单实现;锁的一些分类,什么是可重入锁,哪些是可重入锁;
volatile说一下;
Dubbo与Zookeeper关系,如何注册到Zookeeper,实现原理?Zookeeper多节点,负载均衡怎么做?
线程池相关,线程池的几个属性,创建方式;
数据结构掌握的如何,红黑树/平衡树/B树区别,实现原理简单说下,HashMap中红黑树如何保持平衡;
接触过最大并发量,如何处理并发;
redis是单线程还是多线程,单线程的话如何保证每秒10万+次操作;
分布式简单说下;
如果你想突破自己的天花板,那一定要比别人付出更多,这个过程是很辛苦的。如果你认准了一条路,坚持走下去,你一定会获得很多收获和你满意的答案。
最后,祝愿即将跳槽和已经开始求职的大家都能找到一份好的工作。这些面试题领取方式加群:810589193,点击链接加入群聊【Java架构学习交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl
转载于:https://blog.51cto.com/14214335/2364795