自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 ZooKeeper 原理及源码分析

一、ZooKeeper术语集群角色会话数据节点版本watch机制ACL权限控制二、原理及源码分析todo zkServer zkCli怎么实现

2021-05-26 20:28:10 811 1

原创 ZooKeeper 简介和使用场景

一、前言ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等(来源于百度百科)。二、使用场景分布式配置中心(disconf)Distributed Configuration Management Platform(分布式配置管理平台) ,它是专注于各种分布式系统配置管理 的通用组件/通用平台, 提供统

2021-05-23 18:24:10 421 3

原创 使用Python处理图片验证码

在工作中,后端开发人员数据处理是常见的内容,偶尔也会从其他网站获取部分信息。我们获取信息的网站可以分为两大类,一类是资讯网站,比如各大门户网站,另一类是行业网站。资讯网站大多数是没有鉴权的,行业网站一般是有鉴权,鉴权分为多种方式,有短信验证码、账号密码等,这些方式经常是配合图片验证码来使用,因为图片验证码可以防止恶意破解密码、恶意登录等。以某网站为例,我们想要用程序的方式获取数据,必须通过该网站的鉴权。该网站也是用常规的账号+密码+图片验证码的方式组成鉴权。接下来梳理下怎么用Python获取、处理和识别图片

2020-05-16 12:33:23 3148

原创 动态定时任务调度

一、 为什么要使用动态定时任务现在的系统早已不是仅仅由增删改查组成,任务的定时调度和执行也是程序的标配。定时任务相当于闹钟,在什么时候做什么事情。定时任务实现方式,很多人都有不同的方式,基础无外乎以下四种:1、 JDK的Timer类2、 JDK的ScheduledExecutorService3、 Spring Task4、 Quartz在使用过程中,用的最多的是SpringTask的XML配置,配置简单,也较好理解。但是有个缺点,在运行过程中想改变某个任务的执行时间频率或者是再增加/删除一个任

2020-05-16 12:09:51 3567

原创 Java+python识别验证码

爬虫要爬取网站,很重要的一步是识别验证码,只有识别验证码之后才可以进行之后的操作。识别验证码下载验证码下载比较好解决,方式很多。这里不多说,先保存多张验证码。随便打开一张图片,发现背景图有黑点,会干扰识别。用百度OCR接口打开这张图片识别到“h千”。降噪怎么去除背后的黑点?先降噪。系统要先装python运行环境,和安装 PIL 模块。二值化# 二值化处理def two_...

2019-07-29 21:39:55 2535

原创 Ubuntu RabbitMQ安装及springboot集成使用

安装rabbitMQ是用erlang语言编写的,先安装erlangsudo apt-get install erlang-nox#安装完成erl接下来添加公钥wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -安装rabbitMQ,安装之后会自动启动sud...

2019-05-12 09:07:33 240

原创 scp从windows上传文件到Linux

先从windows上传scp命令scp -P 64846 AppService-2.0-BETA.jar niehaifeng@119.3.51.48:/home/niehaifeng/再拷贝到相应的目录cp命令

2019-05-12 07:40:38 30490

原创 nginx代理后刷新显示404

通过首页进入访问页面正常,F5刷新之后出现错误如下图。原因是因为web单页面开发模式,只有一个index.html入口,其他路径是前端路由去跳转的,nginx没有对应这个路径,当然就是404了。一般nginx监听配置如下现在知道原因,需要怎么处理呢?location / { root /mydata/transfer/html/helper/dist; ...

2019-02-15 11:20:17 40764 12

原创 HTTP 413 request Entity too Large

错误如下:前端限制提交文件大小是4M。查资料得知 client_max_body_size default 1m,刚好图片超过了,另外小于1M的图片可以上传成功。可以排查出是这个配置太小的缘故。在服务器查找配置文件 nginx.confroot@01:/# whereis nginxnginx: /usr/sbin/nginx /etc/nginx /usr/share/nginxro...

2019-02-14 17:12:46 631

原创 spring boot静态资源配置的两种方式

配置文件:#static-path-pattern只能写一个路径通配 且不使用@EnableWebMvcspring: mvc: static-path-pattern: /** resources: static-locations: classpath:/META-INF/resources/,file:D:/work/file/upload/如果使用@Enab...

2019-02-11 15:10:43 523 1

原创 Java简单算法--M个苹果放到N个盘子问题

朋友面试遇到一个简单算法题是 10个苹果有多少种分法(整个),比如 1 1 8和 1 8 1、8 1 1是一样的。它的本质还是M个苹果和N个盘子的问题,这里有个特殊的条件是M<=N。...

2018-11-28 00:31:00 2917

原创 Post请求Content-Type方式区分(PostMan示例form-data,x-www-form-urlencoded,raw,binary)

在PostMan中用Post方式,Body有form-data,x-www-form-urlencoded,raw,binary四种。其中raw又分以下7种。现在来区分一下:form-data是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-...

2018-11-25 09:12:10 40892

原创 HttpServletResponse下载文件

HttpServletResponse对象代表服务器的响应,这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。使用HttpServletResponse输出文件,浏览器会解析内容,完成下载。核心代码如下:public static void export(String fileContent, String downloadFile, HttpServletResponse ...

2018-11-23 22:43:23 1868

转载 Java基础知识总结

本人学习java时,做的java基础知识总结:因内容较多,提供原文链接下载。 写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1,2,3。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。

2018-11-23 15:06:19 151

原创 MYSQL Error Code: 1175和Lock wait timeout exceeded处理

Lock wait timeout exceeded解决办法Java执行一个SQL查询未提交,遇到1205错误。java.lang.Exception:Error updating database. Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction解决办法:执行...

2018-11-23 14:01:27 569

原创 基于Redis的简单分布式锁(Jedis和RedisTemplate)

前言在单应用的情况下,需要对某个资源进行加锁经常会用到 synchronized 关键字。但是在集群的环境下,synchronized 只能进行单台机器的资源锁定。举例一个场景,账户表,该账户不断有人往里面转钱,账户余额需要不断的累加,表里有version字段。在高并发情况下,多个进程读取了同一个version的账户记录,只能有一条记录能成功更改。这里有多种解决方式,一种是获取账户记录之前先获得...

2018-11-23 11:29:30 430

原创 云服务器、域名备案和配置

购买云服务器和域名备案服务器购买很简单,一般是都是几个比较知名的云服务器厂商。服务器是不需要备案的,通过静态IP就可以访问,备案主要是指域名的备案。域名使用是需要接入主机,所以是在主机商(空间接入商)进行备案。如果主机提供商是国外的,不需要备案,符合提供商当地的法律法规就行。为什么要使用域名?ip地址都很像,我们不太可能去直接记ip地址。 使用域名的目的是便于记忆和沟通的一组服务器的地址(网...

2018-11-21 21:34:42 2087

原创 Java 常用Lambda表达式

mapreduce这个方法的主要作用是把 Stream 元素组合起来。它提供一个起始值(种子),然后依照运算规则(BinaryOperator),和前面 Stream 的第一个、第二个、第 n 个元素组合。从这个意义上说,字符串拼接、数值的 sum、min、max、average、add 都是特殊的 reduce。例如 Stream 的 add就相当于BigDecimal sum = big...

2018-11-21 17:27:35 542

原创 BigDecimal/Long 前后端交互失去精度解决方法

问题发现一个诡异的现象,数据库存储的bigDecimal类型的数据,经过springboot返回给前端数据丢失了几位小数,例如 222233334444.12345678(后端)->222233334444.123456(前端)。经过查资料,在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在BigDecimal长度大于...

2018-11-21 17:23:56 18592 5

原创 Redis 命令行操作

ttl merchant_account_lock_7470_2 查看对象存活时间

2018-11-19 17:40:46 594

原创 服务器被挖矿入侵,进程 command为ld-linux-x86-64占用cpu很高

测试服务器看到 ld-linux-x86-64的进程占用cpu极高,user 是 mysql 的。测试环境不会有这么高的mysql负载,并且内存占用基本为0。区块链技术盛行,让人不得不怀疑被抓去做矿机了。初步排查[exchange@localhost /]$ sudo find -name "ld-linux*" #找到ld-linux-x86-64名字的文件[sudo] excha...

2018-11-12 19:03:56 3316

原创 SpringBoot Rest Api 设置超时时间

项目有一对外开放api,外网访问经常出现超时,刚接触spring boot不久,内置的tomcat不像原先那样在server.xml中设置request超时时间。后来查了些资料,在配置文件application.properties中加了spring.mvc.async.request-timeout=20000,意思是设置超时时间为20000ms即20s,超时问题的确不怎么发生了。还有另外一...

2018-09-28 22:36:57 23129 5

原创 SpringBoot get请求返回 错误码 406 Not Acceptable

场景描述今天需要写查询服务器上某一个文件是否存在,整个Controller注解为@RestController代码大致如下 @ApiOperation(value = "查询文件是否存在") @RequestMapping(value = "/query/{filename:.+}", method = RequestMethod.GET) public JSONData q...

2018-09-27 22:56:07 5207 3

原创 Git 基本操作

推送本地新分支到远程git push origin fix/vivo:fix/vivogit push origin [本地新分支]:[远程分支]删除本地分支先切到主分支,再删除git checkout mastergit branch -d fix/vivo...

2018-09-24 17:42:38 142

原创 idea tomcat解决中文乱码的N种方法

在IDEA中启动tomcat发现静态页面中文乱码,提供以下几种方法:1. html增加utf-8然而并没有解决问题,有时候换了一种乱码形式2. tomcat server.xml增加编码server.xml 加入URIEncoding=“UTF-8”这种也没有解决我的乱码3. 全局文件编码修改为UTF-8File–>Settings–>Editor–>File ...

2018-09-24 17:17:51 10952 4

原创 Linux服务器设置SSH登陆

Linux服务器设置SSH登陆制作linux服务器密钥对[exchange@localhost ~]$ ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/home/exchange/.ssh/id_rsa): Enter passphrase (empty for ...

2018-09-18 21:26:09 698

原创 程序笔记:MyBatis 动态SQL和模糊查询

之前用mybatis在xml中写sql语句用到过<if>标签,但是不知道这是动态SQL(尴尬),最近空闲整理一下常用的动态SQL。好记性不如烂笔头 以图 t_user 表为例: 1. if 语句根据 userNo 和 name 来查询数据。如果userNo为空,那么将只根据name来查询;反之只根据userNo来查询.<select id="getUserBy...

2018-07-30 12:37:43 2803

原创 坑 利用Apache Batik JPEGTranscoder/PNGTranscoder 转图片 linux 中文乱码

利用Apache Batik实现 SVG转PNG/JPG 中文乱码//生成svgDOMImplementation domImpl = SVGDOMImplementation.getDOMImplementation();String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;SVGDocument doc = (SVGDocum...

2018-07-29 12:45:25 4751

转载 华为云Ubuntu16.04下修改MySQL数据的默认存储位置

1.首先第一步当然是down掉MySQL了:/etc/init.d/mysql stop2.接着创建新的数据库路径:mkdir -p /mydata/mysql其中,/mydata是我在云服务器上加的一个数据盘,已经挂载到 /mydata 上去了。我想把所有的MySQL的数据都存到这个数据盘,而不是存到云服务器自带的系统盘。3.复制MySQL原有的数据,注意,MySQL的原始数...

2018-07-28 18:52:09 320

原创 ubuntu 服务器常用操作

用户1、sudo adduser xxx 这样的命令会在home目录下添加一个帐号。2、sudo useradd xxx 仅仅是添加用户, 不会在home目录添加帐号。3、sudo userdel -r xxx 所以加上-r的选项,在删除用户的同时,不会删除home下的目录。4、sudo userdel -r - f xxx 所以加上-r的选项,在删除用户的同时,连通home下的x...

2018-07-28 11:20:18 681

原创 MySql基本操作

备份导入、导出数据库导出: mysqldump -uroot db1 > db1.sql (注db1为database名)导入:mysql -uroot test < db1.sql (注test为database名,将db1中所有的表及数据导入到test数据库)导入、导出表导出:mysqldump -uroot db1 tb1 tb2&amp

2018-07-28 11:13:47 256

原创 spring 常用方法

回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();InputStream 复用 //转换 private ByteArrayOutputStream toByteArrayOutputStream(InputStream input) throws IOException...

2018-07-28 11:07:53 1852

原创 mongodb 常用操作

show 数据库show dbsshow 表show collections查询db.questionHint.find() db.modelTemplate.find({"type":{"$gte":5}})更新db.collection.update(criteria,objNew,upsert,multi) 参数说明: criteria:查询条件 objN...

2018-07-28 11:05:32 186

原创 服务器CPU过高,堆栈分析

生成dumpjmap -dump:live,format=b,file=./dump/heap.hprof 反向查询JVM线程信息1.top查询显示Java进程2.top -H -p pid 找到进程中最耗资源的线程id3.线程id转成16进制(字母小写)(printf “%x\n” tid)4.执行“jstack pid | grep -A 行数...

2018-07-28 10:58:59 1058

原创 负载均衡OpenResty或Nginx使用stream

搭建OpenResty1、先到OpenResty 官网下载对应的版本的OpenRestysudo wget https://openresty.org/download/openresty-1.13.6.1.tar.gz 解压 sudo tar -zxf openresty-1.13.6.1.tar.gz2、接下来配置我们的stream模块进入解压的文件夹 make...

2018-07-28 10:54:53 4323

原创 CentOS 搭建web java运行环境(tomcat)

云服务器在近些年越来越流行,很多大公司都有面向市场的云服务器。在工作闲暇的时候看到阿里云新人注册送半年服务器免费使用时长,果断的申请了一个,配置是最低的那档(总共花费9.9元,配置当然高不到哪去)。系统在启用的时候就可以选定,我选择了CentOS 7,现在开始配置吧。新增用户我选择连接工具是SmarTTY,一款完全免费的工具。 服务器总不能每次登陆都用root用户,对使用不安全,先增

2018-01-06 14:41:00 309

原创 初级编程--优秀的扫地机器人--java

现在有很多制造商都在卖扫地机器人,它非常有用,能为忙碌的我们分担家务负担。不过我们也很难理解为什么扫地机器人有时候会反复清扫某一个地方。假设有一款不会反复清扫同一个地方的机器人,它只能前后左右移动。

2017-09-09 11:48:59 9987

edb-jdbc14.jar Java连接EDB数据库驱动文件

ppas/postgresql驱动jar包,java程序连接数据使用。PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统.

2020-05-16

空空如也

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

TA关注的人

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