- 博客(407)
- 资源 (8)
- 收藏
- 关注
原创 mac终端提示zsh: operation not permitted:怎么办?
今天因为开发环境本地跑起来需要一个代理工具,下载到苹果电脑,解压,执行命令order,报错zsh: operation not permitted: ./order 第一反应是文件权限不足,给order文件加权限chmod 777 order 不管用,第二招,给终端加权限:系统偏好设置 -> 安全性与隐私-> 隐私-> 完全磁盘访问权限-> ...
2022-01-15 00:29:00
9060
5
原创 如何配置spring boot解决前端刷新不会停留在原路径问题?
最近遇到一个前端刷新跳转问题,问题背景:项目采用velocity模板加载前端js和css,根路由是斜杆“/“,采用history模式,通过index.html文件加载。后端有一个controller接收 ”/”请求,跳转到index.html的ModelAndView。问题现象:不管在哪个页面,每当刷新页面时,总会跳到一个特定的页面。前端说跳转到该特定页面是他们的处理逻辑,要求后端刷新时必须...
2021-07-06 00:46:00
619
原创 怎么使用Visual Paradigm建ER图?
在说Visual Paradigm怎么建模之前,得搞明白一个问题:Visual Paradigm是啥? 怎么搞?老规矩,三板斧劈下来就是了:下载,安装,建模。商业版要收费,所以请移步到它的官网下载: 最新版是16.3,点了红色大按钮后跳往新页面,慢慢等,毕竟是外网,龟速下一个700多兆的软件,真是奔溃...我的经验是:手动点一下页面的链接比自动下载的速度快。 下好了安装,需要右...
2021-05-28 08:48:00
3183
原创 mysql8版本数据迁移
原来的云服务器到期,想把应用和数据库迁移到一个新的云服务器。应用迁移简单,jar复制过去就完事了,mysql已经跑了不少数据在库了,因此需要数据复制。因为新的云服务器没有开通外网权限,没法ping通ip,所以数据迁移做不到从旧服务器直接复制到新服务器,只能先找个跳板。而这个跳板,自然就是我的windows本机了。 方案很简单,首先在老服务器上把数据库test上的所有数据dump下来,放到...
2021-05-12 00:50:00
882
原创 linux的ping命令属于OSI七层模型的哪一层?
OSI七层模型,自顶向下为:应用、表现、会话、传输、网络、数据链路、物理这7层。常用的一些协议如http、ftp都是应用层,tcp/udp是传输层,ip是网络层,等等。到此为止,这些估计大部分人都知道。现在问题来了,ping这个命令,它不需要端口,你猜它属于哪一层? 这是个有意思的问题,其实也简单,知道它用的协议,就知道它是哪一层了。我们用的最多的是ping一个ip看它通不通,这时用的是...
2021-03-26 12:53:00
11914
2
原创 在SecureCRT用vi命令进入文本编辑后,窗口下方为什么会出现如[39;12H这样奇怪的符号...
乱码而已,如题,如图: 再看正常的显示: 其实这个39,12H说的就是39行,12列的意思。好了,回答完毕。 右下角明显是乱码,仔细看有一个小框框。那么为啥会有乱码?SecureCRT的展示编码与linux系统的编码不一致导致。 怎么解决?先看linux的本机编码:> localeLANG=en_US.UTF-8LC_CTYPE="zh_CN.GBK"L...
2021-03-04 10:46:00
557
原创 通过SecureCRT的lcd实现linux和windows跨操作系统的文件下载上传
在windows里通过SecureCRT连上一个linux环境,进入你想要上传或下载的目录,通过右键点击你的链接会话 -> 点击“连接SFTP标签页",或者快捷键Alt+P打开SFTP窗口 打开SFTP窗口 左边窗口路径显示一下:[root@VM-0-14-centos repository]# pwd/home/git/repository 把左边窗口的路径...
2021-01-29 18:45:00
408
原创 负载均衡的简单实现
常见的负载均衡算法有:随机、轮询、哈希,带权重的随机和轮询等。这里举例简单说一下怎么实现这些算法:import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Random;public class Weight {...
2021-01-13 11:35:00
202
原创 YYYY引发的跨年bug
项目中对用户的语音输入请求记录了话单,由filebeat把话单汇总到logstash,统一在logstash过滤、清晰,最后入库到elasticsearch中,通过前端绘图展示报表。今天发现展示数据不对,看了一眼话单: 今天是2020年12月29号,话单里我们已经穿越到2021年12月29号了,为啥呢?看记话单的代码: 这里记录请求时间用了YYYY-MM-dd HH:mm:ss...
2020-12-29 18:10:00
275
原创 myslq的更新丢失实例
更新丢失,顾名思义,update执行后不生效,为啥不生效,因为update执行的效果丢了。什么情况下会发生更新丢失,在两个事务并发更新时,事务A的更新被事务B的更新覆盖,这叫第一类更新丢失;事务A执行更新,事务B执行更新后回滚,事务A的更新被事务B的回滚覆盖,这叫第二类更新丢失。 什么时候会发生更新丢失?没有启用事务隔离级别的时候,也就是不支持事务的存储引擎,如MyISam。但反过来,都...
2020-12-28 17:53:00
97
原创 特价版线程池ThreadPoolExecutor实现
线程池的实现原理无非复用二字,类似数据库连接池,都是将一些重复创建的东西拿来重复使用。其中最关键的问题就两个:一个是怎么复用;一个是怎么回收。在数据库连接池中,一个连接的生命周期是我们可以手动控制的,相对来说容易一些。我们通过使用一个链表来持有连接并复用,超过最大连接数就回收。线程池不同,线程的生命周期不可控,当run方法运行结束了,线程就自然消亡了,因此麻烦一些,我们需要通过一个循环来让r...
2020-12-18 23:48:00
79
原创 通过SCP实现Linux服务器和本地Win10机器的文件上传下载
服务器上的文件下载还是FileZilla这种FTP工具比较方便,但我本机没装,就用SCP来操作好了。SCP是Security Copy,常用于Linux不同服务器之间的复制。这里我们发挥跨平台的想法,让Windows和Linux之间的复制来实现文件的远程下载。打开本地win10的命令行窗口,开始操作: 1、下载远程服务器的文件/home/sbt/nginx_nacos.conf到本地E:...
2020-12-18 11:12:00
705
原创 数据库连接池的一种实现方案
数据库连接池有多个开源实现,像dbcp、druid等。这里我们再一次造轮子,思路很简单:当有SQL操作(增删查改)到来时,先到池子里看一眼,如果有可用的连接,拿来用,没有就新建一个连接。连接不在新建时入池,而是在被关闭时。本来应当被系统回收的连接被放入池中复用,当累计到最大连接数时,就不再入池,直接回收。 为何要在关闭时判断最大连接数、入池,而不是在请求到来时做呢?我们把关闭入池叫方案1...
2020-12-16 22:46:00
208
原创 JDBC的驱动注册浅析
JDBC驱动类是一个接口——java.sql.Driver。这个接口是给实现JDBC接口的各个数据库实现的。 我们使用JDBC的时候,会有一行代码(参见Mysql数据库的JDBC查询实例或Oracle数据库的JDBC查询实例 ):Class.forName(JDBC_DRIVER); 它起到的作用就是加载具体实现的jar包中实现Driver的具体子类,类加载的过程中会调用s...
2020-12-09 18:17:00
393
原创 Mysql数据库的JDBC查询实例
之前我们使用JDBC操作过Oracle数据库(参见Oracle数据库的JDBC查询实例),这次我们来操作一下Mysql,使用Statement对象的子类PreparedStatement: 1、在pom.xml中引入mysql依赖jar包: <dependency> <groupId>mysql</groupId&g...
2020-12-09 17:53:00
153
原创 Oracle新增用户新建表插入数据
1、用sysdba登陆sqlplus:SQL*Plus: Release 11.2.0.1.0 Production on 星期三 12月 9 13:05:47 2020Copyright (c) 1982, 2010, Oracle. All rights reserved.请输入用户名: /as sysdba连接到:Oracle Database 11g Enter...
2020-12-09 14:29:00
294
原创 偏向锁是个什么东东?
上次我们说了对象头是个什么东东?,但是从我们跑的代码输出却看不到偏向锁这个东东。为啥对象实例化出来之后,对象头里是不支持偏向的呢?其实是JVM搞的鬼,JVM虽然默认启用偏向锁,但启动后4秒内并不支持。可以通过-XX:BiasedLockingStartupDelay=0参数将JVM启动后支持偏向锁的延迟时间设置为0,这样就可以看到偏向锁的输出了: 代码也改动一下:import co...
2020-12-07 19:30:00
92
原创 mysql的事务隔离级别举例
事务是怎么回事,之前已经聊过(参见Oracle事务的隔离 ),无关哪个数据库,只要提到事务,都是这四种隔离级别。mysql的默认隔离级别是3——可重复读。更重要的是,是否支持事务,跟mysql的存储引擎相关。登陆mysql,查询存储引擎(以下SQL均基于mysql5.7.26版本操作):mysql> show engines;+--------------------+-----...
2020-12-04 18:22:00
81
原创 对象头是个什么东东?
对象头,顾名思义,就是对象的头。对象是实例化出来的,实例化的前提是必须有类这个模板。举个不大恰当的例子,人类就是个类,你我他就是人类实例化出来的对象。我们的头,自然就是对象头。我们的头有口鼻眼耳,对象头也有一些东西,主要包含两部分:Mark Word(标记字)和Class Pointer(类指针),如果是数组对象还得再加一项Array Length(数组长度)。 对象头为啥要有这些东东?...
2020-12-02 18:21:00
113
原创 使用awk统计tomcat中access.log日志里时延超过500毫秒的记录
之前在一个springboot项目中开启了access.log日志(参见spring boot打开tomcat的access日志),现在可以很方便的根据access日志统计时延。先看日志文件: 再看access.log里的8个字段:%h %l %u %t "%r" %s %b %D 这几个字段都是啥意思?%h = 发起请求的客户端 IP 地址%l = 客户机的 RFC ...
2020-12-02 07:58:00
720
原创 IDEA安装代码统计插件Statistic后左下角图标出不来
按正常流程安装的话,左上角File -> Settings -> Plugins -> Marketplace -> 在搜索框中输入Statistic -> 在搜索结果中点击Statistic插件下的Install按钮 -> 点击Restart IDE按钮重启IDEA后,按理坐下角应该有一个Statistic按钮,展示该项目的代码行数统计结果: 说...
2020-11-27 10:34:00
1537
原创 NGINX代理websocket配置
如题,我在100.100.6.22的8100端口启动了一个web项目,通过/live/提供http接口,通过/live/ws/提供websocket接口,进入到nginx所在目录,修改nginx.conf文件:[sbt@wlf nginx]$ cd /usr/local/nginx[sbt@wlf nginx]$ vi conf/nginx.conf 主要新增两个location...
2020-11-24 17:00:00
304
原创 tomcat源码缺少ant包编译失败问题解决
之前使用ant成功编译了tomcat的源码(参见tomcat源码ant编译),今天想再debug一把,却发现编译失败了,如图: 很明显,ant.jar引用不到了,File -> Project Structure -> Modules -> Dependencies -> 点击右边+ -> 点jar or directories,把maven仓库的ant....
2020-11-03 22:15:00
382
原创 jenkins配置git和maven
先把总体流程梳理一下: +-------------git:拉取最新提交代码,分支可指定,放在jenkins工作空间,如:/var/lib/jenkins/workspace | +-------------maven:打包,从jenkins工作空间上按pom.xml执行配置的maven命令,如:clean instal...
2020-10-20 15:54:00
344
原创 git push报错:remote: error: refusing to update checked out branch: refs/heads/master
远程仓库通过git init初始化了一个项目,没有clone到本地,本地新建了一个项目,关联本地项目和远程仓库(参见IDEA新建本地项目关联远程git仓库 )后git push报错:wulf@wulf00 MINGW64 /e/workspace/开源/spring-cloud-gateway (master)$ git push --set-upstream origin mast...
2020-10-19 17:27:00
1088
原创 centos6.9安装maven3.6.3
在root下进入/usr/lib目录,从官网下载最新版本3.6.3的tar包,解压:[root@VM-0-14-centos ~]# cd /usr/local[root@VM-0-14-centos local]# wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3...
2020-10-19 11:21:00
143
原创 centos6.9搭建git1.7.1
第一步,安装git: 在root下创建git用户,设置密码:[root@VM-0-14-centos ~]# useradd git[root@VM-0-14-centos ~]# passwd git 给git用户设置sudo权限:[root@VM-0-14-centos ~]# vi /etc/sudoers 找到这一行:root ALL=(ALL) ...
2020-10-18 23:58:00
106
原创 centos6.9安装jenkins最新稳定版2.249.2
使用root用户登陆后,直接按官网教程操作就完事了: [root@VM-0-14-centos ~]$ sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo[root@VM-0-14-centos ~]$ sudo rpm --import ...
2020-10-18 17:53:00
162
原创 使用nexus3.19搭建自己的maven私服
怎么安装参见CentOS6.9安装Nexus3.19,接下来就是如何配置。打开我们安装后的nexus界面,用admin账号登陆,点击Server administration and configuration按钮: 点击Repository 我们可以看到nexus默认给我建好了一些仓库,其中包括3类:代理proxy,仓库组group和宿主host。 代理用来指向远程仓库的...
2020-10-17 09:07:00
105
原创 CentOS6.9安装Nexus3.19
为啥是CentOS6.9,又为啥是Nexus3.19?因为买了个腾讯云最低配的云服务,无奈操作系统是CentOS6.9,又因为Nexus外网下不来安装包,只找到一个3.19版本的。好吧,我们的目的是搭建一个maven私服,将就着用就好。 Nexus的免费版OSS安装包官网下载地址是https://www.sonatype.com/nexus/repository-oss,选中对应的操作系...
2020-10-16 23:20:00
116
原创 IDEA使用gradle编译elasticsearch并开启小象窗口
安装好了gradle后,先配置idea的gradle,File -> Setting -> Build,Execution,Deployment -> Gradle,配置的Gradle home 和Service directory path就是我们安装gradle设置的那两个环境变量的值: 如果你是第一次安装gradle,一开始右边的小象窗口并不会自动出来,需要编译...
2020-10-15 15:10:00
588
原创 win10安装gradle
1.安装:到gradle官网https://gradle.org/releases/下载安装包,最新版本是6.7,选二进制安装包,外网不好下,多试试,二进制的包少个几十兆,能少花一些时间: 下载后解压到自定义目录,如D盘dev目录下: 新建两个环境变量:一个是gradle安装目录,一个是jar包的仓库地址: 配置path路径,指向gradle安装包bin目录: 打开命...
2020-10-15 13:47:00
161
原创 使用java命令执行java文件报错:找不到或无法加载主类 com.wlf.demo.collection.HelloWorld...
IDE用惯了,手写java文件、编译、执行,搞了一堆问题,最简单的helloworld都打印不出来。 先在IDEA新建了一个项目,纯粹一个目录下建了个HelloWorld.java的文件,不是maven,不会自动编译: 编译成功,执行失败: 眼尖的同学一眼就能看到问题:创建的包路径有问题,不应该直接用com.wlf.demo.collection,而应该一个目录一个目录创...
2020-09-26 08:39:00
132
原创 windows下Logstash6.5.3版本读取文件输入不生效、配置elasticsearch模板后数据入es报错:Rejecting mapping update to [hello-world-...
首先讲个题外话。logstash配置文件hello-world.json上篇也提到过,不过那是7.9.0版本的,注意mapping下面是没有type的,因为默认的type就是_doc:{ "index_patterns": ["hello-world-%{+YYYY.MM.dd}"], "order": 0, "settings": { "inde...
2020-09-11 09:57:00
691
原创 Elasticsearch的7.9.0版本配置索引模板template不生效问题
采坑了。首先吐槽一下,下载elasticsearch的最新版本7.9.0了,配置索引模板跟原来6.X.X、6.X.X之前的都有点差别。新版的api中除了_template,又有了_index_template和_component_template,很容易混淆,让人不知所措。好了回归正题,我们这里使用的特指7.9.0的_template这个api。 事情是这样的,我在logstash配置...
2020-09-10 07:24:00
1970
原创 logstash过滤器使用ruby把时间格式转UNIX_MS
日志里一般都会有时间,格式如“2020-09-04 10:08:08”,怎么转成毫秒呢,格式如“1598609188959”? 假如我们的日志里仅有一个时间字段,因为我们这里转换前是没有毫秒的,所以可以直接转成秒后补3个0。直接看配置:input{ beats { port => "5044" }}filter{ mutate { a...
2020-09-04 17:48:00
808
原创 logstash使用“|”切分日志报错:Exception caught while applying mutate filter {:exception=>"Invalid FieldReferen...
如题,通过FileBeat输入的日志里有“|”分割,希望拿到“|”切分后的字段,在logstash配置文件中配置:input{ beats { port => "5044" }}filter{ mutate { split => {"message"=>"|"} } mutate { ad...
2020-09-04 08:23:00
631
原创 win10安装FileBeat
前面我们安装了ELK(参见win10安装ELK),数据流向是:L -> E -> K,其实L的前面还可以再接一根管道B。这个B就是Beat。Beat组件的加入,打破了ELK的三国鼎立,ELK成了Elastic Stack。有各种Beat可以成为Logstash或Elasticsearch的数据源:FileBeat、PacketBeat和MetricBeat。对日志文件的传输,首选...
2020-09-03 22:06:00
870
原创 win10安装ELK
1、下载最新版本的各个安装包,当前最新为7.9,注意保持elk版本相同,它们是配套的。下载链接如下: logstash:https://www.elastic.co/cn/downloads/logstash elasticsearch:https://www.elastic.co/cn/downloads/elasticsearch kibana:https://www.e...
2020-08-25 14:39:00
520
EasyDarwin-Windows-x86_64-v7.3.17.0325.zip
2020-03-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人