自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Selenium

勿忘初心,方得始终.

  • 博客(98)
  • 资源 (3)
  • 问答 (6)
  • 收藏
  • 关注

原创 nodejs实现微博第三方登录

nodejs实现微博第三方登录

2022-06-04 11:44:18 1006 1

原创 nodejs实现ocr

nodejs实现ocr

2022-05-15 00:44:30 5095

原创 eslint+vscode格式化代码

vscode安装eslint插件全局安装eslintnpm i -g eslinteslint --init #//js项目根目录运行,按照提示选择项目根目录创建三个文件,然后执行npm install.editorconfigroot = true[*]end_of_line = lfinsert_final_newline = true[*.{js,json}]charset = utf-8indent_style = spaceindent_size = 2.

2021-11-02 23:48:19 319

原创 nodejs+rabbitmq实现任务延迟执行与重试控制

以发送邮件任务为例,第一次发送邮件失败后,延时30s后继续发送此邮件,如果如此重试3次后仍然失败,则停止发送。send_email: 发送邮件任务队列(死信队列)send_email_retry: 发送邮件任务重试队列send_email_fail: 发送邮件任务失败队列生产者创建send_email队列,并给队列绑定交换机exchange和路由routingkeyawait ch.assertQueue(queue_send_email, { durable:.

2021-07-08 17:44:12 993

原创 vscode搭建远程开发环境

新公司的开发模式是远程开发,将代码环境部署到虚拟机中,然后使用vscode远程连接进行开发,使用下来感觉也挺方便的,特此记录文章目录1. 配置免密登录2.服务器安装vscode-server3. vscode安装插件本机 windows10远程开发机 ubuntu18.041. 配置免密登录windows:执行ssh-keygen,一路按回车,在用户目录下生成.ssh目录ubuntu:同样执行ssh-keygen,一路按回车,在用户目录下生成.ssh目录,然后将window上的id.

2021-06-06 15:46:05 2489 4

原创 nodejs实现单点登录系统

单点登录SSO(Single Sign On),就是把2个及以上的业务系统中的登录功能剥离出来,形成一个新的系统,做到一次登录后在任意的业务系统中都无需登录的效果。效果如图所示:第一次访问www.a.com首页跳转到www.c.com:3000登录页面,登录成功后跳转www.a.com首页再次访问www.a.com首页,无需登录直接跳转访问www.b.com首页,无需登录直接跳转源码: https://github.com/wantao666/sso-nodejs详细设计:文章目.

2021-05-21 11:29:46 3066 7

原创 keepalived集群搭建

文章目录一. 搭建过程二. 验证keepalived集群三. keepalived集群中的每台机器都出现了vip的解决办法(组播VS单播)keepalived是通过vrrp协议保证系统高可用的解决方案,一般作为一个高可用系统的入口,提供虚拟ip(vip)供用户访问系统,keepavlived集群的下一个中间件往往为haproxy或者nginx。一. 搭建过程主机名ip网卡名ubuntu01192.168.56.104enp0s8ubuntu02192.168.56

2021-05-13 00:23:01 1400 2

原创 mysql读写分离

文章目录方式一: 配置多个数据源方式二:使用mycat中间件之前做的某个项目中,mysql搭了集群,本来打算基于主从复制做读写分离的,因为不知道如何读写分离,于是改用了pxc集群,集群中的每个mysql都能读写,比较简单。最近比较空闲,调查一下mysql读写分离如何实现,特此记录。前提: 搭建mysql主从复制集群,使得数据单向同步,可以参考mysql集群搭建与总结这里在一台机器上通过docker映射不同的端口,搭建了mysql的主从复制集群(一主一从)容器名端口mysql-

2021-04-12 22:17:37 243

原创 redis集群搭建

一. 主从复制容器名redis端口redis-master6380redis-slave16381redis-slave263821.1 搭建过程redis-master:docker pull redis#下载redis配置文件wget http://download.redis.io/redis-stable/redis.conf#修改配置文件 #vim redis.conf#注释掉此行,表示任意ip可连接#bind 127.0.0.1#

2021-04-08 11:34:04 300

原创 基于Git+Jenkins+Docker的CI/CD实现

文章目录一. 环境准备1.搭建Gitlab私有仓库2.搭建harbor私有镜像仓库一. 环境准备1.搭建Gitlab私有仓库docker run -itd --name=gitlab -p 8000:80 -v v1:/etc/gitlab -v v2:/var/opt/gitlab gitlab/gitlab-ce等待几分钟后访问8080端口,为root用户设置密码,之后便可以使用root用户登录.2.搭建harbor私有镜像仓库wget https://github.com/goharb

2021-03-19 11:34:20 642

原创 rabbitmq集群搭建和总结

1

2021-03-17 09:17:20 762

原创 ubuntu18.04搭建k8s(1.19.4)集群

文章目录一. 配置详情二. 环境准备三.安装kubeadm,kubectl,kubelet四.部署Kubernetes Master五. Node节点加入集群之前在centos os7搭建过单机版k8s 搭建单机版k8s(搭建过程中,不清楚的地方可以借鉴这篇博客,比较详细),最近工作比较轻松,于是在虚拟机上搭建了k8s集群,开始k8s的学习,特此记录搭建过程 .一. 配置详情Virtual Box 6.1Ubuntu18.04docker 20.10.4k8s 1.19.4主机名

2021-03-01 23:29:09 1036 1

原创 mysql集群搭建与总结

文章目录1.主从复制好久没写博客了,最近做了分布式的项目,调查和搭建了mysql集群,踩坑无数,特此记录。1.主从复制主从复制是最简单的mysql集群,

2021-02-27 23:51:15 3637 2

原创 NFS的搭建和使用(挂载+libnfs)

项目中前端向后端传递文件,除了直接传递文件的base64编码(请求体很大,很不友好),还可以传递NFS的文件路径,方便请求的进行。NFS(Network File System),简单的来说一台主机可以通过网络直接的访问另一台主机的文件,并且忽略操作系统之间的差异。NFS是基于C/S架构,搭建好NFS服务器后主要有两种使用方式: 1.直接客户端挂载服务器 2.使用python的libnfs库无需挂载直接进行访问文章目录一、NFS服务器的搭建二、访问NFS文件1.挂载1.1 windows挂载1.2.

2020-12-02 14:53:59 3446 3

原创 搭建单机版k8s(1.19.4)

最近由于公司可能使用到k8s,所以自己先学习一下。条件有限,先搭建一个单机版k8s,淦就完事了。文章目录一、配置详情二、环境准备三、安装kubeadm,kubelet,kubectl四、部署Kubernetes Master一、配置详情使用的是阿里云的服务器CPU:1核内存:2g系统: CentOS 7.3 64位docker版本: Docker version 19.03.13二、环境准备#关闭防火墙systemctl stop firewalld#关闭selinuxs.

2020-11-21 16:53:28 4058 1

原创 自己动手实现RPC框架

文章目录1.跨进程数据交换1.1 依赖中间件做数据交互2.1 直接交互2.RPC架构3.现有RPC框架对比4.自己动手实现RPC框架4.0 共同模块(common)4.1 协议模块(proto)4.2 序列化模块(codec)4.3 网络传输模块(transport)4.4 服务端模块(server)4.5 客户端模块(server)4.6 使用案例模块(example)RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务源码: https:

2020-11-08 21:21:15 2834 5

原创 koa后端数据校验

以前写java的时候,后端经常使用jsr303进行数据校验。现在写nodejs,经常就前端vue进行了数据校验,而后端没有进行数据校验。其实nodejs也有很方便的基于JSON Schema的数据校验库—ajv。ajv文档JSONSchema: JSONSchema并不是某个库,只是一种标准,简单的来说就是通过json格式来描述数据,而ajv就是对JSONSchema的具体实现之一.以对Register的User进行后端数据校验为例,介绍koa中如何使用ajv进行数据格式检验1.安装ajvnp

2020-09-25 13:38:52 1177

原创 koa单元测试

文章目录1.安装依赖2.配置3.测试文件3.1数据模型测试3.2 http请求测试4.执行测试使用 jest+supertest 进行单元测试。1.安装依赖#--save-dev 写入到devDependencies对象,只用于开发和测试npm install jest --save-devnpm install supertest --save-dev2.配置package.json"scripts": { "test": "cross-env NODE_ENV=test jes

2020-09-24 17:02:10 1038

原创 koa中使用sequelize

文章目录一.安装sequelize二.建立连接三.创建数据模型四.模型与数据库同步五.增删改查sequelize是nodejs最常用的orm框架,类似于java中的JPA,无需写sql语句。参考资料Sequelize 中文文档整理(v5版本)Sequelize API Reference一.安装sequelizenpm install --save sequelize#除了安装sequelize还要安装所使用的的数据库驱动模块npm install --save mysql2二.建立

2020-09-23 11:58:48 525

原创 Springboot项目打包为jar并执行

做了一个springboot小项目,运行没问题,打包为jar后运行各种错误,特此记录正确的打包方式一.打包为jar#jar包生成位置:target/bar_code_service-1.0-SNAPSHOT.jarmvn cleanmvn compile#注意使用mvn package不会将依赖打包进jarmvn package spring-boot:repackage二.执行jar包#直接执行java -jar bar_code_service-1.0-SNAPSHOT.jar.

2020-09-22 08:47:38 318

原创 Hadoop集群搭建

文章目录一.Centos安装与网络配置1.1 下载VirtualBox虚拟机6.161.2 下载centos镜像CentOS-7-x86_64-DVD-1908.iso1.3 设置镜像1.4 设置两个网卡:NAT(连接外网)、Host-Only(与主机通信)1.5 网络配置1.6 复制虚拟机并且修改复制后的虚拟机的网络配置二.Hadoop集群搭建2.1 创建Hadoop用户2.2 修改主机名2.3 关闭防火墙2.4 安装java并配置环境2.5 设置ssh免密登录2.6 安装Hado

2020-08-21 15:30:20 476

原创 vue+koa+python websocket通信

文章目录需求: python制作的工具拿到语音识别结果,发送给koa后端,然后在vue前端显示出来,由于要实时显示,所以需要进行vue+koa+python websocket通信

2020-08-18 11:11:05 837

原创 python关键字替换

python读取txt文件作为字典,实现关键字替换words.txtreplace.pydef readWords(): result={} with open('words.txt', encoding='UTF-8-sig') as f: for line in f: x = line.strip().split('=') result[x[0]]=x[1] return resultdef keym.

2020-08-18 09:24:58 1795

原创 nodejs实现github第三方登录

文章目录二、具体流程1.注册应用二、具体流程1.注册应用①登录github,Settings=>Developer settings=>OAuth Apps=>Register a new application②填写应用信息,注意都是后端的地址③注册完成,得到Client ID和Client Secret...

2020-08-17 10:41:16 697

原创 科大讯飞中文+日语语音听写(流式版)

文章目录1.实现效果1.1日语效果2.2中文效果2.具体实现1.捕捉麦克风语音输入2.进行VAD(Voice Activity Detection)检测3.下载官网python版语音听写demo4.字幕显示5.将Python程序打包为exe3.其它需求:记录会议的内容,将会议的语音(中文和日文)转为文字字幕并显示在电脑屏幕上。1.实现效果1.1日语效果2.2中文效果2.具体实现讯飞语音中文实现很简单,登录讯飞开发者平台,创建应用,下载对应的demo就行了,照着文档弄,很简单。所以

2020-07-27 13:49:08 19401 4

原创 vue+koa基础环境搭建(带源码)

每次做vue+koa的项目都要搭建基础的router、axios、elementui等,于是搭建了一个只有登录功能的vue+koa基础环境,方便项目开发。前端:vue-startervuevue-router: 路由处理element-ui: ui库vuex: 状态管理js-md5: 登录时密码MD5加密axios: 发送http请求后端:koa-starterkoakoa-bodyparser: 解析请求内容koa2-cors: 跨域处理koa-router: 路由.

2020-07-07 15:52:51 817

原创 mysql数据库事务隔离级别

文章目录一.事务的四个特征(ACID)二.事务隔离级别1.Read uncommitted(读未提交)2.Read committed(读已提交)3.Repeatable read(可重复读)4.Serializable(可串行化)三.深入理解事务隔离1.版本链2.read view3.innodb中的锁4.行级锁的三种算法5.快照读和当前读一.事务的四个特征(ACID)原子性(Atomicity): 事务不可分割,要么全部发生,要么全部不发生。eg:A给B转钱,A少了钱,B多了钱。两个都要发生,

2020-07-04 00:53:24 1126 1

原创 mysql between and 边界问题

以此表为例:between and 普通数值左右边界都包括SELECT * FROM bill_segmentation_ocr.user_api_info where id between 40 and 41;between and 日期数值只包括左边界不包括右边界SELECT * FROM bill_segmentation_ocr.user_api_info where createAt between '2020-1-12' and '2020-06-12';我们查看全部

2020-06-16 10:37:52 20290 9

原创 mysql统计数组字符串格式内元素出现的次数

文章目录一.基本需求二.解决思路三. 详细代码一.基本需求基本需求:有两张表user_api_info和templates如下图。现在需要根据templatedUsed这列的数据,统计每个template的使用量,供echarts显示。表一:user_api_info表二:templates返回数据如下图所示:echarts显示结果:二.解决思路templatedUsed这列是varchar类型,所以看上去是数组,实际上存的还是字符串(存的时候使用的是JSON.stringfy

2020-06-15 14:03:01 1535

原创 opencv常用函数和常用操作

文章目录一.安装opencv二.常用函数三.常用操作一.安装opencvpython 3.6.3pip install opencv-python==3.4.1.15pip install opencv-contrib-python==3.4.1.15如果觉得下载网速慢的可以换源.在C:\Users\${XXX用户}\pip下新建pip.ini,输入下面内容替换成清华源。[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple

2020-06-12 01:46:41 3397 3

原创 docker及docker下常用软件安装

文章目录一、安装docker二、安装mysql三、mysql执行docker外的.sql文件一、安装docker1.apt-get安装sudo apt-get updatesudo apt-get install docker-io2.安装完成可以看到docker版本信息docker -v二、安装mysql1.拉取mysql镜像docker pull mysql:8.0.182.根据此镜像建立容器并且设置mysql密码docker run --name mysql -itd -

2020-05-20 16:45:35 1210

原创 vue图片裁剪:使用vue-cropper做图片裁剪

文章目录一、安装二、图片裁剪三、将截图框回显到原图上由于项目需要,需要做图片裁剪。之前的项目已经由cropper.js实现过,因为这次使用的是vue,所以采用了vue-cropper这个组件,使用起来很简单,但是坑也很多。一、安装npm install vue-croppermain.jsimport VueCropper from 'vue-cropper'Vue.use(VueCropper)二、图片裁剪引入VueCropper组件,并设置相关的属性。<div s

2020-05-15 15:11:35 4506 11

原创 fatal: http://1.1.1.4/ac_portal/needauth.html?url=xxxx/info/refs not valid:is this a git repository?

电脑关机前还使用了git,放了5天假,开启后使用git pull,git clone 远程仓库报错:fatal: http://1.1.1.4/ac_portal/needauth.html?url=xxxx/info/refs not valid:is this a git repository?网上看了很多博客,甚至重装了git,都没解决。使用git config --list对比了我...

2020-05-06 14:04:07 1078 1

原创 微服务---消息总线BUS

文章目录一、简介二、RabbitMq的安装三、简单使用1.流程2.具体编码一、简介之前通过SpringCloudConfig实现过手动刷新(微服务—分布式配置中心Config),但是可以发现这样还是很不方便,如果实例的数量很多,需要多次手动刷新。为了解决这个问题,我们引入了消息总线SpringCloudBus。SpringCloudBus整合了java事件处理机制和消息中间件,就是通过消息代...

2020-05-03 10:26:57 1081

原创 JAVA中&gt;&gt;,&gt;&gt;&gt;,&lt;&lt;的区别

文章目录1.>> 右移2.>>> 无符号右移3.<< 左移4.有无符号左移<<<吗?1.>> 右移去除低位后,最左边补充原先的符号位(即最高位)以-1>>1为例子:实例代码: int h = -1; System.out.println(Integer.toBinarySt...

2020-04-29 15:11:35 2457

原创 vue+element-ui实现搜索框

文章目录功能实现1.点击搜索框,显示列表,点击其它地方搜索列表消失.2.点击enter键,也可以进行搜索3.点击搜索框不输入搜索内容,显示热门搜索和历史搜索。点击搜索框输入搜索内容,直接显示搜索列表4.将历史搜索内容存储到LocalStorage.5.删除历史记录搜索框组件源码功能实现1.点击搜索框,显示列表,点击其它地方搜索列表消失.在input组件上监听focus与blur事件,设置i...

2020-04-22 14:45:10 37383 12

原创 Hash函数和Hash冲突

文章目录一、简介二、解决Hash冲突1.开放地址法:这个地址冲突了,给它换个地址。1.1一、简介  将任意长度的数值以某个映射规则映射为固定长度的数值,这个过程称为Hash,而这个映射规则被称为Hash函数,而对这个key、value进行存储的数据结构被称为Hash表。  由于通过key的hash映射直接得到了内存地址,所以hash查找的时间复杂度是O...

2020-04-20 14:42:43 319

原创 设计模式之原型模式(java深浅克隆)

文章目录一、定义二、适用场景三、主要角色四、对象的深浅克隆1.错误的克隆2.浅克隆3.深克隆方式一:通过将引用类型手动clone实现深克隆方式二:通过序列化实现深克隆一、定义原型模式(Prototype pattern)属于创造性设计模式,是指原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。单例模式多次请求后得到的实例其实都只有一个,但是原型模式每次请求都会得到一个新的实例,只...

2020-04-17 16:03:06 524

原创 二分查找

文章目录一、原理二、举例三、 代码实现四、优缺点一、原理对于有序的数组,不是顺序的查找,而是折半的查找,对比查找的值与数组中间值,逐步缩短查找范围。时间复杂度: 最好(直接命中)O(1) 最坏(最边缘命中) O(log2n)空间复杂度: 常规O(1) 递归O(log2n)二、举例arr = {1,2,3,4,5,6,7,8,9,10}low: 左边界 high: 右边界 ...

2020-04-14 17:06:44 180

原创 希尔排序

文章目录一、原理二、举例三、代码实现四、优缺点之前我们学习过插入排序,我们知道插入排序在处理倒序的数组时,比如{10,9,8,76,5,4,3,2,1}时,需要将1一步一步的移动到10的位置,如果数据量很大,很明显这很消耗性能。如果我们不一步一步的移动呢?这就是希尔排序。一、原理希尔排序属于进阶版插入排序(建议先看插入排序),它规定一个增量h,通过增量h分组,在组内先直接插入排序,排好序...

2020-04-14 15:28:36 115

php7.2官方手册中文版

php7.2官方手册中文版

2021-04-29

redismanager_93635.rar

redis可视化工具

2019-11-20

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

TA关注的人

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