自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python 实现给 pdf 文件自动识别标题并增添大纲

想使用Python代码自动解析pdf文档,给文档增添大纲内容,便于观看和理解。

2024-01-02 20:00:13 1059

原创 Java 实现自动获取法定节假日

一般的实现方案是自己维护一个工作日和调休的表,或者去爬取国务院发布的数据。后者可能涉及法律风险,爬虫的识别策略也不太可靠。在实现业务需求的过程中,遇到了需要计算 x 个工作日后的日期需求。由于工作日是每年国务院发布的,调休和休假都没有规律,所以无法使用算法进行计算。因为节假日一旦定下来就不会轻易改变,所以可以把获取到的数据存在本地,这样每天100次的接口额度完全够用,不需要进行付费。所以还是考虑使用由专人维护的接口,找到了天行数据的接口,个人用户有10个免费接口的额度,每个接口每天限制调用100次。

2023-12-29 16:25:46 3653 2

原创 JVM笔记(十二)类文件结构

Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。当遇到需要占用8个字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8个字节进行存储。

2023-04-04 21:34:15 551 1

原创 JVM笔记(十一)故障排查小工具

在 Java 应用程序的线上环境中,由于各种原因(如内存泄漏、死锁等),虚拟机可能会出现故障,导致应用程序崩溃或运行缓慢。以下是一些常用的 Java 线上环境虚拟机故障排查小工具:

2023-03-28 20:13:40 479

原创 JVM笔记(十)垃圾收集相关的常用参数

垃圾收集相关的常用参数

2023-03-27 20:09:37 149

原创 JVM笔记(九)选择合适的垃圾收集器

Epsilon收集器由RedHat公司在JEP 318中提出,在此提案里Epsilon被形容成一个无操作的收集器(A No-Op Garbage Collector),而事实上只要Java虚拟机能够工作,垃圾收集器便不可能是真正“无操作”的。原因是“垃圾收集器”这个名字并不能形容它全部的职责,更贴切的名字应该是本书为这一部分所取的标题——“自动内存管理子系统”。一个垃圾收集器除了垃圾收集这个本职工作之外,它还要负责堆的管理与布局、对象的分配、与解释器的协作、与编译器的协作、与监控子系统协作等职责,其中至少堆

2023-03-24 19:53:17 455 1

原创 JVM笔记(八)低延迟垃圾收集器

衡量垃圾收集器的三项最重要的指标是:内存占用(Footprint)、吞吐量(Throughput)和延迟(Latency),三者共同构成了一个“不可能三角”。三者总体的表现会随技术进步而越来越好,但是要在这三个方面同时具有卓越表现的“完美”收集器是极其困难甚至是不可能的,一款优秀的收集器通常最多可以同时达成其中的两项。

2023-03-23 20:03:17 227

原创 JVM笔记(七)经典垃圾收集器

Serial收集器这个收集器是一个单线程工作的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。

2023-03-22 20:23:56 251

原创 JVM笔记(六)HotSpot的算法细节

根节点枚举所有收集器在根节点枚举这一步骤时都是必须暂停用户线程的,因此毫无疑问根节点枚举与之前提及的整理内存碎片一样会面临相似的“Stop The World”的困扰。

2023-03-21 20:13:11 276

原创 JVM笔记(五)垃圾收集算法

当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(Generational Collection)[1]的理论进行设计,分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则,它建立在两个分代假说之上

2023-03-20 15:34:57 234

原创 JVM笔记(四)对象是否存活判断算法

在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。这个看似简单的算法有很多例外情况要考虑,必须要配合大量额外处理才能保证正确地工作,单纯的引用计数就很难解决对象之间相互循环引用的问题。

2023-03-16 14:55:21 269 2

原创 JVM笔记(三)OutOfMemoryError异常

Java堆内存的OutOfMemoryError异常是实际应用中最常见的内存溢出异常情况。出现Java堆内存溢出时,异常堆栈信息“java.lang.OutOfMemoryError”会跟随进一步提示“Java heap space”。

2023-03-15 16:26:09 586

原创 JVM笔记(二)HotSpot虚拟机对象探秘

HotSpot虚拟机对象探秘

2023-03-14 19:05:49 165

原创 JVM笔记(一)JVM 运行时数据区域

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域。

2023-03-13 14:26:32 136

原创 生产环境项目踩坑复盘

生产环境项目踩坑复盘记录

2023-02-10 14:32:32 435

原创 Go1.19 引入golang下的包

由于墙的原因,直接go get 引入 golang下的包,会报错连接超时的情况。可以通过镜像库来解决,这里使用的是阿里云的镜像库.

2022-08-22 18:47:04 465

原创 Centos 升级docker 至最新版本或指定版本

因为需要安装新的容器,需要升级docker,从1.13.1 版本升级到 20.10.9。升级之后原有的容器依然可以正常启动运行,数据没有发生丢失情况。

2022-07-07 12:02:24 6073 1

原创 python 监控系统 statsd+graphite

一.安装statsd1. statsd+graphite安装过程有点复杂,依赖好几个框架,幸好有了docker,一条命令搞定docker pull hopsoft/graphite-statsd使用参考项目网站:https://github.com/hopsoft/docker-graphite-statsd2. 启动:docker run -d --name graphite --restart=always -p 5100:80 -p 5101:81 -p 2003-2004:2003

2022-02-21 20:17:13 920

原创 记一次 JAVA 的内存泄露分析

收到前端报错说应用无法访问,错误信息是Gc overhead limit exceeded,日志里有很多OOM,就开始了这一次内存泄露的排查之旅。1、报错信息是:GC overhead limit exceeded。根据这个信息来看,应该是有很多对象垃圾回收失败了。OOM 报错一般代表的情况:java.lang.OutOfMemoryError: GC overhead limit exceeded:当前已经没有可用内存,经过多次GC之后仍然没能有效释放内存。java.lang

2021-12-17 16:28:12 1066

原创 AES和RSA加密简介+Java使用工具类

一、AES和RSA1、对称加密和非对称加密简介目前常见的加密方式是有两种,一种是对称加密(AES为代表),一种是非对称加密(RSA为代表)。对称加密只有一个秘钥,加密和解密都是用同一个秘钥,所以叫做对称加密。非对称加密有两个秘钥,一个是公钥,一个是私钥。非对称的特点在于,公钥加密的私钥可以解密,但私钥加密的,公钥解不出来,只能验证是否由私钥进行加密这样可以保证就算有人拿到公钥,也解密不出私钥加密后的信息,公钥可以在网上安全的传输。而且公钥可以验证这个密文是不是由私钥加密出来的..

2021-12-14 20:26:59 5704

原创 kafka安装以及和SpringBoot整合

一、下载Kafkawget https://dlcdn.apache.org/kafka/3.0.0/kafka_2.12-3.0.0.tgz二、安装Kafka1、解压tar -xzf kafka_2.12-3.0.0.tgzcd kafka_2.12-3.0.02、修改kafka数据存储路径vim config/server.properties# 注释原本的存储路径,修改为新的数据路径#log.dir=/tmp/kafka-logslog.dirs=/usr/local/kafka/

2021-10-11 14:33:51 384

原创 SpringBoot 里MybatisPlus使用

mybatis plus 是mybatis 的增强版,可以简化非常多增删改查的操作,并且让代码更易于维护。而且mybatis plus 里可以直接在mybatis 的基础上使用。一、引入MybatisPlus这里使用的是MybatisPlus 3 和 SpringBoot 2.2.5.RELEASE 。 <!--mybatis plus--><dependency> <groupId>com.baomidou</group

2021-07-21 10:17:51 382 2

原创 服务器上远程调试Java代码

代码部署到服务器后,出现bug时的调试就变得很麻烦,只能一个一个节点的打日志,查看参数。不能像本地调试bug那么方便,尤其是有些bug只在服务器上复现时。所以就想看看有没有能远程调试代码的方法,然后找到了jrebel 这个强大的插件。真香。下面是具体步骤:安装jrebel 插件并激活,可以在idea ->File->Setting->Plugins->Marketplace里搜索jrebel,然后安装。至于激活,点击这里查看jrebel 激活方法修改Spring

2020-12-02 16:58:51 569

原创 mybatis plus 升级到3.0后报错解决

因为mybatis plus 3.0版本会更好用,支持更多筛选条件。所以花了些时间把项目的mybatis plus 升级了。(差异真的很大,很多,不要随便升级,过来人的泪水)升级完成之后发现还是启动不了,报错如下:根据提示定位到问题,是mybatis-plus 的sql-injector 配置 找到对应代码位置,报错如下这个提示就比较明显,意思是要用bean 注入的方式来配置这个sql-injector于是就在项目的mybatis plus 配置下加入sql-inject.

2020-11-20 10:21:34 4761 4

原创 SpringBoot解决跨域问题

SpringBoot解决跨域问题

2020-07-09 17:42:44 5025 2

原创 JConsole-远程监听Liunx 环境下Tomcat进程使用内存

远程监听Liunx 下Tomcat 的java内存分析,可视化控制台展示。

2020-05-06 21:09:13 166

原创 sentry日志系统 和sping boot 集成使用

Sentry是一家开源公司,提供了一个应用程序监视平台,可以帮助实时识别问题。集成jar 包,pom.xml<dependency> <groupId>io.sentry</groupId> <artifactId>sentry-spring</artifactId> <version...

2020-04-30 14:42:14 964

原创 liunx 安装Thinkphp环境(nginx,php,php-fpm)

一、前言thinkPHP是一款简单好用的框架,想要将其部署到liunx环境运行,需要安装php,nginx,php-fpm。其中:php是php语言的基础,可以通过yum install php 安装,但是会缺失mysqli的核心包,所以建议通过编译方式安装。php-fpm是一个FastCGI管理器,提供了一个和外部通信的接口,有点类似于socket,使得PHP可以和其他应用进行交互数据(...

2020-04-22 20:13:49 1076

原创 php windows环境安装(图文版)

一、简介PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。为了开始使用 PHP,可以:找一个支持 PHP 和 MySQL 的 Web 主机在自己的 PC 机上安装 Web 服务器,然后安装 PHP 和 MySQL二、安装1、安装包百度网盘文件下载地址,也可以官网下载安装,下面安装步骤里有链接,不过因为下载时...

2020-04-16 15:30:56 25946 31

原创 dubbo+zookeeper 与 springboot 整合

一、dubbo介绍Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。Dubbo就是资源调度和治理中...

2020-04-14 17:19:04 183

原创 dubbo-admin 部署启动

dubbo-admin 部署启动一、Dubbo管理控制台介绍dubbo服务的可视化控制台,目前具备了服务查询,服务治理(包括Dubbo2.7中新增的治理规则)以及服务测试三部分内容。前端使用vue编写,后端使用spring-boot官方文档: http://dubbo.apache.org/zh-cn/docs/admin/introduction.html二、安装/启动下载:...

2020-04-14 16:26:08 520

原创 一键自动生成增删改查(SpringBoot后端+Vue前端)

一.介绍web-flash是一个基于Spring Boot和Vue.js的web系统,包含了基于element搭建的后台管理系统和基于vux搭建的手机端h5站点web-flash具备后台管理类系统的通用的基础功能,而且提供了基于idea intellij的的代码生成插件,可以一键生成前后端页面。web-flash提供了一个后台管理系统和前端h5站点系统另提供Material Desig...

2020-04-14 11:03:19 2669 1

原创 sentry 配置语言为简体中文

对于英语不好的我来说,纯英文界面真是难受,好在sentry有配置语言的地方,1.用户->User settings2.Language 选择3.选择Simplified Chinese,也就是简体中文4.刷新页面,成功进入中文界面...

2020-04-14 10:39:16 6850 2

原创 sentry 与flask 框架集成

在sentry新建一个环境为flask的项目 2. 按照指引接入3.到这里就能收到基本的异常信息报错了,但是还想要主动发送报错信息怎么办呢?# 引入已经初始化的sentry_sdkfrom dare_to_dream import sentry_sdk# sentry_sdk.capture_message(msg,level)# level 可以为erro...

2020-04-14 10:36:30 414

原创 Centos7 RabbitMQ安装

一、RabbitMQ介绍RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP,STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了Broker架构,核心思想是生产者不会将消息直接发送给队列,消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)、数据...

2020-03-17 18:34:32 111

原创 kafka启动警告解决方案,OpenJDK 64-Bit Server VM warning

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N...

2020-01-29 23:00:32 4382

原创 使用redis list类型解决卡券类奖品发放问题

问题描述:卡券类奖品是指预先导入对应的卡券数据,然后将卡券一条条分配出去。在并发高的时候,很容易出现多个人拿取同一张卡券的问题。比如说A用户拿道了卡券A,此时还没提交,B用户去数据库里拿取未发放的卡券,也拿到了卡券A。此时一张卡券发给了两个人,这种情况从业务上来讲,肯定是不能接受的。解决方案:一、用数据库锁(不推荐)方法:使用mysql数据库的写锁。优点:保证前一个...

2020-01-03 21:14:42 594

原创 flask,tornado,fastapi 压测比较(web框架)

flask,tornado,fastapi三个都是web框架,前两者都十分流行,后者是一个新框架。做压测的原因是因为听说fastapi 性能极高,想看看跟其他框架差别多大。flask是一个轻应用框架,简单好用易扩展。tornado 是一个非阻塞的异步框架,性能高,并发高。fastapi是一个入门简单,性能高的框架,据说可比node 和go,仅支持 python3.6及以上...

2020-01-03 20:23:47 16120 6

原创 fabric 自动部署falsk 应用

1.介绍Fabric 是一个高级 Python (2.7,3.4 +)库,旨在通过 SSH 远程执行 shell 命令,从而产生有用的 Python 对象。 它构建在 Invoke (子流程命令执行和命令行特性)和 Paramiko (SSH 协议实现)之上,扩展它们的 api 以相互补充并提供额外的功能。Fabric 最基本的用途是通过 SSH 在远程系统上执行 shell 命令,然后(...

2019-12-30 19:50:03 120

原创 docker 安装mysql8并挂载数据(简单)

1.下载镜像# docker从仓库中拉取最新版的mysql镜像,默认获取最新的版本docker pull mysql2.创建挂载目录mkdir -p /home/docker/mysql/conf && mkdir -p /home/docker/mysql/datadir3.新建my.cnf,保存cd /home/docker/mysql/conf...

2019-12-18 22:44:00 2528

空空如也

空空如也

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

TA关注的人

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