微服务发展过程
今天我们聊一下微服务的发展过程。
聊微服务架构,首先我们要回顾一下单机架构
早年所有的模块都在一个项目里面
当时程序员为了让项目更方便维护
提出了分层、松耦合
代价是增加了代码量
同时也不能很好的解决复杂且大型项目的可控性、可维护性和性能等问题。
还有就是当年与别的项目对接,如果是同语言的话,我们可以引用jar,.net 引用dll,
但是对于不同语言,比如,php, .net, power build,dephi等 等
很不方便
那么大家就开始推动WebService来解决与其他项目对接
Web service是一个rpc的模型
我们只需要管url, parameters, result format
而且客户端不用管web service更新
这比dll , jar , .h要松耦合很多了。
但是随着时间 的推进
我们会发展项目中引用了太多的Web service,太乱了
那么这个时候 ,微服务Sdk就登场了。
流行的微服务:dubbo, spring cloud, wcf等 等
微服务SDK给我们带 来了,服务注册,服务发现,负载均衡等
这给我们架构设计带 来了革命性的意义
那么这个时候我们将项目拆分成下图这种
由于项目从单机架构所有业务在一起,到多服务
首先代码量少了,这直接就降低了复杂度
同时我们可以更方便的应用多数据库架构
比如notification service我们可以上cassandra
User service上hbase等 等
这个时候 ,你会不会感觉微服务很棒,很完美 了
那么你现在要思考一下,微服务SDK的缺点是什么 :
侵入式,学习成本高
侵入式:
所有服务都需要显式地配置微服务sdk的环境
运维层面也要为微服务sdk准备一套的中间件
学习成本高:
所有参与到微服务sdk的程序员都需要学习此微服务sdk
那么我们看一下下一代的微服务技术:服务网络Service mesh
kuberneters service,已经具备非侵入式、程序员无感知等特性
kuberneters service架构:
ingress -> service
服务网络
==============================
OK,欢迎大家加入QQ群讨论。
也可以直接在评论区交流
看到会回复。
Q群:559722761
微信群:
抖音|B站|小红书:李明明-架构师