自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 收藏
  • 关注

原创 ELK学习总结

ELK

2022-07-04 17:07:58 417 1

原创 java中删除FTP文件失败问题(ftpclient.deletefile)

之前删除FTP指定文件夹下文件一直失败,找了半天发现是文件名的问题。使用ftpclient.deletefile(fileName)删除一直有问题开始猜测是权限原因,于是用ftp工具尝试删除,发现可以删除。那就有问题了。原因:FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名包含中文需要转码。解决方案:将中文的目录或文件名转为iso-8859-1编码的字符。参考代码: boolean dele = ftp.deleteFile(new String(fileName.

2022-02-18 10:29:50 3047 1

原创 docker安装go-fastdfs以及Java实现上传功能

一、docker安装docker search go-fastdfsdocker pull sjqzhang/go-fastdfs创建docker-compose-gofastdfs.yml文件version: "3"services: fastdfs: image: go-fastdfs:latest container_name: go-fastdfs privileged: true restart: always ports:

2022-01-14 11:40:07 905

原创 Docker集群环境下安装Fastdfs集群+Nginx负载均衡

一、环境配置现有两台服务器10.168.103.110(旧服务器)和10.168.103.111(新服务器),其中110服务器上有swarm集群,一个tracker和一个storage,现在要做Fastdfs集群,满足110上Fastdfs宕机的情况,111服务器上的Fastdfs能够正常使用。首先查看110服务器的网络情况:docker network ls网络名称为prod-netdocker node ls二、搭建docker网络集群(swarm)这里我们需要在新服务器111

2021-12-29 16:33:45 1998

原创 java读取视频文件信息的两种方式(jave、ffmpeg)

一、通过Jave的方式读取文件信息需要一个jar包<!-- 获取视频时长等信息 --> <dependency> <groupId>jave</groupId> <artifactId>jave</artifactId> <version>1.0.2</version> <scope>system</scope> <systemPath

2021-12-17 10:06:44 8513 1

原创 Java集成fastdfs上传下载图片

一、FastDFS简介FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。两个核心概念:Tracker(跟踪器) Storage(存储节点)Trac

2021-11-15 11:27:53 862

原创 使用Docker搭建Fastdfs

一、下载镜像查看镜像docker search fastdfs安装镜像docker pull delron/fastdfsdocker images 查看镜像二、启动镜像使用docker镜像构建tracker容器(跟踪服务器,起到调度的作用)tracker服务器的端口默认是22122docker run -d --name tracker --network=host -v /home/xbb/fastdfs/tracker:var/fastdfs/tracker fas

2021-11-12 16:48:12 1327

原创 IDEA项目启动报错

Cannot resolve jdk.tools:jdk.tools:1.8重新在配置下maven即可。Command line is too long. Shorten command line for VideoAnalysisApplication解决:

2021-11-10 14:19:32 785

原创 docker部署Springboot的三种方式(入门、jar包、脚本)

一、入门部署可参考上篇博客 入门方式二、jar包映射部署启动容器后,每次需更新jar包时,都得重新制作镜像,再重新制作容器。流程及其繁琐,效率极低。那如何在不更新镜像或者容器的前提下直接更新jar包完成部署呢?更新Dockerfile文件FROM openjdk:8-jdk-alpineVOLUME /tmpADD trainning-service-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=fi

2021-11-04 16:18:27 300

原创 docker简单部署Springboot项目

一、首先有一个Springboot项目,在它的src/main/docker文件件下创建Dockerfile文件# 基础镜像使用javaFROM openjdk:8-jdk-alpineVOLUME /tmpADD cetc-trainning-service-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]解释下这个文件:VO

2021-11-03 11:03:54 210

原创 docker镜像下载到本地并在其他服务器上恢复

平常我们下载docker镜像会通过配置国内源来加速下载,但是有时候会有另外的需求,比如某个机器不能联网,我们就需要从其他机器下载,打包后,拷贝到这个机器。1. 首先找到有网的服务器下载需要的镜像docker search ganglia2. 直接将镜像pull下来docker pull wookietreiber/ganglia3. 查看镜像docker images保存到本地(7938b6949adc为镜像ID)docker save 7938b6949adc > /hom

2021-10-20 10:39:37 954

原创 分布式与集群的区别

分布式与集群的区别分布式是指将不同的业务分布到不同的地方。而集群是指将几台服务器集中在一起,实在同一个业务。分布式的每一个节点,都可以用来做集群。而集群不一定就是分布式了例如:互联网上访问的人多了,就可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将任务交给哪台去完成。而分布式,从狭义上理解,也与集群差不多,但是它的组织比较松散,不像集群,有一定组织性,一台服务器宕了,其他的服务器可以顶上来。分布式的每

2021-10-14 09:24:24 168 1

原创 Fastdfs读取文件内容

1、首先拿到fastdfs上对应的id2、以前用的是tomcat java利用前端上传到指定文件位置,然后java读取文件。但是现在用的fastdfs,没法用stream去读取文件更谈不上解析,后想到了OkHttpClietString txtId = vo.getTxtId();if(txtId!=null){ OkHttpClient httpClient = new OkHttpClient(); Request request = new Request.Builder(

2021-09-28 17:07:59 1241

原创 Mybatis分页查询避免两次查询同时返回总数和数据(一条SQL直接查询)

一、 场景:mysql分页查询一般都需要给前端返回一个总数,便于前端人员计算总页数。以前的处理办法是查询两次数据库,现在想提升下效率。二、处理方法:SELECT SQL_CALC_FOUND_ROWS * FROM [table] WHERE ...... limit M, N;SELECT FOUND_ROWS();SQL_CALC_FOUND_ROWS 告诉MySQL将sql所处理的行数记录下来FOUND_ROWS() 则取到了这个纪录。三、controller层:public Pa

2021-09-24 14:58:11 4157

原创 Shell脚本实现数据库循环新增数据

#!/bin/bashHOSTNAME="127.0.0.1" #数据库信息PORT="3306"USERNAME="root"PASSWORD="1234567"DBNAME="videodb" #数据库名称TABLENAME="dim_people_copy" #数据库中表的名称#开始数量min=1#最大数量max=10while [ $min -le $max ]do insert_sql="insert into ${TABLENAME} VALU

2021-09-14 17:53:03 799

原创 Java使用递归重装数据

首先查询出所有数据集合: List<RoleMenu> roleMenusList = menuController.selectMenuId(username); List<Map<String, Object>> treeList = getSourc(roleMenusList,null);递归重装数据://递归重装数据 private List<Map<String, Object>> getSourc(List<R

2021-09-10 10:37:50 340 2

原创 多线程环境下SQLite数据库并发死锁问题(database is locked)

问题:我这里的问题是多线程情况下没有及时关闭数据库又重新打开了数据库的连接,解决方式是在获取数据库连接的时候采用单例模式。一、SQLite为什么会出现这种问题?首先要搞清楚sqlite3自身的机制:sqlite3支持多线程同时读操作,但不支持多线程同时写操作。同一时刻只能有一个线程去进行写操作,并且在一个线程进行写操作的时候,其他线程是不能进行读操作的。当一个线程正在写操作时,其他线程的读写都会返回操作失败的错误,显示数据库文件被锁住。对于多线程写数据库的情况,Sqlite3不能实现同时写

2021-08-24 11:29:37 5249

原创 SQLite数据库基本使用(Java)

一、是什么?SQLite是一个进程内的轻量级嵌入式数据库,它的数据库就是一个文件,实现了自给自足、无服务器、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库,这就体现出来SQLite与其他数据库的最大的区别:SQLite不需要在系统中配置,直接可以使用。且SQLite不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite可直接访问其存储文件。二、有什么优势?不需要配置,不需要安装和管理不需要一个单独的服务器进程或操作的系统(无服务器的)一个完整的SQLite数

2021-08-24 11:02:35 2449

原创 SpringCloud--Gateway网关的实现

一、Springcloud Gateway概述spring cloud gateway旨在提供一种简单而有效的方法来路由到api,并为它们提供跨领域的关注点,例如:安全性、监视/度量和恢复能力。客户端向Spring云网关发出请求。如果网关处理程序映射确定请求与路由匹配,则将其发送到网关Web处理程序。此处理程序通过特定于请求的筛选器链运行请求。过滤器被虚线分割的原因是,过滤器可以在代理请求发送之前和之后运行逻辑。执行所有“预”过滤器逻辑。然后发出代理请求。在发出代理请求之后,运行“post”过滤器逻辑。

2021-08-11 11:09:15 857

原创 使用Docker搭建Kibana--linux系统

一、安装首先查看你es的版本 ,并查看本地服务器是否搭建了es(我这里映射的端口是9201)然后命令拉取跟es版本一样的kibanadocker pull kibana:7.4.2docker images 即可查看到拉取的kibana二、启动docker run -d --name kibana --network elasticsearch_net -e ELASTICSEARCH_URL=http://10.168.103.55:9200 -p 5601:5601 kibana:7

2021-07-28 15:19:15 236

原创 Spring Cloud Hoxton.SR1 gateway 与reactor-netty 0.9.3.RELEASE不兼容

问题现象在启动 Spring Cloud Hoxton.SR1 gateway 服务的时候无法启动,错误现象如下:***************************APPLICATION FAILED TO START*************************** Description: An attempt was made to call a method that does not exist. The attempt was made from the followin

2021-07-09 10:34:24 627

原创 Java使用ES滚动查询大数据量信息

如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scoll滚动查询,一批一批的查,直到所有数据都查询完处理完使用scoll滚动搜索,可以先搜索一批数据,然后下次再搜索一批数据,以此类推,直到搜索出全部的数据来scoll搜索会在第一次搜索的时候,保存一个当时的视图快照,之后只会基于该旧的视图快照提供数据搜索,如果这个期间数据变更,是不会让用户看到的采用基于_doc进行排序的方式,性能较高每次发送scroll请求,我们还需要指定一个scoll参数,指定一个时间窗口,每次搜索请求只要在

2021-06-22 14:02:45 1255

原创 Java idea 项目中HttpServletResponse的setCharacterEncoding()方法找不到 编译出错 找不到符号

解决办法是 在pom中把所有springboot相关的依赖放到最前面 怀疑问题出在starter-web这个依赖上成功解决!

2021-06-10 11:13:02 1136

原创 windows系统下使用nginx部署项目

1. 首先解压Nginx到本地目录下解压目录下是没有static的 新建static目录 将前端的index.html 和static放到此目录下2. 修改conf下的nginx.conf文件这是所有配置#user nobody;worker_processes 8;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid

2021-06-09 13:09:53 906 3

原创 服务网关的作用

一、什么是服务网关服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去;2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。二、为什么需要服务网关上述所说的横切功能(以权限校验为例)可以写在三个位置:每个服务自己实现一遍写到一个公共的服务中,然后其他所有服务都依赖这个服务写到服务网关的前置过滤器中,所有请求过来进行权限校验第一种,缺点太明显,基本不用;第二种,

2021-06-08 09:57:58 2246

原创 java实现服务注册到Nacos

1. 所需jar包 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org

2021-06-08 09:29:21 2289

原创 Spring boot 配置文件 application.yml和 bootstrap.yml区别

前言:SpringBoot默认支持properties和YAML两种格式的配置文件。前者格式简单,但是只支持键值对。如果需要表达列表,最好使用YAML格式。SpringBoot支持自动加载约定名称的配置文件,例如application.yml。如果是自定义名称的配置文件,就要另找方法了。可惜的是,不像前者有@PropertySource这样方便的加载方式,后者的加载必须借助编码逻辑来实现。一、bootstrap.yml(bootstrap.properties)与application.yml(appl

2021-06-07 15:20:31 114

原创 SpringBoot项目添加Nacos报错

com.alibaba.nacos.api.exception.NacosException: failed to req API:/api//nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried: <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for

2021-06-07 14:54:04 1842

原创 windows环境下启动单机nacos

1. Nacos下载路径:https://github.com/alibaba/nacos/releases2. 放到自己可以找到的目录下,解压,目录情况如下3. 进入conf文件夹,配置Nacos3.1 数据库初始化新建名称为“nacos”的数据库,数据库名称可以随意。   友情提示:请注意数据库用户权限配置,默认使用root权限请忽略此提示。数据库脚本导入成功之后,可见如上表结构。user表中已经初始化了nacos用户,稍后我们会使用该账号登录。到此,数据库初始化工作完成。3.2集群配

2021-06-07 11:30:51 2612 1

原创 Mysql数据库优化

1. 选取最适用的字段属性mysql可以很好的支持大数据量的存取,但是一般来说,数据库中的表越小,在他上面执行的查询语句就越快。因此在建表的时候,为了获取更好的性能,我们可以将表中的字段宽度设的尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。另外一个提高效率的方法是在可能的情况

2021-05-24 11:01:24 81

原创 RestTemplate介绍与使用

RestTemplate 简介RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 RestOperations 接口,其中 RestOperations 接口定义了基本的 RESTful 操作,这些操作在

2021-05-18 16:30:04 208

原创 AspectJ中的JoinPoint方法概要

AspectJ中的切入点匹配的执行点称作连接的(Join Point),在通知方法中可以声明一个JoinPoint类型的参数。通过JoinPoint可以访问连接点的细节。下面简要介绍JponPoint的方法:1.java.lang.Object[] getArgs():获取连接点方法运行时的入参列表;2.Signature getSignature() :获取连接点的方法签名对象;3.java.lang.Object getTarget() :获取连接点所在的目标对象;4.java.lang.Obj

2021-03-18 15:05:58 517

原创 SpringAop实现日志记录

首先添加jar包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>package com.kq.configmanager.annotation;import java.lang.annotation.*;@Documented@T

2021-03-18 14:57:46 161 1

原创 Java调用C++动态库--Centos系统

将封装好的生成拇指图缩略图的动态库放在centos系统指定路径下:/usr/local/dss/DLL/DLLImageResample_linux/bin/如果不配置环境变量则会报找不到路径错误:(其实是有的)需要在配置下环境变量:配置动态库位置:LD_LIBRARY_PATH:这个环境变量指示动态连接器可以装载动态库的路径。查看:可以通过env查看LD_LIBRARY_PATH内的值。vim etc/profile添加如下内容: LD_LIBRARY_PATH=$LD_LIB

2021-01-21 17:16:48 323 1

原创 java解决打jar包Recourse下配置文件打包异常

在pom.xml文件下添加如下内容:<!--配置打包时不过滤非java文件开始 --> <!--说明,在进行模块化开发打jar包时,maven会将非java文件过滤掉, xml,properties配置文件等,但是这些文件又是必需的, 使用此配置可以在打包时将不会过滤这些必需的配置文件。 --><build> <!--<finalName>${project.artif

2021-01-12 16:08:35 204

原创 Docker安装-02

Linux CentOS Docker 安装Docker支持以下的CentOS版本:CentOS 7 (64-bit)CentOS 6.5 (64-bit) 或更高的版本前提条件目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。使用命令查看系统版

2020-12-15 14:45:45 94

原创 Docker简介-01

Docker三要素:一.镜像(Image)Docker镜像(Image)就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建很多容器。Docker面向对象镜像类(class)容器实例对象二.容器(Container)1.Docker利用容器(Container)独立运行一个或一组应用2.容器使用镜像创建的运行实例3.容器可以被启动、开始、停止、删除,每个容器之间都是相互隔离的,保证平台的安全。4.可以把容器看做是一个简易版的Linu

2020-12-15 10:26:44 97

原创 JWT是个啥?JWT的原理和应用

https://baijiahao.baidu.com/s?id=1643676835054018117&wfr=spider&for=pc

2020-12-10 15:23:44 148

原创 Spring Security 简介

在 Web 应用开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并在整个应用的开发过程中。本文详细介绍了如何

2020-12-10 14:49:15 99

原创 Centos下安装Redis

https://www.cnblogs.com/zuidongfeng/p/8032505.html

2020-12-04 10:17:30 68

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除