从一个极简的微服务架构开始

我们可以通过一个简单的微服务架构图,来认识微服务,这里就涉及到了几个比较重要的几个概念和组件,

首先从右边看,看到了服务网关,然后是服务注册和发现,那下边是一个前端服务,可以看出前端服务和后端服务,

都是可以集群化的,我就画了多个,服务注册发现也是,前端服务和后端你看,下面我来具体说说这几个部分的含义,

和他们的作用

我们之前有说到微服务的定义,它是由一系列微小的服务组成的,所以可以想象,服务间必然要通过

某些机制,进行通信,由此你应该可以想到,必须需要服务注册与发现,这么一个组件,也就是说,服务提供方,

你可能要注册上来,并且把自己的地址,一些信息告诉一下,然后服务的调用方,从这个组件上才能正确的发现,

接着微服务内部,相互调用和通信之外呢,他必然还要让外界访问的到,比如手机啊,或者是浏览器之类的,所以他要

通过一种方式,将自己的服务暴露出去,这就涉及到服务的前端路由,对应的服务呢是服务网关,服务网关是连接内外的

大门,主要有以下几种,网关会对外屏蔽,后端的一些细节,比如我后台的程序要升级,或者有一些变化,但是堆用户是无

感知的,他还有一个路由的功能,可以将外部的请求反向到内部的微服务里去,还可以做一些限流和容错的功能,因为所有的

请求都会经过网关,你可以在这控制流量,监控和日志也可以在这一块做好,要做好微服务的安全性,可少不了服务网关,

因为所有的请求都会经过这,所以网关可以对请求进行几种控制,比如用户的认证,授权,爬虫等等,所以服务网关的作用非常之巨大,

要看公司系统好不好呢,基本上只要看一下服务网关就行了,还有什么关键的组件呢,后端通用服务,也称为中间层服务,还有对应的

前端服务,也可以称为边缘服务,我习惯性称为前端服务,那这两者有什么关系呢,后端服务在启动的时候,会将地址信息注册到

注册表里面,而前端服务就可以发现和调用后端服务,前端服务的作用是什么呢,他主要是对后端服务做聚合,暴露给外边的设备,

有小伙伴对聚合和裁剪,这两个概念可能不是很理解,我解释一下,聚合是比如对多个API逻辑进行聚合,从而减少客户端的请求数,

合二为一吗,比如客户端要请求两个API,一个接口获取的是用户的信息,基本信息,身高,年龄,体重这些信息,那另一个用户获取的

是用户的地址,那这两个服务都是由后端来提供的,如果客户端直接来调的话要调两次,这个时候前端服务可以来做一个聚合,把这两个

即可合二为一,作为一个接口提供出去,那这个时候只需要调用前端服务的一个接口,这就是聚合,裁剪刚好跟他相反,不同的需求

返回不同的数据,比如都是商品详情的接口,如果PC端请求过来的话,详情的内容尽量的返回的详细一些,那你如果是手机端过来的话,

我可能详情就没有那么详细,这一点大家在淘宝的时候呢,应该非常有感触,你在电脑上看到的详情和手机上看到的详情明显是

不一样的,又或者电脑上返回的是HTML,那手机上返回的可能是JSON的报文,这个时候也是由前端服务,做了一个裁剪的操作,

聚合和裁剪都是由前端服务来做的,大家应该能够分辨这两者的职责了

我们来观察一下这两幅图,先从右边这幅图看起,右图,Vue WEB APP,原来是需要和SpringBoot后端

服务进行通信,所以他没有服务注册和发现,那么我们现在加上服务注册和发现,和服务网关,这两个给他加上,

Vue WEB APP对应这边的前端服务,SpringBoot后端服务呢,对应这边后端通用服务,我们会发现,这里又直接套上

微服务的架构了,只是这两个组件在正常的微服务看来,显得比较胖,那怎么样胖子给他减肥呢,同时我们还会加上相应的

组件,国内治疗这种肥胖呢,有两大手段和途径,就从实现架构层面来说,他不一定是要SpringCloud的

就从实现架构层面来说,他不一定是要SpringCloud的,一种是阿里系,那另外一种就是我们要讲的SpringCloud栈,

如果用阿里系的配方,核心就是Dubbo,一般会用Dubbo做服务化治理,使用Zookeeper做服务注册中心,大概在17年的

7/8月,Dubbo死而复生之后呢,就开始疯狂的更新,据说Dubbo3.0已经开始提上了日程,由于国内很过公司原始的业务,

就是依托Dubbo做服务化治理的,加上现在Dubbo的社区气候回暖,生命力还是很强的,另外一派就是SpringCloud,

全家桶系列了,我们先了解一下SpringCloud是什么

SpringCloud它是一个集合,它是一个开发工具集,集合了众多的开源框架,注意他不是自己造轮子,

他吸收了很多优秀的开源框架,SpringCloud利用SpringBoot开发的便利性,实现了很多功能,诸如服务注册,

服务注册与发现,负载均衡,数据监控,Rest API发布方式等等,基本囊括了分布式框架,所需要的所有功能,

在整合课程中呢,最主要的是对于Netflix开源组件的进一步的封装,国内喜欢看美剧的给他起了一个中文名,

它是美国一家在线视频网站,有点类似于国内的爱奇艺之类的网站,微服务的翘楚就是Netflix,它是最杰出的

实验者,经过多年的实战验证,所以SpringCloud很多组件都是基于Netflix,开源组建的进一步封装,然后我们来

看一下SpringCloud的作用

在看来他就是简化了分布式开发,极大的降低了分布式开发的门槛,也正因为如此,

我认为掌握SpringCloud相关组件,怎么用这些都是其次的,我们应更理解分布式的特点,

各种架构的特点,这样才能更好的用好相关组件,这是最重要的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值