李明明架构师
English

微服务发展过程

liming

今天我们聊一下微服务的发展过程。

聊微服务架构,首先我们要回顾一下单机架构

单机架构

早年所有的模块都在一个项目里面

当时程序员为了让项目更方便维护

提出了分层、松耦合

代价是增加了代码量

同时也不能很好的解决复杂且大型项目的可控性、可维护性和性能等问题。

还有就是当年与别的项目对接,如果是同语言的话,我们可以引用jar,.net 引用dll,

但是对于不同语言,比如,php, .net, power build,dephi等 等

很不方便

那么大家就开始推动WebService来解决与其他项目对接

Web service

Web service是一个rpc的模型

我们只需要管url, parameters, result format

而且客户端不用管web service更新

这比dll , jar , .h要松耦合很多了。

但是随着时间 的推进

我们会发展项目中引用了太多的Web service,太乱了

那么这个时候 ,微服务Sdk就登场了。

流行的微服务:dubbo, spring cloud, wcf等 等

register

微服务SDK给我们带 来了,服务注册,服务发现,负载均衡等

这给我们架构设计带 来了革命性的意义

那么这个时候我们将项目拆分成下图这种

微服务架构

由于项目从单机架构所有业务在一起,到多服务

首先代码量少了,这直接就降低了复杂度

同时我们可以更方便的应用多数据库架构

比如notification service我们可以上cassandra

User service上hbase等 等

这个时候 ,你会不会感觉微服务很棒,很完美 了

那么你现在要思考一下,微服务SDK的缺点是什么 :

侵入式,学习成本高

侵入式:

所有服务都需要显式地配置微服务sdk的环境

运维层面也要为微服务sdk准备一套的中间件

学习成本高:

所有参与到微服务sdk的程序员都需要学习此微服务sdk

那么我们看一下下一代的微服务技术:服务网络Service mesh

kuberneters service,已经具备非侵入式、程序员无感知等特性

kuberneters service架构:

ingress -> service

ingress

服务网络

Service mesh

==============================

OK,欢迎大家加入QQ群讨论。

也可以直接在评论区交流

看到会回复。

Q群:559722761

微信群:

group qr

抖音|B站|小红书:李明明-架构师