什么是微服务?
以下是我个人的见解:
微服务:顾名思义,通俗的讲,就是把原来一个项目的各种功能模块,拆分出来,不同功能单独一个节点(服务器),这样做的好处,就是可以让资源最大化的被处理,就比如双十一的时候,很多人都需要购买,我们可以给购买功能模块分配很多台服务器,而评价功能可能在双十一的时候用的比较少,我们这里就可以少分配点服务器。
微服务架构的四个核心问题:
1、这么多服务,客户端应该如何访问?
2、这么多服务,服务之间如何通信?
3、这么多服务,应该如何治理?
4、服务器坏了,怎么处理?
两套现成的解决方案
-
Spring Cloud NetFlix(2018年年底,停止维护。生态不再维护,就会脱节)
Api网关,zuul组件
Feign--> Httpclient->HTTP的通信方式,同步并阻塞
服务注册与发现, Eureka
熔断机制, Hystrix
-
Apache Dubbo zokeeper
API网关:没有!要么找第三方组件,要么自己实现
Dubbo是一个高性能的基于]ava实现的RPC通信框架
服务注册与发现,zookeeper:动物园管理者(Hadoop Hive)
熔断机制,没有:借助了 Hystrix
暂时学习了Dubbo+zookeeper:
(以下是个人理解)
Dubbo:RPC框架,就是负责微服务中每台服务器之间的联络,远程调度,一台服务器可以调度另一台服务器。
服务注册与发现:客户端使用功能的时候,需要把每个服务器的模块都先去zookeeper注册一下,然后我们才可以让用户去找到对应的模块。
网友评论