分布式系统中的相关概念:

 传统项目和互联网项目的区别:

传统项目主要的用户群体是企业员工,而互联项目的用户群体是广大的网民。因为用户的数量不一样。我们选择的项目类型也会有区别,有并发高低的区别,此外用户的忍耐力是不一样的,只用好的,不好的直接被淘汰,美观功能稳定,速度快,稳定用户体验自然就好。

互联网项目特点,用户多,流量大,并发高,数据海量,易受攻击,功能频繁,变更快。

互联网项目的架构目标

高性能:提供快速的访问体验,高可用。响应时间,并发数,系统吞吐量(单位时间内系统能处理的请求数量)单位时间内有多少人访问,并发连接数(客户端向服务器发起请求,并建立TCP连接,每秒服务器连接的总TCP数量),请求数(每秒多少请求)。

 集群的概念:很多人一起做一样的事;

分布式:很多人一起,做不一样的事,但所有的事整合起来是一件大事。

 专业说法:一个相同的业务模块,部署在多台服务器上。(集群)

一个很大的业务系统,拆分为小的业务模块,分别部署在不同的机器上(分布式)

架构演化:SOA:是一个面向服务的架构,是一个组件模型,他将应用程序的不同单元进行拆分,并通过这些服务之间定义良好的接口和契约联系。

ESB:企业服务总线,服务中介,主要提供了一个服务于服务之间的交互,ESB包含的功能入:负载均衡,流量控制,加密处理,服务监控,异常处理,监控告急等等。分布式架构存在的问题,服务提供方一旦发生变更,左右的消费方都需要变更。

微服务的特点

服务实现组件化,开发者可以自由选择开发技术,不需要协调其他团队;

服务之间的交互一般使用REST API

去中心化:每个微服务有自己的数据库持久化业务数据;

自动化部署:把应用拆分成一个一个独立的单个服务,方便自动化部署,测试,运维。 

 DUBBO概述

Dubbo是阿里巴巴公司开源的高性能、轻量级的Java RPC框架.

Dubbo基础及原理机制_cjrjc的博客-CSDN博客_dubbo

RPC:远程过程调用

dubbo致力于提供高性能,透明化的RPC远程服务调用方案,以及SOA服务治理方案,层

 Zookeeper

DUBBO推荐使用zookeeper作为注册中心 。 

ZooKeeper的下载安装

zookeeper的安装配置(详细步骤)_简单的小呆瓜的博客-CSDN博客_zookeeper安装配置

Dubbo快速入门

实现步骤:

①创建服务提供者Provider模块

②创建服务消费者Consumer模块

③在服务提供者模块编写UserServiceImpl提供服务

④在服务消费者中的UserController远程调用UserServiceImpl提供的服务,

⑤分别启动两个服务,测试。

 dubbo-admin

dubbo-admin安装_一切总会归于平淡的博客-CSDN博客_dubboadmin安装 . dubbo-admin管理平台,是图形化的服务管理页面。从注册中心中获取到所有的提供者/消费者进行配置管理。 路由规则、动态配置、服务降级、访问控制、权重调整、负载均衡等管理功能。

dubbo-admin是一个前后端分离的项目。前端使用vue,后端使用springboot。 *************************************************************************************************************

Dubbo的高级特性

序列化。

 两个数中可以序列化对象,dubbo内部已经将序列化和反序列化的过程内部封装了,我们只需要在定义pojo类时实现serializable接口即可。一般模块会定义一个公共的pojo模块,让生产者和消费者都依赖该模块。注册中心挂了,服务仍然可以正常访问,原因是dubbo服务消费者在第一次调用的时候,会将服务提供方的地址缓存到本地,以后再调用则不会访问注册中心。服务消费者在调用提供者的时候发生了阻塞,等待的情形,这时候,服务消费者会一直等待下去。在某个峰值时刻,大量的请求都在同时请求服务消费者,会造成线程的大量堆积,势必会造成雪崩。dubbo利用超时机制来解决这个问题,设置一个超时时间,在这个时间段内,无法完成服务访问,则自动断开连接。

 但是注意:如果出现了网络抖动,那么请求就会失败。

多版本的高级特性:灰度发布

当出现新功能的时候,会让一部分用户先使用新功能,用户反馈没有问题的时候,再将所有的用户迁移到新功能,dubbo中使用version属性来设置和统一接口的不同版本。

 负载均衡

四种策略:

Random:按权重随机,默认值。按照权重设置随机的概率。

RoundRobin:按照权重轮询,

LeastActive:最少活跃调用数,相同活跃数的随机。

ConsistentHash:一致性Hash,相同参数的请求总是发到同一提供者。

 集群容错模式

Failover Cluster:失败重试。默认值。当出现失败,重试其他服务器,默认重试两次,使用retries配置。一般用于读操作。

Failfast Cluster:快速失败,只发起一次调用,失败立即报错,通常用于写操作。  

Failsafe Cluster : 失败安全,出现异常时,直接忽略,返回一个空结果。

Failback Cluster:失败自动恢复,后台记录失败请求,定时重发。

Forking Cluster :并行调用多个服务器,只要一个成功即返回。

Broadcast Cluster :广播调用所有提供者,逐个调用,任意一台报错则报错。  

 服务降级方式

mock=force:return null表示消费方对该服务的方法调用都直接返回null值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。 mock=fail:return null表示消费方对该服务的方法调用在失败后,再返回null值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: