首先我希望能用三言两语,把微服务解释清楚,因此尽量避免废话,
然后这里说的都是JAVA的
原先一个大web后端系统是一个java进程,包含全部的功能
缺点是
因此我们
把一个大系统拆分成多个java进程
每个java进程负责一部分业务,比如一个负责用户相关的,一个负责订单相关的,分别两个人负责
然后放到两个git上,两个开发人员各自维护自己的git即可,分别可以独立部署
然后我们会发现,如果用户服务和订单服务需要数据交互怎么办,因此出现了RPC框架
然后我们发现虽然服务间数据交互简单了,但是因为每个服务独立部署,因此前端开发访问用户服务和订单服务可能是两个不同的IP和端口,因此
然后我们发现,这么多服务那么混乱,有没有一个统一的地方,把所有服务都列出来,然后可以看每个服务的状态和ip端口呢,因此
以上已经可以足够做到最简单的微服务系统了,因此到此为止。
一句话总结,注册中心管理所有的微服务,网关把前端请求转发到所有的微服务,RPC是一种不同服务间简单方便的通信方式,有这三个就已经足够搭建最基础的微服务环境了
这里我们使用 spring clould 一系列组件,关于各种技术选型我这里只说个人研究后的最佳结果,不说原因,原因已经经过大量分析,这里主要是记录和教程,不做讨论。
然后eureka作为注册中心
feign作为RPC框架
zuul作为网关
以上概念+实现概念的具体的技术框架就可以搭建一个微服务系统了