0
点赞
收藏
分享

微信扫一扫

微服务01_到底什么是微服务?学习微服务导学

云竹文斋 2022-03-23 阅读 48
java

微服务01_到底什么是微服务?学习微服务导学

在这里插入图片描述

一、什么是微服务?

微服务是分布式架构的一种,所以说分布式架构是将服务进行拆分,而拆分的过程当中会产生各种各样的问题。

微服务技术是Spring Cloud技术吗?

而SpringCloud仅仅是解决了拆分的服务治理问题,至于其他的问题并没有基于方案。

在这里插入图片描述

二、微服务都有哪些技术?

拆分

微服务第一件事就是:拆分。
传统的单体架构,所有的业务逻辑写在一起,随着业务越来越复杂,代码也变得耦合严重,升级维护就很困难。
在这里插入图片描述

服务集群

拆分会根据业务逻辑模块,将单体的项目,拆分成多个独立的项目。每个项目完成一部分业务功能。将每一个独立的项目称之为“服务”。一个大型的互联网项目,往往有数百上千的服务。从而成为服务集群
在这里插入图片描述

而一个业务往往需要多个服务共同完成。当业务越来越多,越来越复杂,服务之间的调用关系就会越来越复杂。–》从而有了注册中心

注册中心:拉取和注册服务信息

注册中心就可以记录微服务中的,每个服务的ip、端口。当服务A想调用服务B的时候,它不需要自己去记录服务B的IP。只需要去找服务中心即可。从注册中心去拉取服务信息。从而每个服务越来越多,每个服务都有自己的配置文件,如果更改配置就得逐一去更改吗? -》从而有了配置中心
在这里插入图片描述

配置中心

统一的管理整个服务群里整千上百的配置,如果有配置需要变更,只需要去配置中心进行更改即可。更改后,配置中心会通知相关的微服务,实现配置的热更新。当微服务跑起来以后,用户就可以访问了。-》从而有了服务网关
在这里插入图片描述

服务网关

因为微服务中有很多服务,用户不知道该访问哪一个服务,并且也不是随意访问某一个服务。所以功能是:【校验身份、请求路由、负载均衡】一方面对用户身份进行校验,另一方面可以将用户的请求路由到具体的服务,路由中可以做一些负载均衡。 当用户访问微服务时,就会对数据库进行操作,并且将数据库的信息返回给用户。由于用户超级多,那么数据库很少,从而有了高并发,从而加入了缓存
在这里插入图片描述

分布式缓存

缓存:数据库数据放到内存当中。内存的查询效率会比磁盘(数据库)查询效率高很多。那么也会将缓存作为集群。 用户简单请求先到缓存,缓存未命中,再去数据库。那么还会有复杂的搜索功能,而海量的复杂搜索必须交给分布式搜索。 而数据库的功能:数据的写操作、事务类型对安全要求较高的操作。

分布式搜索

复杂的搜索功能,而海量的复杂搜索必须交给分布式搜索。是因为缓存中的空间有限,不适合海量的数据存储。
在这里插入图片描述

消息队列

异步通信的消息队列组件,对于分布式的服务,业务往往跨越多个服务。例如一个请求来了,先调用A,在调用B…。从而整个业务的链路就很长,调用时长就等于 调用每个服务的时长之和。从而会导致性能的下降。
异步通信的意思是:当请求来了,调用了服务A,A并不是去调用服务B和C,而是发一条消息,通知B和C去工作。然后服务A结束工作。从而业务链路变短了。从而相应时间变短了。。从而异步通信可以提高服务的并发,例如在一些秒杀高并发的场景下,就可以去利用了。
在这里插入图片描述

分布式日志服务、

那么如此庞大的服务,运行的过程当中,如果出现了问题非常不好排查,从而就有了两个组件:分布式日志组件、
分布式日志组件:整个集群当中的服务日志,进行统计、存储、分析。将来出现了问题容易定位。

系统监控,链路追踪

实时监控整个集群当中,每一个服务节点的运营状态,CPU的负载,占用情况。一旦出现任何问题,直接可以定位到具体的方法。从而快速定位信息。
在这里插入图片描述

持续集成

成千上万的微服务,那么还需要人工去一点点部署吗?微服务集群还需要进行自动化部署,JenKiins工具
可以对微服务项目进行自动化编译,基于doker进行打包,形成镜像
在基于KBS、RANCHER,去实现自动化部署。

在这里插入图片描述

微服务技术+持续集成=完整的微服务技术栈

在这里插入图片描述
在这里插入图片描述

举报

相关推荐

0 条评论