微服务概念

微服务概念学习

在传统单体服务无法满足高并发、高请求、高数据量的系统需求后出现的一种新软件设计技术,在实际使用中一般是一框架的形式来使用他(Spring Cloud、Dubbo)。
在微服务中一般将应用程序构造为一组松散耦合的服务,服务(业务)功能分的较细且不相互影响可独立部署(但也不可分得过细,只在需要的时候细分(如:部署变更变得越来越困难,通用数据模型变得过于复杂,其中的不同部分服务具有不同的负载/规模要求)),不会出现一处错误导致整个项目崩溃

单体应用:

web应用 – 服务器 – 数据库

单体应用升级:

1:负载均衡(性能优化)

web应用 – 多个服务器(应用服务器集群) – 数据库

通过负载均衡把大量请求均衡地分配给多个服务器处理

在这里插入图片描述

2:数据库读写分离(性能优化)

web应用 – 多个服务器(应用服务器集群) – 多个数据库(读写分离)

读写分离,解决的是,数据库的写入,影响了查询的效率。
由一部分数据库负责写入数据,写入数据后同步到其他数据库中,而其他数据库只负责查询数据
(一般来说写入数据库称之为主库,读取数据库称为从库)
在这里插入图片描述

3:加入redis服务器集群与搜索引擎(性能优化)

web应用 – 多个服务器(应用服务器集群) – 多个数据库(读写分离、主要负责写入数据)、redis数据库集群(主要负责读经常使用到的数据)、搜索引擎

数据库的模糊查询,效率低下,且查询结果不准确,因此使用搜索引擎来进行模糊查询
经常需要查询的数据如果每次都从数据库查询不仅效率低下,还会占用数据库连接增加负担,因此将大量的经常使用的数据存放在redis数据库集群中
在这里插入图片描述

4:服务化(解耦、业务分化)

在项目中不同模块业务模块代码之间的耦合度过高,使得一个模块出问题整个项目直接崩溃
每一次代码更新都必须在所有服务器上重新部署,使得维护和更新困难
有些不常用业务不必部署在多台服务器上
服务化就是将项目按照模块来进行分割,把每个模块都做成一个可以独立运行,单独部署的的应用程序,这些单独的应用程序也叫做服务
优点:
这些服务可以独立部署在服务器上,这样就可以做到根据业务的使用热度来增加或减少部署的服务器
这些服务可以有自己的数据库,可以独立地访问数据库

但是服务化后也会引发大量的问题
如:

  1. 服务之间怎么调用?怎么调用更加的稳定,更加高效?【服务调用技术】
  2. 服务之间怎么负载均衡?【负载均衡技术】
  3. 服务怎么被管理?服务怎么定位?有故障了怎么处理?【服务注册与发现技术】
  4. 故障怎么监控?微服务系统中业务模块很多,组件也很多,不同组件的指标不同,那么这些组件怎么进行监控**【监控技术】**
  5. 故障怎么定位?微服务架构中,一个用户的请求会涉及到多个内部服务的调用,那么如何定位问题呢?【链路追踪技术】
  6. 日志怎么分析处理?业务模块多了,日志也就多了,直接查看日志文件已经变的不显示了,那么如何对日志进行分析查找呢?【日志分析技术】
  7. 权限管理?微服务拆分服务之后,会有很多服务对外暴露接口,这些接口如何进行统一的权限处理呢?【网关技术】
  8. 服务调用出现问题怎么处理?当一个服务因为各种原因停止响应时,调用方通常会等待一段时间,然后超时或者收到错误返回。如果调用链路比较长,可能会导致请求堆积,整条链路占用大量资源一直在等待下游响应。怎么解决呢?【熔断,降级,限流】

这些问题我们一般使用各种新技术来帮助解决,这些新技术我们一般称之为组件

总结:什么是微服务

1. 每个服务可独立运行在自己的进程里
2. 一系列独立运行的微服务共同构建起整个系统
3. 每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如订单管理,用户管理
4. 微服务之间通过一些轻量的通信机制进行通信,例如Restful API进行调用
5. 可以使用不同的编程语言与数据存储技术开发

https://blog.youkuaiyun.com/weixin_50074995/article/details/116310531?spm=1001.2014.3001.5502
(springCloud服务治理)

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值