自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记一次永久请求超时bug的解决方案

前言笔者在项目中负责的一个java服务,在现网环境中存在一个超时bug现象,但由于该服务是前同事写的,笔者对其内在逻辑了解不多,所以本次任务目标是用最短的时间找出该bug的解决方案。现象描述项目中负责的一个算路服务,在现网环境中使用一段时间后就不断的报请求超时,重启算路服务又可以正常使用,但同样的使用一段时间后又报请求超时。初步分析这样的现象应该和线程池有关,先看看线程池的配置:核心线程数 300 最大线程数 300*2 保活时间 60s 有界存储队列 300 拒绝策略:将超负荷任务回退

2021-12-11 16:20:39 563

原创 Kmeans实践:自定义算法对天气数据进行分类

本文使用sklearn的KMeans方法对无标签数据集,天气数据集minute_weather进行处理,同时尝试自己编写Kmeans算法进行数据处理,对比两者差异,检查自定义算法可用性。数据集minute_weather可以在网上找找,笔者也是网上找到的,没有把地址记录下来。如果实在找不到可联系笔者私法。(csdn发文章不能带附件吗?)说明本次实验所使用的minute_weather数据集并不“干净”,所以先进行了数据清洗,其中“垃圾”数据包括空值数据,整列或整行为0的数据,最终由于数据过大无法有效

2020-07-06 16:45:02 5099

原创 爬虫实践:通过百度地图API获取省份公园数据

目标通过百度地图Web服务API获取中国所有城市的公园数据,并且获取每一个公园具体的评分、描述等详情,最终将数据存储到MySQL数据库中。实践准备百度地图Place API的地址为http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi开始前需要获取API秘钥(注意个人调用权限)需要使用库 requestsjsonMySQLdb项目实施(1)获取所有拥有公园的城市,并存储至TXT。(2)获取所有城市

2020-07-06 15:21:15 2794

原创 RedisTemplate序列化方式导致的get(key)拿不到值,存入key乱码问题

前言说明笔者所在的项目中,有两个服务之间需要使用redis实现通信,及一个服务存入(key,value),另一个服务get(key)实现通信。使用过程中发现redis通信存在问题,最终重写RedisTemplate序列化方式后问题得到解决。现象描述服务A通过RedisTemplate.opsForValue().set()存入key,在服务B中RedisTemplate.opsForValue().get(key),没能获取到任何内容,日志打印两服务中的key,发现两服务key值没有问题。服务A使

2022-02-25 14:21:35 5506

原创 AOP+注解方式记录、打印请求信息

应对场景在一些项目中,会有这样的一个场景,对某个接口所接受到的所有请求,进行入库记录,并记载该次请求的状态(成功与否),或业务中涉及任务时,也需要对该任务进行入库记录甚至跟踪。最简单的实现方式,是在controler层接收到请求后,解析入参并入库保存请求(任务)信息,service层处理完逻辑后再解析返回并更新任务信息。但这只是一次顺利的请求并成功返回的场景,如果接口返回失败,或在service层的任意地方发生异常、err,都让任务的数据库更新操作很难完成。当然,应对代码抛出异常的问题,结合全局参数异

2022-02-25 11:26:28 723

原创 SpringCloud基础梳理

概述Spring Cloud中文文档:https://www.springcloud.cc/spring-reference.html;需要注意的是,Spring Cloud的版本号是以伦敦地铁站名字命名,版本号按字母排序,标记GA的版本为稳定版。什么是微服务?简单说就是把应用程序细分成一个个的独立服务服务被模块化,单一化,每一个服务都可以独立启动或销毁可以根据各个服务的需求选择最适合自己的开发语言和环境。让开发更高效,每一个微服务一个小团队就可以开发更安全,每一个微服务放在不同的环境里

2021-09-23 09:52:53 155

原创 JUC并发编程

锁的理解与使用通过Synchronized理解锁详细理解查看视频:8锁问题【狂神说Java】JUC并发编程最新版通俗易懂_哔哩哔哩_bilibili被synchronized锁的对象是方法的调用者如phone1.call(),那么锁定的是new出来的这个phone1,如果还有一个实例phone2,是不受phone1锁的影响的。class Phone{ public synchronized void call(){ TimeUnit.SECONDS.sleep(3);

2021-09-04 19:16:55 240

原创 有向图中获取所有联通分量

有向图中获取所有联通分量业务需求某个无向图如上,我们的目的是找出所有联通分量,如上图中有两个联通分量,可以看成是两张子网。并查集(Union-Find-Set)参考博客:并查集——求无向图的所有连通子图_wangyibo0201的博客-CSDN博客_连通子图时间复杂度O(S),相比原博客,笔者做出了一些定制版的改变,简化了算法步骤,性能也有所提高。以上图为例,我们能够拿到的资源,应该是一条条具备连接关系的线,遍历所有线(无序),形成具有聚合关系的集合,规则如下:一条边有两个节点,选择一

2021-07-10 12:20:28 355

原创 自定义参数校验注解

问题描述标准的接口开发总是离不了参数校验,Spring自然是为我们准备了相应的模板,使用@NotEmpty、@NotBlank、@NotNull等注解就可对参数进行检查校验,但这些注解必须搭配@Valid使用才能生效。具体可参考:@Valid介绍及相关注解 - 简书 (jianshu.com)。可@Valid使用存在限制,即SpringMVC的Validation只在Controller中生效,从整个接口生态上看,这是合理的设计,数据验证都不通过,也不会到业务层了。可如果我们需要要在业务层进行数据校验

2021-06-13 15:14:07 3077 1

原创 自定义全局参数容器:解决多参数传递与方法嵌套太深所带来的问题

面临的问题在java的编程中,方法调用与嵌套,多参数传递几乎无处不在,当方法嵌套太深,参数传递太多时,就会带来很多困扰。观察以下代码 private void functionA (Object value1, Object value2, Object value3, Object value4) { functionB(value1,value2,value3); } private void functionB (Object value1, Object v

2021-06-10 21:16:11 822

原创 微信小程序使用开发者工具打开,却变成了小游戏

明明是一个微信小程序项目,用微信开发者工具打开后却变成了微信小游戏笔者是因为一些未知原因,配置文件里的参数发生了改变导致的问题。解决办法:找到项目二级目录下的项目配置文件project.config.json,检查其中配置"isGameTourist": false,isGameTourist 参数定义了项目类型。false才是小程序,如果为true,微信开发者工具会强制用微信小游戏模板打开该项目。...

2021-04-15 00:02:32 4135

原创 依赖包冲突,Error creating bean

启动Spring项目失败,日志提示Error creating bean with name ‘gsonBuilder’ defined in class path resource这里是在提醒创建在类路径资源中定义了名为“gsonBuilder”的bean时出错,通常是gsonBuilder这个依赖包有冲突,比如你pom导入的依赖包下,有子依赖包与Spring的子依赖包重复时,就会抛出这个错误,根据类路径资源导入bean时抛出了这个错误。笔者完整抛错如下:2021-04-14 23:33:38..

2021-04-14 23:58:41 1621

原创 IOC控制反转:从理论推导到开发使用

IOC 控制反转前言本文通过讨论一个简单实例问题来理解IOC控制反转,再由IOC理论思考它的实现方式,以及认识Spring中逐步优化IOC的过程。本文知识点归纳参考讲解视频:https://www.bilibili.com/video/BV1WE411d7Dv?p=6Spring IOC 中文文档:https://www.docs4dev.com/docs/zh/spring-framework/5.1.3.RELEASE/reference/core.html#beans其中有不少知识是基于个人

2021-02-03 17:19:58 93

原创 Activit基础知识总结

资料整理主要参考视频:https://www.bilibili.com/video/BV1Jt4y117BV?p=1Activiti7文档及相关资料:链接:https://pan.baidu.com/s/18YkJ-R0__y1G-GkLhbesVA提取码:xeywActiviti5文档,用户手册中文版:http://www.mossle.com/docs/activiti/index.htmlActiviti介绍解决问题过去开发中一旦业务变更就需要更改源码,很麻烦,Activiti可以解

2021-01-11 17:56:12 229

原创 认识Spring Cloud

什么是微服务?简单说就是把应用程序细分成一个个的独立服务服务被模块化,单一化,每一个服务都可以独立启动或销毁可以根据各个服务的需求选择最适合自己的开发语言和环境。让开发更高效,每一个微服务一个小团队就可以开发更安全,每一个微服务放在不同的环境里,且有备用环境。微服务有哪些难题?用户如何访问我们的微服务?(网关API解决如zuul)服务之间如何通信?(如Apache的Dubbo)怎么管理这些服务?(Zookeeper等)怎么制止雪崩,熔断机制?(Hystrix等)现在的解决方案

2020-12-04 13:23:55 97

原创 MySQL基础知识归纳

配置mysql的配置文件在位于安装目录下,my.ini文件中可以对mysql基本信息进行设置,注意更改完成后需要重启服务数据库SQL/*显示所有数据库*/SHOW DATABASES;/*进入数据库*/USE MYSQL1;/*显示所有表*/SHOW TABLES;/*查看当前所在库*/SELECT DATABASE();/*创建表*/CREATE TABLE student(id int,name varchar(20));/*查看表结构*/DESC student;/*

2020-12-04 13:14:11 109

原创 线程-集合-反射

线程注意!java并不能直接开启线程,java无法操作硬件,查看thread源码可以知道,它是通过调用一个本地c++方法实现的。实现方式通过继承thread类实现(拓展性不强,继承thread后就不能继承其他类了)通过实现Runnable接口实现实现callable类(企业级开发中常用,特点是重写的call()方法有返回值,有利于异常处理)如何使用?自定义类继承thread类或实现接口重写run方法,编写执行体新建线程实例,start()启动//继承Thread类启动

2020-11-26 21:35:04 339

原创 MyBatis基础知识总结

概述官方文档:https://mybatis.org/mybatis-3/zh/index.html1.1什么是Mybatis一款优秀的持久层框架(持久化:将程序的数据从瞬时状态转化为持久状态的过程,通常是写入数据库,磁盘等)支持定制化SQL,储存过程以及高级映射规避了JDBC使用的复杂性,简单易上手原名iBatis(有的jar包还是这个名字),现源码在GitHub上1.2Mybatis用来干什么?帮我们实现对数据库的操作,简单方便,替我们完成传统的,复杂的jdbc代码方式实现的工作

2020-11-18 14:03:24 139

原创 Redis基础知识总结

概述一个免费开源的由c语言编写,支持网络,基于内存(内存是断电即失,但redis可持久化)的,可持久化的日志形,key-value数据库。提供大部分语言的API。中文官方文档www.redis.cnRedis在线编程https://try.redis.io/可用于数据库,缓存,消息中间件MQ(MongoDB称为结构化数据库,最像关系型数据库的非关系型数据库)安装(linux)下载安装包解压安装包 tar -zxvf filename配置基本环境 gcc make修改配置文件redis

2020-11-16 18:13:42 116

原创 npm 报错:npm ERR! Error: EACCES: permission denied, access ‘/usr/local/node/mycode/expressjadeapp

ubuntu中安装node模板npm install express --save 时报错:npm ERR! Error: EACCES: permission denied, access '/usr/local/node/mycode/expressjadeapp'根据错误提示知道是权限原因,但在命令前添加sudo却无法识别npm命令。sudo npm install express --savesudo: npm:找不到命令那么更改文件权限,或者更改文件目录权限即可sudo chmod

2020-10-07 09:39:39 268

原创 JDBC工具类:给我一条SQL语句即可完成你想要的数据库操作

SqlUtil一个自定义的jdbc工具类,自动帮我们完成数据库连接,数据池的建立,只需要通过配置文件,填写你的MySQL数据库连接信息,使用时给SQL语句即可完成对数据库的操作。get操作读取数据库返回数据将转为实体类。可调用方法方法名入参返回类型--------说明---------addData()StringBoolean根据SQL语句添加数据库内容updateData()StringBoolean根据SQL语句更改数据库内容deleteDat

2020-10-03 13:36:01 257

原创 [java]五子棋的面对对象方式实现

前言学编程做练习,少不了一个简单的五子棋,但笔主搜了不少网页,发现都是面对过程的实现方式,且多使用java,java作为一种面对对象的语言,面对对象方式实现五子棋肯定更加灵活简洁。话不多说,开始实现。展示效果比赛开始,双方棋手开始落子,每次落子进行落子合法性判断(落子是否在棋盘内,当前位置是否为空),落子不正确棋手重新落子。棋况: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2020-09-20 17:34:57 334

原创 数据分析实践:航空公司客户价值分析

信息时代的来临使得企业营销焦点从产品转向了客户,客户关系管理,而客户关系管理的关键问题是客户分群。通过客户分群,区分无价值客户和高价值客户。本次利用获取到的航空公司客户数据,结合RFM模型,采用K-Means聚类算法,分类出不同具有客户价值分群,以此学习kmeans算法的实际运用。实现目标(1)对原始数据集进行分析,提取我们需要使用的数据(2)对抽取的数据进行数据清洗、特征构建和标准化等操作。(3)基于RFM模型,使用K-Means算法进行客户分群。(4)针对模型结果得到不同价值的客户。实现

2020-07-06 16:08:26 1476 2

原创 爬虫实践:获取微博热搜词汇统计

目标通过akshare API获取微博热搜词汇统计,并将数据可视化用于分析实践准备开始前需要安装akshare,有关akshare的安装与使用参考《akshare文档》需要使用到的库:pylab #用于可视化pandas #用于数据处理项目实施获取指定热搜词信息将数据进行简单的可视化对数据进行分析,这里没有进行拓展,感兴趣的可查看我的知乎文章《疫情数据重要转点分析》import akshare as akimport pylab as pltimport pandas as pd

2020-07-06 15:45:16 1067

原创 R语言:array定义多维数组打印依然是一维(向量)

学习R的途中,练习使用array数组,可定义的一个三维数组打印后依然是一维输出(使用Jupter Notbook)如下:vector1 <- c(5,9,3)vector2 <- c(10,11,12,13,14,15)result <- array(c(vector1,vector2),dim=c(3,3,2))result打印结果:5 9 3 10 11 12...

2020-03-29 22:22:22 565

原创 opencv处理函数,图像处理常用函数

由于众所周知的原因,OpenCv官网我们常常404,笔者这里直接整理了中文版的opencv graph API函数,也是我们图像处理过程中常用的函数,若你可链接外网可直接查看opencv graph API其中存在少许的乱码可能笔者未能检查出,凑合着学把。功能详细说明本节中描述的函数和类用于对2D图像(表示为Mat)执行各种线性或非线性滤波操作。这意味着对于源图像(通常为矩形)中的每个像素...

2020-03-26 22:29:02 596

原创 报错:pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path

## 使用pytesseract库训练时,报错如下: File "C:\Users\Acer\AppData\Roaming\Python\Python36\site-packages\pytesseract\pytesseract.py", line 232, in run_tesseract raise TesseractNotFoundError()pytesseract.py...

2020-03-26 20:55:00 545 2

转载 Chromedriver,Firefoxdriver学习手册

Chrome Webdriver手册Firefox Webdriver手册

2020-03-23 10:54:55 504

原创 chromedriver没有win64版本?使用chromedriver时 WebDriverException报错

chromedriver版本及使用问题chromedriver没有win64版本?使用chromedriver时 WebDriverException报错?笔者练习网络爬虫使用selenium时:from selenium import webdriverdriver = webdriver.Chrome()driver.get("http://www.santostang.com/20...

2020-03-23 10:10:29 21299 6

空空如也

空空如也

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

TA关注的人

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