- 博客(14)
- 收藏
- 关注
原创 统一权限-鉴权
鉴权:即访问控制,控制谁能访问那些资源;进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无发访问的,如图所示:基于资源的权限控制RBAC基于资源的访问控制是以资源为中心进行访问控制,企业中常用的权限管理方法,实现思路是:将系统操作的每个URL配置在资源表中,将资源对应到角色,将角色分配给用户,用户访问系统功能的Filter进行过滤,过滤器获取到用户访问的URL,只要访问的URL是用户分配的角色中的URL是用户分配角色中的URL则放行继续访问,其具体流程如下:鉴权流程Reac
2022-04-15 21:37:20
3033
原创 gateway-统一权限-认证
基础名词概念**权限:**属于系统的安全范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全控制策略用户可以访问而且只能访问自己被授权的资源,主要包括用户身份认证和请求鉴权两部分,简称认证鉴权认证判断一个用户是否为合法用户的处理过程,最常用的简单身份认证是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确鉴权:即访问控制,控制谁能访问那些资源;进行身份认证后需要分配权限可访问的系统资源,对于某些资源没有权限是无法访问的,如下图所示权
2022-04-10 00:39:16
11743
原创 JVM面试
基本概念:jvm是可运行Java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈。一个垃圾回收,堆和一个存储方法域。JVM是运行在操作系统上的,它与硬件没有直接的交互运行过程我们都知道Java源文件,通过编译器,能够生产相应的.Class文件,也就是字节码文件,而字节码文件又通过Java虚拟机中的解释器,编译成特定的机器码。也就是如下:1、Java源文件-》编译器-》字节码文件2、字节码文件-》JVM-》机器码每种平台的解释器是不同的,但是实现的虚拟机是相同的,这就是Java为什么能
2022-03-14 11:50:04
273
原创 分布式事务与锁
事务基础概念事物的回顾事务的定义是数据库的操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行,要么都不执行,事务是一组不可在分割的操作集合事务的ACID原则事务具有四个基本特性:原子性,一致性,隔离性,持久性,也就是我们常说的ACID原则原子性(Atomicity):一个事务已经是一个不可在分割的工作单位。事务中的全部操作,要么都做,要么不做一致性(Consistency):事务的执行使数据从一个状态转换为另一个状态,但是对于整个数据
2022-03-14 11:49:12
850
原创 SpringBoot面试准备
SpringBoot是什么是spring的子项目,主要简化Spring开发难度,去掉了繁重的配置,提供各种启动器,可以让程序员快速上手,节省开发时间SpringBoot的优点SpringBoot对上述的Spring的缺点进行改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与业务之间进行思维的切换,全身心投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期版本锁定 解决shmaven依赖版本容易冲突的问题,集合了常用的并且测试过的所有版本,使用Starter启动器
2022-03-07 17:16:17
414
原创 服务异步通信-高级篇
消息队列在使用过程中,面临着很多实际问题需要思考:消息可靠性消息从发送,到消费者接受,会经历多个过程:其中的每一步都可能导致消息丢失,常见的丢失消息的原因包括:发送时丢失:生产者发送的消息未送达交换机消息到达交换机后未到达队列MQ宕机,队列将消息丢失消费者接受到消息未消费就宕机针对这些问题,RabbitMQ分别给出了解决方案生产者确认机制mq持久化消费者确认机制失败重试机制生产者消息确认RabbitMQ提供了publisher confirm机制来避免消息发送到mq过程中丢
2022-03-06 21:50:23
1962
原创 redis删除以及过期策略
redis的删除策略定时删除在某个key 设置了过期时间时,创建一个定时器,过期时立即执行对其进行删除的操作优点:定时删除对内存是最友好的,能够保证内存的key一旦过期就能立即从内存中删除缺点:对CPU最不友好,在设置过期键比较多的时候,十分消耗CPU资源,影响服务器的响应时间和吞吐量定期删除redis默认每秒检查10次,是否有过期的key需要删除。但redis不是每次将所有的key检查一次,而是随机抽取进行检查优点:可以根据CPU状况自行调整删除时长和频率,有效释放内存缺点:如果某个键的
2022-02-27 21:41:23
1149
原创 redis的持久化
关于Redis说点什么,目前都是使用Redis作为数据缓存,缓存的目标主要是那些需要经常访问的数据,或计算复杂而耗时的数据。缓存的效果就是减少了数据库读的次数,减少了复杂数据的计算次数,从而提高了服务器的性能。一、redis持久化----两种方式1、redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)。2、RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上;3、AOF,则是换了一个角度来实现持
2022-02-27 21:36:49
24853
原创 redis从单点、主从、哨兵。到集群的总结
一、redis单点【主从】基本上就是一主一从,我们应用层主要使用的是主节点,从节点的主要工作是从主节点做主从复制。关键时刻,如果主服务器挂掉,可以手动启动从服务器,然后更改应用层的redis的ip即可。二、redis读写分离常见的应用场景下我觉得redis没必要进行读写分离。先来讨论一下为什么要读写分离:读写分离使用于大量读请求的情况,通过多个slave分摊了读的压力,从而增加了读的性能。过多的select会阻塞住数据库,使你增删改不能执行,而且到并发量过大时,数据库会拒绝服务。因而通过读写分
2022-02-27 21:33:46
924
原创 Redis命令全解
redis目前支持五种数据类型,分别是:1、String(字符串)2、List(列表)3、Hash(字典)4、Set(集合)5、SortedSet(有序集合)下面分别介绍这五种数据类型以及其相应的操作命令。1String(字符串)String是简单的KEY-VALUE键值对,value不仅是String,也可以是数字。String在redis内部存储默认就是个字符串,被redisObject所引用,当遇到incr,decr等操作时会转换成数值类型进行计算,此时redisObject的enco
2022-02-27 21:18:25
287
原创 分布式下feign的服务
首先看的是项目结构:如图feign-serve模块就是我抽取的FeignSpring.factories文件是SpringBoot在启动时进行自动装配:# Auto Configureorg.springframework.boot.autoconfigure.EnableAutoConfiguration=\com.itheima.feign.config.FeignAutoConfigurationFeignAutoConfiguration类的内容:@Configuration@
2022-02-18 09:45:40
379
原创 elasticsearch
1.了解ES1.1.elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:在github上搜索项目在电商网站搜索商品:在百度搜索答案:在打车软件搜索附近的车1.2ELK技术栈elasticsearch结合Kibana、Logstash、Beats,也就是elastic stack(ELK),被广泛应用在日志数据分析、实时监控等领域而elasticsearch是elastic s
2022-02-10 11:32:57
510
原创 SpringBoot自动化原理
SpringBoot自动化原理在了解SpringBoot之前我们先要了解SpringBoot的相关注解和流程SpringBoot相关注解如图:SpringBoot的启动流程如图:1、在SpringBoot使用过程中,我们使用到某个模块的功能,为什么依赖场景有的要写版本号,有的不用写呢?比如webmvc,junit,redis不需要,mybatis需要我们的工程继承了SpringBoot的夫工程Spring-boot-starter(版本2.3.10.release)这个工程提供了53个场景
2022-02-07 23:06:15
1505
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人