- 博客(32)
- 收藏
- 关注
原创 【Spring Cloud】Spring Cloud Oauth2 + Gateway 微服务权限管理方案
Spring Cloud 微服务权限解决方案,通过认证服务进行统一认证,然后通过网关来统一校验认证和鉴权。通过建立用户组-用户-角色-资源之间的关系进行权限管理。
2022-07-21 17:16:47 6419 7
原创 【算法】回溯法解决排列、组合、子集问题套路总结
对于排列、组合、子集问题,我们可以根据题目的限制条件“元素是否重复”、“是否允许重复选择”,大致的将其分为三类:①元素无重不可复选,即集合中的元素都是唯一的,每个元素最多只能被使用一次;②元素可重不可复选,即集合中的元素可以存在重复,每个元素最多只能被使用一次;③元素无重可复选,即集合中的元素都是唯一的,每个元素可以被使用若干次;
2022-04-14 16:41:21 1049
原创 【算法】LFU缓存算法的实现
LFU 算法,即 least frequently used 最近最不常使用,和 LRU 相似,也是一种用于缓存的数据淘汰策略。当内存不足以容纳新的数据时,需要淘汰**最近最不频繁**使用的数据。
2022-04-10 22:44:06 1183 1
原创 【算法】LRU缓存算法的实现
LRU 算法,即 least recently used 最近最少使用,是一种用于缓存的数据淘汰策略。当内存不足以容纳新的数据时,需要淘汰最近最少使用的数据。
2022-04-10 21:34:03 1273
原创 【JUC】synchronized 底层原理及优化过程
概括来说,`synchronized` 之所以能通过持有对象的锁实现同步是通过 `Monitor` (管程)实现的。(Monitor 是操作系统级的对象)
2021-11-02 20:07:08 228
原创 【前后端分离】Spring Security + Redis + JWT 实现动态权限管理
项目环境本篇文章环境:Spring Boot + Mybatis + Spring Security + Redis + JWT预期成果:实现具有验证码校验、RBAC 权限控制的前后端分离项目注意:为什么要使用 Json Web Token(JWT)?这是因为前后端分离项目中,前端与后端之间的通信采用 RESTFul API 的交互方式进行交互。这种前后端分离的交互是无状态的交互方式,所以,每次交互都必须进行身份验证。而传统方案是根据用户信息生成token,将token 存入浏览器 cookie(或存
2021-10-24 13:33:54 4726 8
原创 【大数据平台搭建】Greenplum 6.17 集群搭建
集群规划HostIP功能centos01192.168.52.221mastercentos02192.168.52.222segmentcentos03192.168.52.223segment总共是三台机器组成的一个集群,不搭建 standby 节点系统环境名称说明操作系统Centos7GreenplumGreenplum 6.17JavaJDK8GCCGCC 4.8.5修改系统文件修改系统资
2021-07-20 18:45:56 756 1
原创 解决:Hbase创建表时报“org.apache.hadoop.hbase.PleaseHoldException: Master is initializing”错误
问题描述:前段时间,由于数据占用太多强制进入安全模式而格式化了HDFS,然后使用Hbase shell 命令创建表时,报错:原因分析:首先,检查Hbase是否启动异常,经检查后发现 hdfs、hbase、zookeeper皆运行正常,启动日志也没有报错输出。(再结合之前hdfs、hbase都是可以正常创建、使用,可以排除配置错误)其次,检查集群时间是否同步,如果集群中某个节点的时间与其他主机不同步可能会导致该异常,经检查集群时间同步无误。//查看时间date最后,仔细检查日志,发现了一条警
2021-07-08 13:14:03 10223 5
原创 Springboot + Vue 前后端分离项目部署
Springboot + Vue 前后端分离项目部署1、项目整体部署情况对于前后端分离项目而言,我们一般的做法是使用Nginx代理前端项目请求,前后端之间通过Ajax访问后端提供的Restful接口进行交互。2、安装Nginx2.1、安装依赖库gcc:编译依赖环境yum -y install gcc gcc-c++ pcre:支持重写功能yum -y install pcre pcre-develzlib:提供压缩和解压缩的方式yum -y install zlib zlib-de
2021-06-03 20:41:03 822
原创 解决:error while loading shared libraries:lib***.so.*: cannot open shared object file
问题描述:运行编译后的可执行程序时报错 error while loading shared libraries: lib****.so.*: cannot open shared object file: No such file or directory.原因分析:从错误信息提示中,可以知道是在指定的路径找不到或者缺乏这个动态链接库。解决方案://在动态链接库的配置里,加入了库文件的位置echo "/usr/local/lib" >> /etc/ld.so.conf
2020-12-04 20:55:10 13119 3
原创 [Java]使用 JNI 实现 Java 与 C 之间复杂对象/结构体的传递
1、声明native方法,native方法或者属性对应的就是预留给c语言实现的接口2、编译声明的Java文件:因为在源码中使用了package的命令,所以编译的时候需要用"-d ."参数,其中"."表示在当前目录生成 jnilib文件夹来存放编译生成.class文件javac -d . TestJNI.javajavah jnilib.TestJNI生成jnilib_TestJNI.h的文件3、c语言来实现函数java里定义的native方法,和***.h文件中的接口名称保持一致
2020-12-04 15:28:46 2061
原创 【Apache Druid】druid 0.20集群安装配置避坑指南
项目场景:Druid集群规划:centos 01:coordinator,overlordcentos 02:historical,middle_managercentos 03:router,broker注:apache druid是一个时序数据库,并非阿里的druid数据库连接池。同时,druid 需要安装MySQL,以此储存元数据。问题描述1:druid 启动时报错:ERROR 2002 (HY000): Can’t connect to local MySQL server th
2020-12-01 16:09:16 1167
原创 【大数据平台搭建】Hadoop 3.1.3+Spark 3.0.0集群搭建
1、安装环境vmware、centos 7、jdk 1.8、scala 2.12.11、hadoop 3.1.3、spark 3.0.0(spark 版本对 jdk、scala 版本有要求,详见官方文档)2、运行环境搭建3、系统集群规划4、hadoop配置5、hadoop 测试6、spark配置7、spark 测试...
2020-07-27 14:58:45 7910 7
原创 【NoSQL】关于CAP理论的一些理解
为什么 C、A、P 之间不能同时满足?解释一下分区这个概念,首先什么是分区呢?在分布式系统中存在多个节点,在这些节点之间网络是畅通的,但是当某些节点与其他节点的通信被某种原因阻断之后,这时候,系统分成了若干个互不联通的区域,此时就形成了分区。而数据就分别存储于这些分区之中。当系统需要访问分区中某个节点的数据时,由于分区之间互不联通,系统是无法成功访问到数据的,也就无法提供可用性,此时系统的分区容忍性差。
2020-06-20 13:29:50 965
原创 【Hadoop】hadoop配置过程避坑指南
问题1:在配置过 ssh 免密登录后,使用 start-all.sh 启动 hadoop 集群时,系统提示 Permission denied。问题2:在启动后,使用 jps 查询进程,发现主节点的 datanode 正常启动,但是其他两个从节点的 datanode 未启动。问题3:在启动后,使用 jps 查询进程,发现所有节点的 DataNode 都未启动。问题4:启动集群后,只成功启动了 NodeManager,但未成功启动 ResourceManager。
2020-06-15 16:38:21 499
原创 解决:centos 7 连接不上网络且重启网络失败
问题描述:前几天配置好的虚拟机centos 7 用的好好的,在 wget 的时候接连报错,经检查是因为连接不上网络导致的。在尝试 ping 百度的时候报错显示“Name or service not known”,接着尝试 ping 主机 IP 报错显示“Network is unreachable”。解决:首先,由于这个是我之前就配置好的虚拟机,并且当时连接网络、ping 主机正常,故而,排除掉了配置方面的原因。 而且,我的另外几台虚拟机节点全都连接正常,因此,也可以排除掉 vm 的相关服务关
2020-06-14 11:32:55 1823 1
原创 Centos 7 集群配置SSH免密登录
本集群中拥有四个节点,分别是centos01、centos02、centos03、centos04。接下来以其中两个节点授权为例,后续可重复该过程以此达到四个节点全部授权的目的。1、修改主机名称以及 IP 映射//修改主机名称sudo vim /etc/hostname//修改主机映射命令:sudo vim /etc/hosts前面写IP地址,后面写主机名称。(使用 sudo 命令,防止权限不足)2、生成秘钥若节点之前未进行过任何ssh操作,则需要进行一次ssh操作,..
2020-06-08 18:03:13 540
原创 【Java Web】使用Filter实现评论敏感词过滤
由于本人最近在做的本科毕业设计功能模块里有评论区板块,所以,不可避免的需要实现评论敏感词过滤功能。我的初步思路是通过拦截用户提交的请求,然后将请求中的用户评论内容与数据库中的敏感词汇表比对,从而实现对请求中的用户评论内容进行过滤,并进一步将敏感词部分逐一替换。通过查阅资料后,我发现了Servlet API 中提供了一个Filter接口,通过实现该接口便可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截和增加功能。
2020-04-04 21:43:35 3877 10
原创 【Spring】框架学习笔记(bean的作用域&自动装配)
在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean。简单地讲,bean 就是由 IOC 容器初始化、装配及管理的对象。
2020-03-12 19:50:17 175
原创 【Spring】框架学习笔记(AOP篇)
AOP实现的是在不改变原有代码的情况下,扩展新的功能。传统的编程模式是纵向编程,扩展性不佳。而发生业务的变动时,需要对整个项目进行修改,且复用性不高。AOP 编程模式是横向编程,可以在不修改原有形态的基础上扩展出新的功能(符合开闭模式原则,对扩展开放,对修改关闭)。
2020-03-05 17:32:28 197
原创 【Spring】框架学习笔记(Ioc 篇)
控制的内容:指的是对象的创建,即谁来控制对象的创建。传统的应用程序对象的创建是由程序本身来控制,使用框架后由 Spring 容器来创建。(由传统的对象管理对象->统一由专门的 Spring 容器管理对象,使得开发人员可以集中于应用的开发,避免重复更改源码,降低了程序的耦合度:解耦。)反转的内容:指的是程序本身不去创建对象,而变为被动接收对象。正转指程序创建对象。
2020-03-02 15:13:49 153
原创 【C 语言】用 C 语言解决括号问题
问题描述:给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。范例1:输入:{}输出:true范例2:输入:({)输出:false解题思路:我们可以将问题简化为一个简单一些的子问题:每当我们在表...
2019-04-26 18:50:47 2492
原创 【数据库】Oracle数据库程序设计学习笔记(四)
目录索引(INDEX)用户管理权限管理角色管理概要文件索引(INDEX)索引可以分为:单列索引、复合索引创建索引(1)自动创建:在建表的时候,使用了 PRIMARY KEY 或 UNIQUE 约束时,数据库会自动创建一个索引(2)手工创建CREATE INDEX 索引名ON 表名(列名1, 列名2...);注:关于索引名的命名规范:idx...
2019-04-20 17:40:15 358
原创 【数据库】Oracle数据库程序设计学习笔记(三)
目录数据更新操作:插入、修改、删除1. 插入2. 修改3. 删除:表操作:增、删、查1、新建表2、删除表(回收站操作)3、修改表约束视图同义词(SYNONYM)序列数据更新操作:插入、修改、删除复制表:CREATE TABLE 新表名 AS 数据来源(SELECT 语句)可以复制全部数据或者复制部分数据1. 插入:...
2019-04-20 16:33:13 243
原创 【数据库】Oracle数据库程序设计学习笔记(二)
查询语句1)查询(DUAL 临时表) SELECT 列名1,列名2... FROM 表名;//查询所有表SELECT * FROM TAB| USER_TABLES;2)运算符->算术运算符 + - * / (数字,日期)3)空值:无效的,未指定的(不可进行算术运算) NVL(空值列, 指定值)4)连接符 || 列与列...
2019-04-08 18:31:56 255
原创 【数据库】Oracle数据库程序设计学习笔记(一)
常用命令:1)查看表结构 DESC 表名2) 连接: connect 用户名/密码 [@数据库实例] ( 简写: conn )3) 断开: disconnect ( 简写: disc )4)将屏幕内容保存到文件中 SPOOL 文件地址 …… SPOOL OFF5)清屏(清空屏幕和屏幕缓冲区) CLEAR SCREEN...
2019-04-05 13:30:29 314
原创 【前端】不同方式打开链接的实现
在进行前端开发时,往往会因为设计的要求需要在不同的地方打开超链接窗口。而在超链接中有一个target 属性,它是规定在何处打开 action URL 的一个属性。 属性的值 描述 _blank 在新窗口打开该链接 _self 打开并显示在相同的框架或者窗口中(一般默认为这个) _parent 在父框架集中打开 _top 在整个窗口中打开 fr...
2018-12-01 21:25:05 711
原创 进程和线程的简单总结
进程和线程的简单总结如果把 CPU 比作是一座工厂,那么进程就是工厂的车间,而线程就是工厂的工人。一座工厂可以同时有多个车间进行运作对应的就是多进程形式。而一个车间里有多个工人,这些工人共享这个车间的所有资源,这就对应着多线程形式。
2018-11-27 15:44:41 414
原创 分治法与动态规划的横向比较
分治法所能解决的问题一般具有的几个特征:(1)该问题的规模缩小到一定的程度就可以容易地解决(2)该问题可以分解为若干规模较小的相同问题,即该问题具有最优子结构性质(3)利用该问题分解出的子问题的解可以合并为该问题的解(4)原问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题动态规划法所能解决的问题一般具有的几个特征:(1)该问题可以分解为若干规模较小的相同问题,即该问...
2018-11-22 17:58:15 428
原创 分支限界法与回溯法的横向比较
分支限界法与回溯法的相同点:都是在问题的解空间上搜索问题解的算法,都是一种既带有系统性又带有跳跃性的搜索算法不同点: 1、求解目标不同 2、搜索方式不同 3、对扩展节点的扩展方式不同 4、存储空间的要求不同回溯法的求解目标是找出解空间中满足约束条件的所有解,而分支限界法的求解目标则是找出解空间中满足约束条件的一个解(或是在满足约束条件的解中找出是某一目标函数值达到极大或极小的...
2018-11-21 21:42:54 9679
原创 【C 语言】基于分治法的二分搜索
基于分治法的快速排序分治法的设计思想是将一个难以直接解决的问题,通过分解,分割成一些相似的规模较小的问题,以便分而治之,逐个击破。分治法的使用情况:1、问题具有最优子结构性质2、问题所分解的各个子问题是相互独立的,即子问题之间不包含公共子问题注:其他具有最优子结构性质的算法:动态规划算法;贪心算法按一下步骤进行:...
2018-11-21 16:47:12 1366
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人