1、微服务技术的发展

   在了解微服务技术之前,我们先回顾一下架构的发展演进。

1.单体架构(将其业务的所有功能集中在一个项目中开发,打成一个包部署)

架构简单,部署成本低,但是耦合度高,造成维护困难,升级困难。

2.分布式架构(根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。)

降低服务耦合,有利于服务升级和拓展。

缺点:服务调用关系错综复杂,服务炒粉也有很多问题需要思考,需要制定一套标准来约束分布式架构:

  • 服务拆分的粒度如何界定?
  • 服务之间如何调用?
  • 服务的调用关系如何管理?

3.微服务

微服务的架构特征:

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

微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。

因此,可以认为微服务是一种经过良好架构设计的分布式架构方案 。

其中在 Java 领域最引人注目的就是 SpringCloud 提供的方案了。

SpringCloud

SpringCloud 是目前国内使用最广泛的微服务框架。官网地址:Spring Cloud

SpringCloud 集成了各种微服务功能组件,并基于 SpringBoot 实现了这些组件的自动装配,从而提供了良好的开箱即用体验。

其中常见的组件包括:

另外,SpringCloud 底层是依赖于 SpringBoot 的,并且有版本的兼容关系,如下:

内容知识

需要学习的微服务知识内容

        服务集群:会根据业务功能模块,把一个单体的项目 拆分成若干个独立的项目,每个项目完成一部分功能,将来进行独立开发和部署,把一个单独的项目称之为服务。一个大型项目会包含上百甚至上千个服务,终于形成一个服务集群。

        注册中心:当服务调用的关系越来越复杂的时候,单靠人去记录和维护是不可能的,所以需要依靠注册中心,它会记住每个微服务的端口 IP,去它那里拉取服务的信息。

        配置中心:统一管理所有服务的配置,去配置中心进行配置的更新。

        服务网关:拦截非法请求,并且进行请求的精准转发给相对应的微服务。

        分布式缓存:数据库无法抗住众多用户高的并发,所以需要缓存,缓存数据是放在内存中,所以访问速度快。所以数据库以后就做写操作,和事务较高的一些数据存储。

        分布式搜索:业务中还有复杂的搜索和海量数据的统计和分析

        消息队列:在微服务中还需要一种异步的消息队列组件,如果用户请求来了,服务A调用B,B调用C 这样链路长了,耗时就特别久,如果使用异步消息队列,用户请求来了服务A往消息队列发送一条消息 通知服务B和C赶紧做事,A就结束了,这样耗时就会减少很多,吞吐量就会增大很多。异步消息队列能够大大增加服务的并发

分布式日志服务:如此庞大和复杂的一个服务,在运行的过程当中,如果出现了什么问题,不好排查,所以在微服务运行中我们会引入两个新的组件,来解决这种服务的异常定位,第一个是分布式日志服务,它可以统计每个服务运行的成千上百的日志,统一的进行存储和统计分析

        链路追踪:实时监测每个服务节点的运行状态,CPU的负载,内存的占用,等等情况,一旦出现问题,能够精准的定位到某一个方法和栈信息。那么你就能够很快速的定位到异常所在了。

        (贴一个网上一个项目的架构图,更深入了解一下微服务架构)

 微服务所需要的技术点

 以及自动化部署(成千上百个微服务不可能使用人工部署,需要用到自动化部署)

微服务框架对比

SpringCloud常用组件有哪些?


SpringCloud包含的组件很多,很多功能都是重复的。其中最常用组件包括:

1、注册中心组件:Eureka、Nacos等

2、负载均衡组件:Ribbon

3、远程调用组件:OpenFeign

4、网关组件:Zuul、Gateway

5、服务保护组件:Hystrix、Sentinel

6、服务配置管理组件:SpringCloudConfig、Nacos

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值