2023-07-20 ES的集群部署 ES的集群部署 一、集群部署操作1、先下载ES安装包到一台服务器上2、配置文件详解2.1、elasticsearch.yml配置2.1.1、cluster.name与node.name2.1.2、node.master与node.data2.1.3、network.host2.1.3、path.data(要加上全路径/usr/local/elasticsearch-7.6.2,否则会找不到路径)2.1.3、path.logs(要加上全路径/usr/local/elasticsearch-7.6.2,否则会找不到路径)2.1.4、discovery.seed_hosts 2.1.5、action.destructive_requires_name2.1.6、gateway.recover_after_nodes2.1.7、cluster.initial_master_nodes2.1.8、http.port2.2、elasticsearch-env配置2.3、jvm.options配置2.4、Linux服务器的一些硬件配置2.4.1、/etc/sysctl.conf配置vm.max_map_cou... 王子 2023-07-20 Elasticsearch 356 阅读 2 评论 2023年07月20日 356 阅读 2 评论
2022-09-21 RABC权限系统,你会设计吗,老王教你设计 RABC权限系统,你会设计吗,老王教你设计 RBAC权限分析RBAC 全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC思维导图绘制思维导图如下什么是RBACRBAC 全称为用户角色权限控制,通过角色关联用户,角色关联权限,这种方式,间阶的赋予用户的权限,如下图所示对于通常的系统而言,存在多个用户具有相同的权限,在分配的时候,要为指定的用户分配相关的权限,修改的时候也要依次的对这几个用户的权限进行修改,有了角色这个权限,在修改权限的时候,只需要对角色进行修改,就可以实现相关的权限的修改。这样做增加了效率,减少了权限漏洞的发生。模型分类对于RBAC模型来说,分为以下几个模型 分别是RBAC0,RBAC1,RBAC2,RBAC3,这四个模型,这段将会依次介绍这四个模型,其中最常用的模型有RBAC0.RBAC0RBAC0是最简单的RBAC模型,这里面包含了两种。用户和角色是多对一的关系,即一个用户只充当一种角色,一个角色可以有多个角色的担当。用户和角色是多对多的关系,即,一个用户可以同时充当多个角色,一个角色可以有多个用户。 此系统功能单一,人员较少,这里举个栗... 王子 2022-09-21 Java,springboot,技术与技巧 365 阅读 0 评论 2022年09月21日 365 阅读 0 评论
2022-09-21 为了使用新技术,我从 Java8 升到了 Java11 为了使用新技术,我从 Java8 升到了 Java11 把一个项目从 Java 8 迁移到 Java 11,我该怎么办呢?最简单的办法,当然是直接强行升级,遇到一个错就改一个错,别看它 low,但是对于一个小型且非核心的项目来说,已经足够了。当然,对于比较重要的项目,且代码行数不少的情况,最标准的姿势就是对着官方文档,就是这份 Java 11 的迁移说明文档。https://docs.oracle.com/en/java/javase/11/migrate/index.html里面详细说明了 Java 8 到 Java 11 可能出现的兼容性问题,并给出了修改措施或建议。理论上来说,对着官方文档一个字一个字去读,并且把代码的每一行都肉眼扫描一遍,该修改的地方就做出修改,肯定是可以完美迁移的。但人毕竟不是机器,自己写的代码可能就有上千甚至上万行,还得算上引入的第三方类库,这显然就不是人干的事情了。所以,就有一款神奇的工具,可以帮我们自动扫描 JDK 升级过程中需要修改或注意的地方,并直接生成一个可视化的 HTML 报告,厉害了!它是什么这款工具的名字叫做 EMT4J,即 Eclipse Migration Toolkit for Jav... 王子 2022-09-21 Java,技术与技巧 588 阅读 3 评论 2022年09月21日 588 阅读 3 评论
2022-09-14 使用Spring AOP实现异步文件上传 使用Spring AOP实现异步文件上传 背景相信很多系统里都有这一种场景:用户上传 Excel,后端解析 Excel 生成相应的数据,校验数据并落库。这就引发了一个问题:如果 Excel 的行非常多,或者解析非常复杂,那么解析+校验的过程就非常耗时。如果接口是一个同步的接口,则非常容易出现接口超时,进而返回的校验错误信息也无法展示给前端,这就需要从功能上解决这个问题。一般来说都是启动一个子线程去做解析工作,主线程正常返回,由子线程记录上传状态+校验结果到数据库。同时提供一个查询页面用于实时查询上传的状态和校验信息。进一步的,如果我们每一个上传的任务都写一次线程池异步+日志记录的代码就显得非常冗余。同时,非业务代码也侵入了业务代码导致代码可读性下降。从通用性的角度上讲,这种业务场景非常适合模板方法的设计模式。即设计一个抽象类,定义上传的抽象方法,同时实现记录日志的方法。例如://伪代码,省略了一些步骤 @Slf4j public abstract class AbstractUploadService<T> { public static ThreadFactory commonThreadFactor... 王子 2022-09-14 Java,技术与技巧 324 阅读 0 评论 2022年09月14日 324 阅读 0 评论
2022-09-05 一道面试题,GET 请求能传图片吗? 一道面试题,GET 请求能传图片吗? 从一道面试题说起:GET 请求能传图片吗?「前言」曾经遇到的面试题,觉得挺有意思,来说下我的答案及思考过程。首先,我们要知道的是,图片一般有两种传输方式:base64 和 file对象。base64 图片图片的base64编码想必大家都见过:base64 的本质是字符串,而 GET 请求的参数在 url 里面,所以直接把图的 base64 数据放到 url 里面,就可以实现 GET 请求传图片。input 输入框拿到的图是 file 对象,图片 file 对象转 base64 :// img参数:file文件或者blob const getBase64 = img => { return new Promise((resolve,reject) => { const reader = new FileReader(); reader.onload = e => { resolve(e.target.result); }; reader.onerror = e => reject(e); reader.... 王子 2022-09-05 Java 183 阅读 0 评论 2022年09月05日 183 阅读 0 评论