kkfileview部署踩坑
问题描述 在做一个项目开发的过程中,kkfileview默认部署在本地8012端口,开发测试阶段前端代码中调用kkfileview的服务时是直接用的“ip+端口”的形式,将服务器8012端口直接向外开放,用http协议直接访问 当正式服务器上部署时,都采用https协议进行传输,所以在前端运行时,无法从 1https://xxxxx域名.com 这个域名的网页中向外发起http服务请求,会报错无法运行,https和http不能混用 解决方法 用nginx对kkfileview进行代理,将 1https://xxxx域名.com/fileview 转发至服务器8012端口,不光要设置nginx中的转发路由后缀,还要在kkfileview的配置文件application.properties中修改server.servlet.context-path和base.url两个字段 12345server.servlet.context-path= ${KK_CONTEXT_PATH:/fileview}#(“/fileview“为需要的后缀)base.url =...
wsl-docker环境下启动ES报错vm.max_map_count [65530] is too low
问题描述 在windows环境下用Docker Desktop(wsl docker)启动 elasticsearch时报错 1max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 解决方案 方案一 默认的vm.max_map_count值是65530,而es需要至少262144 根据 elasticsearch官方文档 的解决方案,执行以下命令后,es可以正常启动。 12wsl -d docker-desktopsysctl -w vm.max_map_count=262144 但是,以上修改只在当前会话有效,重启 Windows 和 WSL 都要重新设置 方案二 根据docker官方给出的解决办法,我尝试后,docker重启或系统重启就失效了 12wsl -d docker-desktopecho 262144 >> /proc/sys/vm/max_map_count 方案三 根据Using Docker-Desktop for...
ElasticSearch安装配置相关
Docker拉取镜像 获取ElasticSearch本体镜像 12# 安装需要的版本docker pull elasticsearch:8.1.2 获取Kibana镜像(可视化管理工具,不是必须的) 12# 安装与ES对应的版本docker pull kibana:8.1.2 Docker启动命令 1234# Elasticsearch启动# 可以加上 -e "discovery.type=single-node" 设置ES的单节点开发模式,学习阶段加上可以省去很多配置# -v 是用来添加本地目录映射docker run --name elasticsearch -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v G:\编程环境软件\elasticsearch-data\node1:/usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 elasticsearch:8.1.2 123# Kibana启动#...
ES学习-DSL语句
ES是什么 Elasticsearch(搜索数据分析引擎) 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。 DSL语句是什么 DSL语句:ES使用的RESTful风格的增删改查语句 基础介绍 在学习DSL语句之前,我们要明白ES其实也是一个数据库,只不过数据存储和查询方式和我们一般了解的关系型数据库不太一样,它提供的数据结构可以让我们快速检索数据,分析大规模数据。 如果将它抽象成熟知的数据库,比如MySQL,就会更容易理解一些。 MySQL ElasticSearch 数据库 (database) 索引数据库 (index) 表结构 映射 (_mapping) 表 (table) 类型 (type) 行 (row) 文档 (document) 列 (column) 字段 (field) 详解 创建 创建索引库 1PUT /studentinfo ...
微信小程序扫码签到业务防作弊
前言 在做项目的过程中,遇到的一个业务场景。 前端使用微信小程序进行课堂扫码签到,后端接收签到请求,并且需要对于一些可能的作弊手段予以反制,比如一个人登录多个人账号帮他们签到,或者一部手机切换不同微信进行签到。 问题分析 想要限制签到作弊,需要的就是在用户签到时,对于一次签到,一个人,一个设备,进行唯一性标识,对于这部分重复的进行限制。 而如果需要唯一性标识,对于web页面来说也有cookie来实现,但是微信小程序很难找到一个可以标识设备唯一性的方案,微信官方也没有提供相关接口。 解决方案 阅读了微信小程序的相关开发文档之后,想出了一套解决方案。 首先,一个微信账号对于小程序会有一个唯一的OpenID。 微信小程序登录流程 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。 调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 、 用户在微信开放平台账号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台账号) 和 会话密钥...
MySQL索引失效的一些场景
前言 我使用的MySQL版本是8 具体开发场景建议对语句是否能走索引进行测试,本文章列举的场景仅供参考 PS:在查询语句前加explain可以查看该条语句执行的一些信息 失效场景 1.索引列使用了函数 在索引列使用了函数进行处理,比如👇 1SELECT id,name FROM table WHERE UPPER(name) = 'ABCD' 这样的查询会导致索引列失效,因为数据库要先进行全表扫描,获得数据之后再进行截取、计算,导致索引索引失效。同时,这样会导致需要全表扫描所有值,然后再计算比较,会增加数据库的计算开销,引发性能问题。 2.索引列参与了计算 这种场景和第一种场景差不多,就是索引类参与了一些运算,比如👇 1SELECT id,name FROM table WHERE (id + 1) = 5...
多线程生产者消费者模型学习
前言 用 synchronized 关键字实现了多线程生产者消费者模型,用 wait() 和 notify() 函数实现了进程间通信 生产者进程生产完了就通知消费者过来消费,消费者消费完了就通知生产者进行生产 代码实现 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140import java.util.*;public class test { public static void...
ssh连接远程Host key verification failed.
问题描述 在对已部署的项目进行维护过程中,遇到的一个小问题,记录一下。 SSH连接云服务器ssh xxx@云服务器IP地址,提示: 1234The authenticity of host 'xxxxxx (xx.xxx.123.321)' can't be established.ECDSA key fingerprint is SHA256:p3QHJXNIC1TJYWeIOttrVc98/R6BUFWu9/LiyKgXfFM.Are you sure you want to continue connecting (yes/no/[fingerprint])?Host key verification...
windows安装docker随记
Docker Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。 安装 1.先去下载安装一个windows的docker,下载地址👇 1https://www.docker.com/products/docker-desktop/ 2.如果弹出下图所示,需要WSL 则按照微软的文档安装👇 1https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package 步骤 4 - 下载 Linux 内核更新包 下载最新包: 适用于 x64 计算机的 WSL2 Linux 内核更新包 我在实际操作过程中,只安装了步骤4这一步,Linux内核更新包,就能正常使用docker了