敲代码敲他Y

敲代码敲他Y,第1张

敲代码敲他Y MQ 1.rabbitMq

        rabbitMq 几万级数据量,基于erlang语言开发,因此响应速度快些,并且社区活跃度比较活跃,可视化界面。缺点就是数据吞吐量相对与小一些,并且是基于erlang语言开发,比较重的问题难以维护。

Queue

消息队列,提供了FIFO的处理机制,具有缓存消息的能力。rabbitmq中,队列消息可以设置为持久化,临时或者自动删除。

  1. 设置为持久化的队列,queue中的消息会在server本地硬盘存储一份,防止系统crash,数据丢失
  2. 设置为临时队列,queue中的数据在系统重启之后就会丢失
  3. 设置为自动删除的队列,当不存在用户连接到server,队列中的数据会被自动删除
Exchange

类似于数据通信网络中的交换机,提供消息路由策略。rabbitmq中,producer不是通过信道直接将消息发送给queue,而是先发送给Exchange。一个Exchange可以和多个Queue进行绑定,producer在传递消息的时候,会传递一个ROUTING_KEY,Exchange会根据这个ROUTING_KEY按照特定的路由算法,将消息路由给指定的queue。和Queue一样,Exchange也可设置为持久化,临时或者自动删除。

Binding

所谓绑定就是将一个特定的 Exchange 和一个特定的 Queue 绑定起来。Exchange 和Queue的绑定可以是多对多的关系。

2.rocketMq

        rocketMq几十万级别数据量,基于Java开发,应对了淘宝双十一考验,并且文档十分的完善,拥有一些其他消息队列不具备的高级特性,如定时推送,其他消息队列是延迟推送,如rabbitMq通过设置expire字段设置延迟推送时间。又比如rocketmq实现分布式事务,比较可靠的。

RocketMQ是开源的消息中间件,它主要由NameServer,Producer,Broker,Consumer四部分构成。

NameServer:NameServer主要负责Topic和路由信息的管理,功能类似Dubbo的zookeeper。

Producer:消息生产者,负责产生消息,一般由业务系统负责产生消息。

Broker:消息中转角色,负责存储消息,转发消息。

Consumer:消息消费者,负责消息消费,一般是后台系统负责异步消费。
 

Sentinel熔断(降级)/限流

熔断参数:

资源名/熔断策略(慢调用比例/异常比例/异常个数)/熔断时长/请求数/统计时长/阈值

熔断机制是应对雪崩效应的一种微服务链路保护机制。当某个微服务不可用或者响应时间太长时, 会进行服务降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。当检测到该节点微 服务调用响应正常后恢复调用链路。 限流 限流的目的防止恶意请求流量、恶意攻击,或者防止流量超过系统峰值。 流控的方式包括默认,关联,链路。阈值 Sentinel默认的流控处理就是【直接->快速失败】 实现BlockExceptionHandler可以自定义异常 单点登陆系统实现 为什么要用单点登陆系统

用户通过不同系统登陆,不同系统调用统一的认证授权服务,然后统一调用数据库.
解决方案1:    用户登陆成功以后,将用户登陆状态存储到redis数据库
说明:    用户登录成功后,会基于UUID生成一个token,然后与用户信息绑定在一起存储到数据库.
后续用户在访问资源时,基于token从数据库查询用户状态,这种方式因为要基于数据库存储和查询用户状态,所以性能表现一般.

解决方案2:用户登陆成功以后,将用户信息存储到token(令牌),然后写到客户端进行存储。
说明:    在这套方案中,用户登录成功后,会基于JWT技术生成一个token,用户信息可以存储到这个token中.

单点具体实现

1.定义Spring Security配置类,为了配置认证规则

2.定义配置类 public class Oauth2Config extends AuthorizationServerConfigurerAdapter

为了安全规则/配置检验规则/令牌生成规则


    后续用户在访问资源时,对token内容解析,检查登录状态以及权限信息,无须再访问数据库.

构建登陆系统模块需要实现---接受前端请求并传递给后端,将后端返回的数据绑定在Token上传给前端.

构建(JWT)配置类,用于生成令牌(具体就是实现一下AuthorizationServerConfigurerAdapter,重写他的方法)

三个方法:认证服务安全配置器/客户端详细服务配置器/认证服务终端配置器

配置:

1.对什么请求进行认证(默认是post)

2.对用户信息(将来绑定到Token中)进行规定

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5690685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存