请添加vx小助手:xiehuangbao1123 领取java全套学习资料
秋招了,面试Java开发,微服务已经是最小的门槛的了,而你连最简单的都不会,我吐了!
为什么java程序员一定要掌握微服务?
近几年,微服务架构迅速在整个技术社区窜红,被认为是 IT 软件架构的未来方向。一线互联网公司由于具有大量的业务体量和业务场景,比如阿里、百度、网易,很早就开始入坑微服务架构。
但说起微服务,不少人还是有这样的困惑:“作为一个开发,微服务架构是不是和我关系不大?那不都是架构师的事吗?”
关于这个问题,我来谈谈自己的看法。
微服务是当下最火热的后端架构之一。不管你是一个什么级别的程序员,也不论你在一个什么体量的公司,服务化都是你迟早会遇到的难题。实践微服务的过程本身也是一个升级打怪的过程,这中间你会遇到基本上所有后端架构的问题。解决了这些问题,你自然也就理解了那些高深的概念,也就成为了一名架构师,成长和能力提升都是这个过程的附属品。
并且,你了解微服务架构之后,能知道领导为什么让你这么做,也更容易站在系统角度思考公司技术的进程,这对于你的大局观构建来说非常有帮助。
再者,微服务这技术在面试的时候总有人提,尤其对于头部互联网企业,微服务架构更是面试考核必备。
一、微服务架构面临的四个核心问题?
-
服务很多,客户端应该如何访问? API网关
-
这么多服务?服务之间如何通信? HTTP,RPC通信
-
这么多服务?如何治理? 服务注册与发现
-
服务挂了怎么办?熔断机制
二、解决方案
Spring Cloud生态
-
SpringCloud NetFlix :一站式解决方案
api网关,zuul组件
通信: Feign ----HttpClinet ----Http通信方式,同步,阻塞
服务注册与发现:Eureka
熔断机制:Hysstrix
-
Apache Dubbo Zookeeper:半自动,需要整合别人的
API网关:没有,需要找第三方组件,或者自己实现
通信:Dubbo,异步非阻塞
服务注册与发现:Zookeeper
Dubbo这个方案并不完善
-
Spring Cloud Alibaba 一站式解决方案,更简单
重点概念:
-
API网关
-
HTTP,RPC通信
-
服务注册与发现