Apache Shiro1.开始使用 Apache Shiro认证() 授权
Apache Shiro 是 Java 的一个安全(权限)框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在 JavaEE 环境。
通俗易讲来说,Shiro就是用来实现登录验证及权限管理的。在java中,实现权限管理可通过以下几种方式进行实现:
1、数据库表设计
2、Shiro框架
3、Spring Security框架
官网位置:http://shiro.apache.org/
1.1 功能介绍基本功能点如下图所示:
角色
作用
Authentication
身份认证/登录,验证用户是不是拥有相应的身份
Authorization
授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能进行什么操作
Session Manager
会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通 JavaSE 环境,也可以是 Web 环境的
Cryptography
加密,保护数据的 ...
shiro
导入依赖
123456789101112<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>1.13.0</version> <classifier>jakarta</classifier> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.13.0</version> <classi ...
Shiro 五表整合1.环境准备
导入springboot_shiro项目,并执行menu.sql
导入ShiroConfig
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071package com.cjc.config;import com.cjc.realm.LoginRealm;import org.apache.shiro.authc.credential.HashedCredentialsMatcher;import org.apache.shiro.spring.web.ShiroFilterFactoryBean;import org.apache.shiro.web.filter.mgt.DefaultFilter;import org.apache.shiro.web.mgt.DefaultWebSecurityManager;import org. ...
编程开发
未读RocketMQ分布式消息队列课程内容
RocketMQ认识
RocketMQ安装
RocketMQ原理(重要)
RocketMQ应用(重要)
一.RocketMQ的认识1.MQ概述1.1.为什么用MQ(重要)为什么要使用RocketMQ,我们先来看一个天府通刷地铁出站的业务场景
【注意】假如天府通出站API 和 支付系统 是不同的子系统 (两个Tomcat远程通信)
上下班高峰期使用天府通刷码的人非常多,以为做并发量很高,一个出站请求到后台需要做费用结算,或者积分赠送等业务。由于并发很高,并且费用结算和积分等业务本来就耗时,况且支付服务也不一定能承担那么大的请求量。
当服务器线程耗尽,后续请求会等待变慢,再加上高并发请求就会导致后续请求越来越慢,请求长时间等待,导致大量请求超时。并发太高,可能会导致服务器的内存上升,CPU使用率急速上升,甚至导致服务器宕掉。
解决方案:使用MQ消峰,效果如下
加入MQ后的效果 削峰限流
高并发请求在MQ中排队,达到了消除峰值的目的,不会有大量的请求同时怼到支付系统
服务异步调用,“天府通出站API” 把结算消息放入MQ ...
Nginx · Swagger · Sentinel 微服务保护 · 重点总结
整理自:nginx.md + swagger.md + sentinel.md + nginx-swagger-sentinel.xmind
第一部分:Nginx一、Nginx 概述1.1 核心概念
项目
说明
定义
C 语言开发的高性能 HTTP 服务器 + 反向代理服务器
作者
俄罗斯程序设计师 Igor Sysoev
性能
官方测试可支撑 5 万并发连接,CPU/内存消耗低,运行稳定
1.2 三大应用场景
场景
说明
HTTP 服务器
部署前端静态项目(网页、CSS、JS、图片)
反向代理
隐藏真实服务端,客户端不知道实际谁提供服务
负载均衡
多服务器集群,平均分担压力
二、Nginx 安装与命令2.1 Windows 安装
解压即安装,目录不能有中文。
2.2 常用命令
命令
作用
start nginx
启动
nginx -t
检查配置文件语法错误
nginx -s reload
刷新配置(有时不生效,建议重启)
...
Redis · NoSQL · 缓存 · 持久化 · 集群 · 分布式锁 · 重点总结
整理自:Redis.doc + Redis分布式锁.md
一、NoSQL 与 Redis 概述1.1 NoSQL 概念
项目
说明
全称
Not Only SQL(不仅仅是 SQL),泛指非关系型数据库
本质
关系型数据库的功能阉割版本,减少不常用功能换取极致性能
诞生原因
高性能查询需求 + 应用规模扩大(横向扩展集群)
1.2 四种 NoSQL 数据库类型
类型
代表产品
适用场景
键值(Key-Value)
Redis、Memcached
用户信息、会话、购物车
面向文档
MongoDB、ES
日志、分析
列存储
HBASE
日志、博客平台
图数据库
Neo4J
社交网络拓扑分析
1.3 关系型 vs 非关系型对比
对比项
RDBMS(关系型)
NoSQL(非关系型)
数据结构
高度组织化、结构化
灵活、无预定义模式
查询语言
SQL 标准
无声明性查询语言
事务
ACID 严格一致性
弱事务、最终一致性
性能
单机性能 ...
Redis分布式锁在分布式系统中,当多个服务实例需要操作共享资源(比如库存、订单ID)时,“并发”就可能变成“灾难”——比如秒杀场景下的超卖、分布式任务调度中的重复执行。这时候,我们需要一种跨服务、跨实例的“互斥机制”,这就是分布式锁。
而Redis凭借其高性能、高可用的特性,成为实现分布式锁的主流方案之一。今天我们就从“为什么需要分布式锁”讲起,一步步拆解Redis分布式锁的实现原理、核心问题与解决方案。
一、先搞懂:什么是分布式锁?为什么需要它?在单机系统中,我们可以用synchronized(Java)或Lock接口实现“本地锁”,保证同一JVM内的线程互斥。但在分布式系统中,服务通常部署在多个节点(多台服务器),本地锁只能控制单个节点内的线程,无法阻止其他节点的线程操作共享资源——这时候就需要分布式锁:
定义:分布式锁是一种跨节点、跨服务的互斥机制,用于保证多个服务实例对共享资源的“串行操作”。
核心要求:要实现一个可靠的分布式锁,必须满足以下特性:
互斥性:同一时间只能有一个服务实例获取到锁;
安全性:锁只能被持有锁的实例释放,不能被其他实例释放;
防死锁:即使持有锁的 ...
微服务保护1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。
如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞。此时,其它不依赖于服务I的业务似乎不受影响。
但是,依赖服务I的业务请求被阻塞,用户不会得到响应,则tomcat的这个线程不会释放,于是越来越多的用户请求到来,越来越多的线程会阻塞:
服务器支持的线程和并发数有限,请求一直阻塞,会导致服务器资源耗尽,从而导致所有其它服务都不可用,那么当前服务也就不可用了。
那么,依赖于当前服务的其它服务随着时间的推移,最终也都会变的不可用**,形成级联失败,雪崩就发生了**:
1.1.2.超时处理解决雪崩问题的常见方式有四种:
•超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待
1.1.3.仓壁模式方案2:仓壁模式
仓壁模式来源于船舱的设计:
船舱都会被隔板分离为多个独立空间,当船体破损时,只会导致部分空间进入,将故障控制在一定范围内,避免整个船体都被淹没。
于此类似, ...
编程开发
未读SpringCloud021 Nacos简介 注册中心, 配置中心
官网: https://nacos.io/zh-cn/
Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。上图为首页截图,已经明确的说明了 Nacos的2个核心作用:
注册中心 – 服务注册与发现
配置管理 – 每一个项目的配置文件抽取,统一管理
阿里为 SpringCloud 贡献了一个子项目,叫做 SpringCloud Alibaba,其中包括了微服务开发中的几个基础组件,Nacos 就是此项目中的一项技术。
SpringCloud Alibaba 可以对标 SpringCloud 中老牌的主流项目 SpringCloud Netflix(包括 Eureka、Hystrix、Zuul 等等),也是一个技术集,包括:
总结:它是阿里开源的 SpringCloud Alibaba 项目下的一项技术,可以实现服务注册中心、分布式配置中心。
2 Nacos安装指南开发阶段采用单机安装即可。
2.1.下载安装包在Nacos的GitH ...
编程开发
未读SpringCloud01一、微服务随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?
1.1单体架构单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。
单体架构的优缺点如下:
优点:
架构简单
部署成本低
缺点:
耦合度高(维护困难、升级困难)
1.2 微服务分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。
并且各个服务之间可以相互调用:
优点:
拆分粒度更小、服务更独立、耦合度更低
缺点:
服务调用关系错综复杂,提升部署难度
微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是Dubbo和SpringCloud。
1.3微服务的重要性
二、SpringCloud2.1认识SpringCloudSpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。
SpringCloud集成了各种微服务功能组件, ...
🔥 热搜
加载中...























