自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 利用redis做分布式限流

SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程本篇从 Spring Boot、Redis 应用层面来实现分布式的限流….分布式限流单机版中我们了解到 AtomicInteger、RateLimiter、Semaphore 这几种解决方案...

2021-03-12 20:59:32 554

原创 Java 获取过去24小时、一周、一个月的日期

背景    一种常见的需求是获取当前时刻的过去24小时小时数、过去一周的日期,过去一个月的日期等等,由于该类需求比较常用,而且其中也涉及闰月、平月的概念,故把这几个方法整理了一下以备不时之需。实现    分别对过去24小时、过去一周、过去一个月需要返回的东西进行抽象成POJO类,其中参数可根据实际需求自定义修改。    以下类设置两个list存放过去24小时的日期数+小时数,以及小

2020-12-09 20:45:22 1666

原创 微服务后端查询超时立即返回的处理方法

背景描述    功能:向用户提供区间可查询,用户输入时间区间,或者其他特定参数,后端调用底层平台获取数据后再进行业务处理、分页等封装以便展示。    问题:1. 当用户输入时间区间过大可能会导致跨平台查询底层数据量过大,查询速度慢、超时、撑爆内存,进而造成服务卡死或宕机。2. 由于数据量的多少和时间区间的长短并无之间联系(数据量多少与业务有关,有时候一秒内几千笔,而有时候数小时内都可能无记录),因此输入区间限制不宜在前端控制

2020-12-02 19:31:29 1273

转载 Apollo配置中心搭建笔记

由于现在服务器启动的时候会有很多配置文件需要加载,而且有多套环境时,会有部分配置不同,所以管理起来不太方便,就可以使用携程的apollo来进行统一管理由于apollo是新出来的配置中心,更新很快,年初使用的0.几的版本还需要自己打包,现在1.0版本出来之后,不需要自己打包了,只需要下载官方的压缩包,然后自己修改配置就能使用下面就记录一下我操作的过程,避免一段时间后又忘记了创建数据库SQL脚本:https://github.com/ctripcorp/apollo/tree/master/scri.

2020-07-22 15:58:25 415

原创 MySQL和PostgreSQL设计规范

MySQL&PostgreSQL设计规范1. 设计工具使用Navicat Data Modeler进行数据库设计,使用*.ndml文件交流设计细节,不允许直接操作数据库进行修改修改数据库一定要同步更新本地的.ndml文件,避免因开发环境异常而导致数据库丢失,demo测试数据或初始化数据要以sql脚本协议代码中*字符集:统一使用utf-8字符集, 按中文排序2. 命名规范2.1 ...

2020-06-30 09:45:58 744

转载 凸包问题的五种解法

前言:首先,什么是凸包? 假设平面上有p0~p12共13个点,过某些点作一个多边形,使这个多边形能把所有点都“包”起来。当这个多边形是凸多边形的时候,我们就叫它“凸包”。如下图: 然后,什么是凸包问题? 我们把这些点放在二维坐标系里面,那么每个点都能用 (x,y) 来表示。 现给出点的数目13,和各个点的坐标。求构成凸包的点? 解一:穷举法(蛮力法)时间复杂度:O(n³)。 思路:两点确定一条直线,如果剩余的其它点都在这条直线的同一侧,则这两个点是凸包上的点,否则就不是。 步骤:

2020-06-01 16:40:36 818 1

原创 springboot 基于注解实现多数据源切换

1 背景业务开发中,后端通常需要操作多个数据库(可能同类型,也可能不同类型)中的数据,比如主、从数据库的切换场景通常就是同类型切换。但实际需求中,也有可能需要不同类型数据库之间的切换。不论是否同类型,其背后原理一致,只需在配置文件中修改数据库驱动,相关配置类中修改。springboot 提供的AbstractRoutingDataSource实现多数据源动态切换的核心逻辑是:通过AOP的方式在程序运行时,把数据源通过 AbstractRoutingDataSource 动态织入到程序中,灵活地进行数据源切

2020-05-09 23:05:48 1730 1

原创 @Pattern注解中常用的校验正则表达式札记

1 前端传参要求项目开发中经常会遇到对用户输入内容的限制,本篇对常用限制做一总结。如图所示,标识字段有严格字符限制,用户输入校验这部分工作前端可以做,当然后端也可以通过在DTO中添加注解的方式实现参数校验。DTO中代码如下:@Datapublic class ProjectDTO { @NotBlank(message = "项目名不能为空") private Stri...

2020-05-07 21:04:08 4349

原创 微服务后端接口开发及返回值规范札记

请求接口及返回值规范[HTTP&RPC]0. 禁止规则&设计原则任何接口不允许使用编程语言相关的扩展名,可以使用与返回值类型相关的扩展名 (安全角度考虑,将泄漏后端语言或框架)接口名不允许以/结尾 (搜索引擎优化角度考虑,一个同样的页面不应该有两个地址,会被搜索引擎认为是作弊,搜索引擎对无/的地址支持更加友好)接口应该尽量的少, 后端接口不应该因前端的简单格式调整或者查询...

2020-05-03 15:43:17 6520

原创 web开发功能设计札记

0. 前端设计检查原则【优先参考】阿里巴巴antd规范 https://ant.design/docs/spec/introduce-cn持续维护【备用参考】 内部设计规范 https://design.d.com针对内部场景优化, 标注细致,但停止维护,在阿里规范未尽解释方面可参考此规范边界检查测试角度的边界检查范围1. 浏览器标题栏标题应包含 [页面标题] - 模块 - ...

2020-04-30 17:44:06 257

原创 Feign远程调用添加Token并设置服务降级

1 背景概述    远程调用:后台管理服务需要调用实验服务的某一接口,注册中心显示服务名如下:2 实验部分(被调用方)@ApiOperation(value = "删除一个实验", httpMethod = "DELETE")@DeleteMapping("/jobs")public boolean deleteExperiment(@Reque...

2020-04-30 17:42:10 816

原创 QGIS获取城市路网数据(经纬度)

1 前言本文介绍如何通过QGIS来获取境内任意城市的路网数据(经纬度坐标),并以上海市为例,一步步演示最终得到全市路网的百度坐标。1.1 准备工作下载QGIS(本文所用版本:QGIS-OSGeo4W-2.18);下载完成后双击安装。安装完可以设置语言为简体中文Setting→Options→Locale→Override system locale→中文。下载QGIS的坐标转换插件Ge...

2020-04-25 10:45:06 13953 19

原创 springboot利用YamlPropertiesFactoryBean读取自定义yaml配置文件

首先确保依赖已被添加:// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-configuration-processorimplementation 'org.springframework.boot:spring-boot-configuration-processor:2.2.6.RELE...

2020-04-03 16:39:27 2904 1

原创 MySQL优化相关总结

前言1.1 b+树的查询过程如上图所示,如果要查找数据项29,那么首先会把磁盘块1由磁盘加载到内存,此时发生一次IO,在内存中用二分查找确定29在17和35之间,锁定磁盘块1的P2指针,内存时间因为非常短(相比磁盘的IO)可以忽略不计,通过磁盘块1的P2指针的磁盘地址把磁盘块3由磁盘加载到内存,发生第二次IO,29在26和30之间,锁定磁盘块3的P2指针,通过指针加载磁盘块8到内存,发生第三...

2020-03-09 11:31:44 160

原创 项目构建打包与容器部署

构建打包结构与部署方案.mdproject-name-version-[debug|release].tar.gz#解压到当前文件夹tar zxvf project-name-version-[debug|release].tar.gz#解压到特定文件夹 (例如解压到/usr/local/project-name-version-[debug|release])tar zxvf pro...

2019-11-18 15:05:25 232

原创 IntelliJ Idea远程调试容器中的应用

背景    项目开发中需要利用 Spring Cloud Feign调用另一个微服务提供的接口,而所有微服务均部署在docker容器中,传统Idea本地调试方法无法进行有效调用,因此需要特殊配置实现部署环境的远程调试,该方法也适用于调试只在部署环境才能复现的故障。步骤    1、进入容器,开启JVM调试端口jdw...

2019-11-12 15:11:38 1646

原创 线上CPU100%,频繁FullGC排查套路笔记

背景介绍对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出 jstack 和内存信息,然后重启系统,尽快保证系统的可用性。这种情况可能的原因主要有两种:代码中某个位置读取数据量较大,导致系统内存耗尽,从而导致 Full GC 次数过多,系统缓慢。代码中有比较耗 CPU 的操作,导致 CPU 过高,系统运行缓慢。相对来说,这是出现频率最高的两种...

2019-10-10 16:04:20 314 1

原创 SpringCloud与SpringBoot的版本对应及相关札记整理

参阅https://github.com/zhangxd1989https://github.com/codecentric/spring-boot-adminhttps://github.com/ityouknow/spring-boot-examplesFinchley -> Greenwich 2.1.1Dalston ->Edgware SR5 1.2.2-1.4.2...

2019-09-25 20:01:25 1097

原创 springboot 对HDFS的文件操作

1 项目背景机器学习平台功能需求之一:对Hadoop文件系统进行操作,实现文件目录的创建、算法组件的删除、修改或上传,算法组件的文件类型暂为jar包,同时一些操作信息记录到MySQL。2 技术路线需要做的几个步骤:Springboot对HDFS操作的相关配置HDFS文件的相关操作业务逻辑 eg: 创建、删除、更新、上传等文件类型检查,对不符规定的文件限制上传3 代码实现首先添加...

2019-09-25 20:00:49 4079 7

原创 百度地图街景图片爬取

1、需求       最近公司有一个智慧城市空间品质分析需求调研,初步想法是抓取整个杭州市的百度/腾讯街景地图及其时光机功能(实时图片和历史图片),再进行图像分析,研究杭州市街道空间品质的变化,进一步为城市规划和城市变化作重要参考。       刚开始没有什么头绪,最后还是解决了,在这里分享一下。2、分析&nb...

2019-09-25 19:59:53 21073 35

原创 百度街景图片存MySQL

1 引言       本文记录百度街景图片的存储过程,主要逻辑是:读取本地图片,存mysql,代码直接下载稍作修改就可运行,存储相关使用的是Java原生接口。更多代码以及百度街景图片相关背景参考这里。2 建表       表字段主要分为两部分:当前街景部分和历史街景部分,每部分都包含4大属性:id、拍摄日期、图片...

2019-09-25 19:58:25 1503 2

原创 redis.clients.jedis.exceptions.JedisConnectionException之异常解决

文章简单介绍了redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out和redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool两种异常的产生原因,并最后给出解决方法,亲测有效。

2019-09-25 19:57:26 7801 4

原创 webmagic之Redis调度器

爬虫redis调度器实现功能如下:待爬取url判重(列表页或详细页); 待爬取url存储至本地内存; 待爬取url存储至redis(列表页或详细页); 待爬取url添加优先级(加入评分score,以便优先爬取) 入队出队逻辑talk is cheap,show you guys the code:public class RedisScheduler extends Dupli...

2019-09-25 19:56:54 217

原创 按目录层级打印指定路径下的所有文件名

需求:传入文件路径(目录),打印该路径(目录)下所有文件名,要求含目录层次关系1、File类的方法回顾boolean isDirectory() // 判断File是否为目录 boolean isFile() // 判断是否为文件 boolean exists() // 判断文件是否存在 boolean delete() // 删除文件,成功则返回true,否...

2019-09-25 19:56:29 1918

原创 专利网数字验证码识别

1、背景项目需求:识别专利网查询页数字验证码专利查询网址:http://cpquery.sipo.gov.cn/,项目需对该网站进行爬取,网站登陆页面如下:图1 首页登录当公众查询登录之后查询页含数字验证码。此类验证码(字符未扭曲)识别相对容易,只需要识别0-9以内的数字即可。放大点再看先训练模型ocr模型训练的四大步骤:去噪 垂直分割 水平分割...

2019-09-25 19:55:58 922 2

原创 基于webmagic框架的多主题爬虫关键词切换

1、背景介绍 多主题爬虫中,我们一般先分析网站的url特点(重点是列表页),再根据项目需求预先设定好关键词,对待爬取url,或者称为种子url进行精准控制。1.1、分析一 带关键词的url场景有很多,如网站的特定版块、某模块发送的AJAX请求等都嵌入了关键词。 eg:我们需要爬取同程旅游网杭州的旅游景点信息,url是:https://so....

2019-09-25 19:55:31 567

原创 MIT Place Pulse数据集及google街景图片爬取

1、项目背景1.1 使用谷歌街景图片的必要性如果想要做 “建立街景图片与人主观感受的联系”相关场景,需使用 MIT Place Pulse 数据集。该数据集文件可直接下载,但没有提供街景图片本身,只提供了街景的坐标,需通过谷歌街景开放API 获取对应的街景图片。MIT Place Pulse数据集中的街景图片大多在国外,因此需翻墙爬取。1.2 使用谷歌街景图片的目标“建立街景图片与...

2019-09-25 19:55:00 7052 38

原创 Centos基础与安装

Centos基础与安装Centos安装1. Linux版本衍生|-AT&T Unix: AT&T最初研发,后与Western Electric公司组建贝尔实验室继续研发 Unix 来自 UNIX 为 UNICS的谐音(UNiplexed Information and Computing Service) 而 unics Brian Kernighan是对 Multiplex...

2019-09-25 19:52:44 324

原创 Centos的使用札记

Centos使用1. Shell基础1.1 Shell类型bash (Bourne-Again Shell, linux默认shell,sh的增强版 包括centos ubuntu,sh软链到bash, GNU组织研发) http://www.gnu.org/software/bash/manual/html_node/index.htmlash (Almquist shell,Ken...

2019-09-25 19:51:57 257

原创 JVM垃圾回收相关总结

1、Full GC 、 Major GC 、Minor GC 之间区别Minor GC: 从新生代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。Major GC: 清理 Tenured 区,用于回收老年代,出现 Major GC 通常会出现至少一次 Minor GC。Full GC: Full GC 是针对整个新生代、老年代、元空间(metaspace...

2019-09-25 19:51:16 162

原创 JVM线上常用参数、常用工具以及异常排查

数据区设置Xms:初始堆大小Xmx:最大堆大小Xss:Java 每个线程的Stack大小XX:NewSize=n:设置年轻代大小XX:NewRatio=n:设置年轻代和年老代的比值。如:为 3,表示年轻代与年老代比值为 1:3,年轻代占整个年轻代年老代和的 1/4。XX:SurvivorRatio=n:年轻代中 Eden 区与两个 Survivor 区的比值。注意 Survivor区...

2019-09-25 19:51:04 431

原创 Docker常用配置管理操作札记整理

Docker常用配置管理操作Docker本地主机管理查看所有运行的容器docker ps修改端口映射docker default bridge环境iptables -t nat -A DOCKER ! -i docker0 -p tcp -m tcp --dport 10022 -j DNAT --to-destination 172.17.0.66:22weave环境i...

2019-09-25 19:50:39 225

原创 IntelliJ Idea后端开发软件配置

后端IDEA软件配置.mdIDE软件配置1. ${USER}变量重写1.1 ${USER}变量重写Help->Edit Custom VM Options… 打开的文件尾部追加## idea版权模板中自定生成的用户名[email protected]## 防止IDEA Run Console输出乱码-Dfile.encoding=UTF-8...

2019-09-25 19:50:23 851

原创 okhttp3之java.net.SocketTimeoutException: timeout 异常处理

背景介绍    项目中开启线程池下载图片,okhttp报错如下:    一直沿用以前开发的工具类(将okhttp客户端封装成了单例模式),之前开发的项目涉及到的网络请求未出现过类似异常,而这次由于图片下载量大,线程数量多,造成socket超时。    之前的工具类:pu...

2019-09-25 19:50:10 37480 4

原创 版本管理札记整理

GIT环境变量 PATH添加 D:\Program Files\Git\bin(某些工具例如brower从此处读取git路径)HTTPS代码记住密码git config --global credential.helper store## git文件名识别大小写, 防止大小写更名不显示变动git config core.ignorecase false提交时也不转换(应对可能需要提交...

2019-09-25 19:49:55 288

原创 Spring、Springmvc、Spring boot 相关笔记整理

基础扫盲       Beans(这里特指Spring Beans):由Spring IoC Container管理的的对象,IoC Container负责对象的实例化和装载,Beans本身和Bean与Bean之间的依赖关系,由IoC容器的配置元数据来描述 ;Spring beans支持管理的对象,需要有构造方法,但不一定要满足JavaBean规范,也就是...

2019-09-25 19:48:40 355

原创 TCP/IP粘包拆包现象及netty解决方案

1、问题背景 传输层除了有TCP协议外还有UDP协议。 首先,UDP不会发生粘包或拆包现象。因为UDP是基于报文发送的,从UDP的帧结构可以看出,在UDP首部采用了16bit来指示UDP数据报文的长度,因此在应用层能很好的将不同的数据报文区分开,从而避免粘包和拆包的问题。 但TCP是基于字节流的,在基于流的传输里(如TCP/IP),接收到的数据会先被...

2019-09-25 19:43:17 794

原创 Mybatis动态sql语句及模糊查询札记

1 单条件模糊查询sql中字符串拼接模糊匹配<select id="getComponentByName" parameterType="String" resultMap="component"> SELECT * FROM dmp_component WHERE name like CONCAT(CONCAT('%',#{name}),'%')</select&...

2019-09-19 20:05:37 503

原创 百度坐标转换,以及国测局、WGS84(GPS)坐标系之间的转换札记

背景介绍    坐标系转换,网上内容也比较多、也比较杂,有的可以运行,有的则各种问题,这里记录并加以补充,最后封装了常用坐标系转换工具。亲测可运行!WGS84:即地球坐标系,国际上通用的坐标系。谷歌地图采用的是WGS84地理坐标系(中国范围除外)GCJ02:即火星坐标系,中国国家测绘局制订。由WGS84坐标系经加密而成,谷歌中国地图和搜搜中国均采用的...

2019-08-02 18:08:01 6571 3

原创 Redis之zset常用命令及好友关系设置简易实现札记

1、Redis有序集的使用    不管是排行榜或好友推荐等功能的实现,背后还是利用Redis的有序数列集合(zset)及相关命令来实现。先回顾排行榜实现原理:    有序集合由三部分组成,KEY(键)、score(成员的得分)、member(成员)。有序集合的每一项,都是以键值对的形式存储,每一项都有一个分数。有...

2019-07-15 22:38:03 877

神经网络程序

测试成功的神经网络分类器代码 对车牌字符分类

2014-12-23

空空如也

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

TA关注的人

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