微服务技术概述

1.微服务的由来

在谈论微服务之前,先来认识一下服务架构:

服务架构可分为单体架构分布式架构

单体架构就是将业务的所有功能集中在一个项目中开发,打成一个包部署。优点是架构简单,部署成本低;缺点则是耦合度高,维护升级都很困难。

分布式架构就是根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。优点是有效降低服务耦合,有利于服务的升级和拓展,缺点是服务间调用关系错综复杂。

而本章要讨论的微服务,就是一种经过良好架构设计的分布式架构方案

微服务有如下几个特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责

  • 自治:团队独立、技术独立、数据独立,独立部署和交付

  • 面向服务:服务提供统一标准的接口,与语言和技术无关

  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

其实这些特征就是在给分布式制订标准,降低服务间耦合度,提高服务独立和灵活性。

Java领域微服务的王者就是SpringCloud提供的方案了。

2.微服务技术栈

提到微服务技术,好多人就会想到SpringCloud,但是微服务技术不仅仅包含SpringCloud,下面我将从一个大型单体项目讲起,一步步分析引入微服务技术栈

服务集群

对于一个大型单体项目,微服务要做的第一件事就是拆分,传统的单体架构,所有的业务功能都写在一起,随着业务越来越复杂,代码也越来越多,将来想要升级维护就会很困难。微服务在拆分的时候会根据业务功能模块,把一个单体项目拆分成功能独立的项目,每个项目完成一部分业务功能,将来独立开发和部署,我们将每个独立的项目称为服务,一个大型互联网项目往往包含数百上千的服务,最终形成服务集群

 

注册中心和配置中心

当一个请求到来的时候,服务a可能会去调服务c,服务c再去调服务e,当业务越来越复杂的时候,服务间的调用关系就会混乱不堪,想靠人去记录和维护是不可能的,这时候就要引出注册中心

 

注册中心能记录每个微服务的ip、端口、能干什么事情,这样当一个服务需要去调用另外一个服务时,它不需要去记录对方的ip、端口信息,只需要去注册中心拉取即可。

同时,随着服务越来越多,每个服务的配置文件也越来越多,当我们需要修改时,若一个个修改则太麻烦了,所以再微服务里面还有一个配置中心,它可以统一管理服务集群里面所有服务的配置,如果你需要跟新某个服务的配置,只需要修改配置中心相应配置,它会去通知相关服务去修改配置实现配置的热更新

 

服务网关

服务跑起来之后,当用户来访问时,究竟去访问哪个微服务呢,这时候就需要一个网关组件,网关组件还能让微服务不对外暴露,不是什么人都能随便访问微服务的

 

当然,在访问的时候还会去做一些负载均衡。

分布式缓存和分布式搜索

这样,客户访问网关,网关调用微服务,微服务再调数据库集群进行操作。

 

可是数据库集群再多也不会多过用户,数据库将来肯定无法抗住高并发,因此我们还会加入分布式缓存

 

以后我们的业务中肯定会涉及查询功能,海量数据的复制搜索和分析,这时候还需要分布式搜索功能。那么数据库以后就主要用来进行写操作和事务类的对安全性要求较高的操作。

消息队列

最后,在微服务中还需要异步通信的消息队列组件:

 

为什么要消息队列呢,在一个请求到来时,假设调用了服务a,用时10ms,但是服务a调用了服务c,又用时10ms,而服务a在调用c的时候自己也不能再处理新的请求,这样就降低了整体服务效率。消息队列就将服务调用改为了服务通知,服务a在处理完自身的事情后只需要通知服务c,在服务c处理时自己就可以去处理新的请求,这样业务链路变短了,整个服务的吞吐能力也就变强了。所以异步通信可以大大提高服务的并发。

分布式日志和系统监控链路追踪

这么庞大的集群,若某处发生问题是很难定位的,所以这时候有引入了分布式日志,分布式日志可以统一的为所有服务日志做存储、统计、分析,将来出问题就比较好定位了。

 

还有一个组件叫做系统监控链路追踪,它可是时时监控系统中每个节点的运行状态,cup负载,内存占用等情况,一旦出现问题就可以追踪定位到某个方法,栈信息,我们就可以很快速的定位到异常所在了。

持续集成

如此庞大的微服务集群,可能会达到数千上万的服务,部署也成了一个问题。靠人工部署肯定不现实,所以以后还会进行自动化部署

 

我们可以利用Jenkins工具对微服务项目进行自动化编译,基于docker做一些打包,形成镜像,再基于k8s或者是RANCHER技术去实现自动化的部署。这一套工具就被称为:持续集成

结合微服务技术加上持续集成,这才是完整的微服务技术栈

3.技术分类

微服务的技术可大致分为五类:

 

其中,微服务技术就是常说的SpringCloud部分;异步通信即MQ技术;分布式缓存技术;DevOps即持续集成技术;分布式搜索技术

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PaaS平台微服务是一种基于微服务架构的应用程序开发和部署模式,它将应用程序拆分为一组小型、自治的服务单元,每个服务单元都可以独立开发、部署和扩展。PaaS平台微服务具有以下优势: 1. 独立开发和部署:PaaS平台微服务允许每个服务单元独立开发和部署,开发团队可以使用不同的编程语言、框架和工具,根据需求进行灵活的技术选型。这样可以提高开发效率,同时减少对整个应用程序的影响。 2. 弹性扩展:PaaS平台微服务可以根据需求对每个服务单元进行独立的水平扩展,只需要增加相应的实例数量即可。这样可以更好地适应应用程序的负载变化,提高系统的可伸缩性和性能。 3. 独立维护和更新:由于微服务是独立的服务单元,因此可以针对特定的需求进行独立的维护和更新,而不会影响其他服务单元。这样可以降低系统维护的风险和复杂性,并且可以更快地发布新功能和修复bug。 4. 技术多样性:PaaS平台微服务允许使用不同的技术栈和组件来构建每个服务单元,这样开发团队可以选择最适合其需求的技术和工具。这种技术多样性可以提高开发团队的灵活性和创新性。 5. 系统解耦和可维护性:微服务架构通过将应用程序拆分为小型服务单元,减少了各个服务之间的耦合度。这样可以提高系统的可维护性,使得开发团队可以更快地理解和修改特定的服务单元,而不会影响整个应用程序。 总的来说,PaaS平台微服务的优势在于独立开发和部署、弹性扩展、独立维护和更新、技术多样性以及系统解耦和可维护性,帮助开发团队更好地构建、部署和维护复杂的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值