微服务架构解析

一、概念:

在学习微服务之前,需要先了解一下微服务的概念。微服务并不是一种技术,而是一种架构层的优化,在微服务面试之前,很多的应用都是采用单体的模式进行打包的,也就是程序的所有功能全部打成一个jar包或者war包,这样的程序耦合度太高,多人协作开发的过程会出现各种代码冲突的问题,在运维层面也会因为一个小修改就需要整体重启,运维效果就不是很好,因此引入了微服务的架构。

微服务是在传统的程序基础上进行了拆分,将所有的功能模块进行独立出来作为一个小项目进行开发(分布式),各模块之间相互之间不影响,通过接口相互调用,大大的降低了程序之间的耦合度,提高实用度。

PS:微服务就是实现分布式的一种架构

二、优点/特点:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
  • 自治:团队独立、技术独立、数据独立,独立部署和交付
  • 面向服务:服务提供统一标准的接口,与语言和技术无关
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

三、架构分析:

目前市面上主流的微服务架构就是SpringCloud、SpringCloudAlibaba、Dubbo这三种,具体架构图如下:

架构图解析:

1)、服务集群:程序的主题,多个微服务程序组成的分布式集群

2)、注册中心:核心功能提供微服务的注册,监控等功能

3)、配置中心:提供微服务的统一配置功能

4)、服务网关:设置统一的对外接口,通过网关路由进行转发

5)、消息队列:提供服务的异步任务执行

6)、分布式缓存:分布式缓存能够高性能地读取数据、能够动态地扩展缓存节点、能够自动发现和切换故障节点、能够自动均衡数据分区,而且能够为使用者提供图形化的管理界面,部署和维护都十分方便。

7)、分布式搜索:分布式搜索技术是一种基于分布式计算的搜索引擎技术,它使用多台计算机协同工作来处理大规模的数据和复杂的搜索请求。

PS:微服务技术对比:

四、技术栈

技术架构图:

1、注册中心技术:Eureka、Nacos

采用微服务架构后,软件组件各个独立,最终还要组合为一个软件系统服务于用户,这时软件之间需要通信,调用方法。微服务架构中发起调用的一方称为“服务消费者”,被调用的称为“服务提供者”,往往为了提高系统性能,会提供多个服务器提供服务;为了帮助服务消费者更快的发现服务提供者,微服务引入注册中心的概念。

注册中心核心的功能就是提供了服务的注册。开发人员将微服务集群中的所有的服务全部注册到注册中心统一管理,在A程序需要调用B程序的接口时,只需要向注册中心发起请求获取B程序的所有实例,再通过Ribbon负载均衡算法,选择一个实列进行访问即可,大大降低程序之间的耦合。

PS:一般微服务在注册的时候会指定服务名,调用者可以通过服务名从注册中心获取想要的访问资源。市面上常用的注册中心技术Eureka和Nacos(后续介绍)

2、负载均衡技术:Ribbon

负载均衡技术跟传统的负载均衡没有什么区别,基于微服务的特殊架构,可以对每个功能的微服务单独组建集群以此提供程序的运行效率,此时就需要用到负载均衡技术,在A程序访问B程序的时候,如果B程序是一个集群,那么A程序通过注册中心能获取到B程序的多个节点,如果A程序每次固定访问同一个B程序节点那么B程序的集群就失去了意义,所以这里就引入了负载均衡技术(一般是使用Ribbon),通过负载均衡算法去指定一个节点,这样A程序再通过这个节点去访问B程序的功能接口,至此完成了负载均衡。

3、配置中心技术:Nacos

在微服务架构中每一个微服务都代表了一个程序一个jar包,每个jar包都有自己独立的配置文件,若是按照传统模式进行配置参数,那么每个微服务都需要单独配置,这样运维难度就非常大,在微服务过多的时候修改配置文件就十分耗时,而且在同一个程序的微服务集群中所用的配置文件是相同的,因此就引入了配置中心技术。

配置中心的核心功能就是对程序的配置文件进行统一管理,将每个微服务的配置文件存放在同一个地方,在服务运行的时候,统一从配置中心读取自己的配置文件进行运行;并且配置中心还可以进行配置文件版本管理,开发人员可以对程序不同环境(测试、生产)的配置文件进行统一管理,后续进行测试或者上线的时候就方便很多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值