5分钟搞懂分布式基础概念
分布式基础概念
1、微服务
拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行
2、集群、分布式、节点
集群
-
是一种物理形态
-
将几台服务器集中在一起,实现同一业务
分布式
-
是一种工作方式
-
若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统
-
将不同的业务分布在不同的地方
节点
-
集群中的一个服务器
3、远程调用
分布式系统中,各个服务可能处于不同主机,但是服务之间不可避免的需要互相调用,我们称为远程调用。
SpringCloud中使用HTTP+JSON的方式完成远程调用。
4、负载均衡
A服务调用B服务,B服务部署在多台机器,A发送请求到任意一个服务器均可完成调用。
为了使每台服务器不至于忙于处理请求,可以将请求均衡到每一个服务器,提升网站的可用性。
负载均衡算法:
-
轮询:请求依次按顺序分发到不同的可用服务器执行,循环分发请求。
-
最小连接:分发请求到连接数最少的服务器。场景:处理请求用时较长的场景。
-
散列:根据用户请求的IP地址的散列(hash)来选择要转发的服务器。场景:需要处理状态而要求用户能连接到相同服务器。
5、服务注册、服务发现、注册中心
A服务调用B服务、C服务,但是A服务不知道B、C服务所在的服务器是正常还是下线,注册中心可以帮助解决。
注册中心实时知道哪些服务正常,哪些服务下线,也能记录新增的正常服务。服务之间调用不需要去判断哪些服务正常,注册中心会告诉服务有效的调用地址。
服务注册:服务将自己的IP和端口报告给注册中心的过程。
服务发现:查询可用微服务列表及其网络地址的机制。
注册中心:集中记录每个服务的地址,注册和注销服务。
服务检查:检查已注册的服务,如发现某服务长时间无法访问,则会从注册中心移除该服务。
6、配置中心
每个服务都有大量配置,更新一个配置,需要同步到每个服务,如何修改每个服务的配置呢?
每个服务从配置中心获取配置,自动更新自己的配置。
7、服务熔断、服务降级
mark
下单场景:用户下单了一个商品,客户端调用订单服务来生成预付款订单,订单服务调用商品服务查看下单的哪款商品,商品服务调用库存服务判断这款商品是否有库存,如有库存,则可以生成预付款订单。
雪崩场景:
-
第一次滚雪球:库存服务不可用(如响应超时等),库存服务收到的很多请求都未处理完,库存服务将无法处理更多请求。
-
第二次滚雪球:因商品服务的请求都在等库存服务返回结果,导致商品服务调用库存服务的很多请求未处理完,商品服务将无法处理其他请求,导致商品服务不可用
-
第三次滚雪球:因商品服务不可用,订单服务调用商品服务的的其他请求无法处理,导致订单服务不可用。
-
第四次滚雪球:因订单服务不可用,客户端将不能下单,更多客户将重试下单,将导致更多下单请求不可用。
服务熔断:
设置服务的超时,当被调用的服务某段时间内失败率达到某个阈值,则对该服务开启短路保护,后来的请求不调用这个服务,直接返回默认的数据。
服务降级:
对非核心业务降级运行:某些服务不处理,或者简单处理(抛异常、返回Null、返回Mock数据)
8、API网关
-
抽象了微服务中都需要的公共功能
-
提供了负载均衡、自动熔断、灰度发布、统一认证、限流、日志统计功能
本文分享自微信公众号 - 悟空聊架构(PassJava666)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何用SpringCloud构建面向企业的大型分布式、微服务快速开发框架
最近公司给了我一个任务,为了满足企业内部多系统的快速开发和解耦,需要为企业搭建一套内部企业架构,要求必须使用分布式、微服务技术,考虑到现在比较流行springcloud开源架构,故在此基础上进行了框架搭建,搭建过程中对整个架构设计思想做了一下总结,希望可以帮助更多的朋友了解企业分布式架构,总结如下: 1. 鸿鹄Cloud架构清单 2. Commonservice(通用服务) 通用服务:对spring Cloud组件的使用&封装,是一套完整的针对于分布式微服务云架构的解决方案。如:注册中心、配置中心、网关中心、监控中心、认证中心、用户中心、日志中心、文件中心、消息中心、分布式ID、链路追踪、聚合发送等。 清单列表 代码结构 3. Component(通用组件) 通用组件:对系统常用组件的封装,如:常用异常状态码、URL权限、Service/Dao/VO封装、Mybatis/Spring封装、分页、对象存储包、Redis缓存、日志、常用工具类、RabbitMQ、分布式Sequence等。 清单列表 代码结构 4. 快速开发管理平台 鸿鹄云架构【系统管理平台】是一个大型企业、分布式、...
- 下一篇
10 分钟|全面图解AJAX原理
阅读目录 一、什么是 AJAX 二、提交Form表单的原理 三、提交请求和服务响应的原理 四、XMLHttpRequest 对象的知识 五、JQuery实现AJAX 六、优势 七、缺点 八、应用场景 九、不适用场景 阅读本文需要30分钟,请先收藏转发后再看。 先上原理图: 背景: 1.传统的Web网站,提交表单,需要重新加载整个页面。 2.如果服务器长时间未能返回Response,则客户端将会无响应,用户体验很差。 3.服务端返回Response后,浏览器需要加载整个页面,对浏览器的负担也是很大的。 4.浏览器提交表单后,发送的数据量大,造成网络的性能问题。 问题: 1.如何改进? 2.AJAX是什么? 3.有什么优势? 4.有什么缺点? 一、什么是AJAX 1.为什么需要AJAX 当需要从服务器获取数据,并刷新页面的操作,如果不采用AJAX,则需要用提交整个表单的方式,当提交表单时,发送请求给服务器,页面需要等待服务器发送完response后,页面才能恢复操作。 2.AJAX的概念: 1.AJAX = 异步 JavaScript 和 XML。 2.AJAX 是一种用于创建快速动态...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,CentOS7官方镜像安装Oracle11G
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块