自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

个人视角下的技术领域探索

每篇文章都旨在提供深入的技术分析、代码优化技巧和实用的解决方案,帮助你在后端开发的道路上越走越远。

  • 博客(105)
  • 资源 (5)
  • 收藏
  • 关注

原创 【监控】监控平台部署 Prometheus+Grafana

在 macOS 上部署 Grafana 和 Prometheus 来监控 Java 服务是一个非常实用的操作。以下是详细的步骤,包括如何安装和配置 Prometheus、Grafana 以及在 Java 服务中集成 Prometheus 的客户端库来收集指标数据。

2024-06-27 22:36:15 397

原创 【JVM调优】ZGC常用参数解释

为了优化 Z Garbage Collector (ZGC) 在撮合系统中的内存使用,可以考虑以下几个方面的配置和调整。这些调整可以帮助改善系统性能和内存管理,提高撮合系统的整体效率。

2024-06-11 14:51:38 902

原创 【环境搭建】5.阿里云ECS服务器 安装Nginx

在阿里云的 Alibaba Cloud Linux 3.2104 LTS 64位系统上安装 Nginx,您可以按照以下步骤进行。Alibaba Cloud Linux 基于 CentOS,因此大部分步骤与 CentOS 系统类似。

2024-06-09 20:31:20 735 1

原创 【自动部署】4.阿里云ECS服务器 IDEA自动部署项目

如何在IDEA中,自动部署项目到阿里云ECS服务器?今天我们就来实现一键部署功能。在idea中,一键执行打包、上传、发布服务,查看实时日志等功能

2024-06-09 01:57:43 556

原创 【环境搭建】3.阿里云ECS服务器 安装Redis

make你可以编辑/etc/redis/redis.conf文件,根据需要进行配置。常见的配置项包括设置守护进程模式(daemonize)为 yes 以及设置日志文件路径(logfile)。

2024-06-08 22:11:46 777 1

原创 【环境搭建】2.阿里云ECS服务器 安装MySQL

安装 MySQL 后,系统会为 root 用户生成一个临时密码。系统会提示你输入刚才获取的临时密码,然后你可以按照提示设置新的 root 密码并进行其他安全设置。输入密码后,你将进入 MySQL 命令行界面。

2024-06-08 19:12:55 757

原创 【环境搭建】1.阿里云ECS服务器 安装jdk8

在阿里云服务器上安装 JDK 8 可以通过以下步骤完成。假设你使用的是 CentOS 或者其他基于 Red Hat 的发行版或Alibaba Cloud Linux 3.2104 LTS 64位。

2024-06-08 18:23:29 971

原创 Go语言中,公司gitlab私有仓库依赖拉取配置

go gitlab 私有仓库拉不下来依赖,公司没有私有go代理的看过来

2024-06-04 18:50:23 828

原创 2.Nginx上配置图片访问

Nginx上如何正确配置图片访问

2024-05-21 09:15:44 2452 1

原创 1.Nginx上配置 HTTPS

服务器如何正确配置

2024-05-21 09:02:44 434

原创 Go语言中,两个比较流行的缓存库

在 Go 中实现带有过期时间的缓存通常需要一个可以自动处理键值过期的缓存系统。虽然标准库中没有直接提供这种功能,但有几个流行的第三方库可以很好地满足这一需求。下面我会介绍两个比较流行的 Go 缓存库:go-cache 和 bigcache。

2024-04-26 10:06:41 503

原创 Go语言中,开发高并发程序必备知识储备

在 Go 语言中开发支持高并发的程序,主要依赖于其强大的并发特性,尤其是协程(goroutines)和通道(channels)。Go 设计了一套简洁的并发模型,使得开发高并发程序变得更加直观和易于管理。

2024-04-26 00:42:33 476

原创 Go语言中,常用的同步机制

保证多协程有序执行的关键是正确使用 Go 的同步机制。使用通道可以实现优雅的协程间通信和同步。使用适合管理多个协程的完成状态。使用互斥锁(Mutex)来保护共享资源,防止竞态条件。在设计并发程序时,合理地选择和使用这些工具是非常关键的。

2024-04-26 00:31:19 335

原创 Go语言中,如何做到数据按类别分发给特定的协程处理

在 Go 语言中,如果你想按类别将数据分配给特定的协程(goroutine)进行处理,可以使用几种策略。下面我将提供一些方法和示例,说明如何根据数据类别将任务分配给不同的协程来处理。

2024-04-26 00:26:21 374

原创 IDEA中springboot的热加载thymeleaf静态html页面

【代码】IDEA中springboot的热加载thymeleaf静态html页面。

2023-07-10 20:07:52 1127

原创 排查线上CPU飙高的原因和解决

系统CPU飙高问题排查解决

2022-07-22 19:02:09 1385 1

原创 Explain执行计划key_len详解

我们在使用Explain查看SQL执行计划时,其中有一列为key_kenEXPLAIN select * FROM user WHERE id = 1;key_len表示使用的索引长度,key_len可以衡量索引的好坏,key_len越小索引效果越好,那么key_len的长度是如何计算的?常见的列类型长度计算:CREATE TABLE `user` ( `id` bigint(10) NOT NULL AUTO_INCREMENT, `name` varchar(10) D...

2021-05-09 17:34:07 447

原创 spring的4种事务特性、4种隔离级别、7种传播行为

1.事务概念事务是程序中一系列严密的操作,所有操作执行必须成功完成,否则在每个操作所做的更改将会被撤销,这也是事务的原子性(要么成功,要么失败)。2.事务特性(4种)事务特性分为四个:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)简称ACID。原子性 (atomicity):强调事务的不可分割.一致...

2020-06-24 12:16:40 2640 2

原创 MySQL调优

1.存储引擎选择MyISAM:不支持事务处理,读性能处理快,表级别锁,MyISAM适用于读取繁重的应用程序。InnoDB:支持事务处理(ACID),设计目标是为处理大容量数据发挥最大化性能,行级别锁。MySQL5.5以后版本中默认为InnoDB存储引擎引擎。表锁:开销小,锁定粒度大,发生死锁概率高,相对并发也低。行锁:开销大,锁定粒度小,发生死锁概率低,相对并发也高。如果不是只读业务...

2019-04-02 09:03:46 521

原创 算法复杂度o(1), o(n), o(logn), o(nlogn)

在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义:这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。比如时间复杂度为O(n),就代表数据量增大几倍,耗时也增大几倍...

2019-02-25 13:29:47 585

原创 java中获取字节码对象的三种方式

package verify;public class ClassObject { public static void main(String[] args) { getClassObjectMethod1(); getClassObjectMethod2(); getClassObjectMethod3(); } /* * 方式一 通过对象获得 */ pr...

2019-02-18 15:54:38 1763

原创 @Autowired与@Resource (@Inject)的区别

准备数据:定义接口:/** * 定义一个接口 * @author lizehao * @company 连连支付 * @date 2019年2月18日下午2:54:03 */public interface UserService {}实现类/** * 第一个实现类 * bean的名称默认是全类名首字母小写 userServiceImpl * @auth...

2019-02-18 15:34:34 278

原创 关于try、catch、finally返回return的问题

第一种情况:public static void main(String[] args) { System.out.println(print());}@SuppressWarnings("finally")public static String print() { try { System.out.println("------try------"); return ...

2019-02-11 11:43:41 286

原创 一致性Hash算法(分布式算法)

一、分布式算法在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法。典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,...

2019-01-21 22:33:38 335

原创 Spring Cloud版本与Spring Boot版本之间匹配关系

很多人在使用springboot和springcloud,但是对于这两者之间的版本关系不是很清楚,特别是在面临升级的时候不知道该如何操作。本文简要摘录的官方文档的部分内容作为依据,供广大同行参考。问题的提出,我现在使用的是1.5.1版本的springboot 和Edgware.RELEASE版本的springcloud,我想升级到springboot到2.0.0, springcloud需要升...

2019-01-09 15:12:37 628

原创 数据库表结构及数据的复制SQL语句

表的复制复制表在数据库数据维护时使用到,以下的方式不仅可以复制表结构还可以复制表的数据CREATE TABLE 新表名 SELECT * FROM 旧表名如果只向复制表结构而不需要数据,可以使用以下语法:CREATE TABLE 新表名 LIKE 旧表名如果想从一张表中向另外一种表复制数据时可以使用以下语法:INSERT INTO 表名 SELECT * FROM 带...

2018-12-27 15:43:27 3165

原创 Java多线程系列--“基础篇”03之 Thread中start()和run()的区别

概要Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答。本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start() 和 run()相关源码(基于JDK1.7和1.8)start() 和 run()的区别说明start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法。start()不...

2018-12-23 15:31:46 258

原创 Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式

本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable。之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程。关于线程池的内容,我们以后会详细介绍;现在,先对的Thread和Runnable进行了解。Thread和Runnable简介Runnable 是一个接口,该接口中只包含了一个run()方法。它的定义如下:...

2018-12-23 15:03:39 236

原创 Java多线程系列--“基础篇”01之 基本概念

多线程是Java中不可避免的一个重要主体。从本章开始,我们将展开对多线程的学习。接下来的内容,是对“JDK中新增JUC包”之前的Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), notify()等接口;Thread类中的接口;synchronized关键字。注:JUC包是指,Java.util.concurrent包,它是由Java大师Doug Lea完成并在J...

2018-12-23 14:24:33 261

原创 Java 中 Comparable 和 Comparator 比较

先介绍Comparable 和Comparator两个接口,以及它们的差异;接着,通过示例,对它们的使用方法进行说明。Comparable 简介Comparable 是排序接口。若一个类实现了Comparable接口,就意味着“该类支持排序”。  即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列...

2018-12-22 23:09:57 272

原创 Java 随机数

本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示。广义上讲,Java中的随机数的有三种产生方式:通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。 通过Math.random()返回一个0到1之间的double值。 通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。第1种通过System....

2018-12-22 21:45:34 266

原创 JAVA-Word转PDF各种版本实现方式比较【项目实战使用】

 工作中,经常做一些导出、读取Excel文档,但是从来没有尝试Word转PDF。我们通常使用的是POI和JXL。这两个插件对Excel已经有很好的支持了。操作PDF通常使用的是ITEXT插件,该插件可以操作复杂的PDF,当然我们也可以通过freemarker来生成PDF也是可以的。但是最近的项目在打印合同的时候,只提供了word模板,然后打印PDF,期间需要读取数据,填充到Word文档中,该文...

2018-12-14 22:36:24 2725

原创 Maven引入项目依赖的jar后pom文件报错

Maven引入项目依赖的jar后pom文件报错:1.本地仓库查看所引用的jar是否存在2.存在后,清空执行 maven update后还是报错3.最后定位分析:对应的jar还有父级依赖,查看私服上没有。在发布的时候,需要将jar以及对应的父级依赖一块发布到私服上去。...

2018-11-28 16:16:29 1491

原创 使用 Lombok 优雅编码

一、介绍和使用    Lombok 是一个 java 库,能以简单的注解形式来简化 java 代码,提高开发人员的开发效率。    常见使用在开发过程中需要写的 javabean,往往开发需要花时间去添加相应的 getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的 getter/setter 方法,这些显得很冗长也没有太多技术含量,一旦修...

2018-11-05 18:44:37 288

原创 MySQL分页排序,各页中记录存在重复数据现象

现象描述:项目在做分页查询的时候,用到了排序 order by ctime,由于是测试环境,ctime时间值都是一样的。在通过mybatis分页查询的时候,发现最后一页数据和第一页数据重复。后来就拿出sql进行测试,发现偶尔是重复的。1.解决方案增加一个二级排序【比如:主键,时间戳】,总之实现绝对排序即可order ctime,id 即可。2.原理(1)mysql查询不指定...

2018-07-17 13:33:12 4752 1

原创 导入和导出eclipse代码格式化模板

在项目开发过程中,向svn中提交代码,存在大范围冲突现象,其实这些代码并没有修改过,有时候很头疼,直接覆盖怕冲掉别人的代码,慢慢检查效率又很低,很让人捉急,因此在一个小组开发的时候,统一代码格式化模板就会变得尤其重要,这里就分享导出和导入代码格式化模板的步骤。导出格式化代码模板:上面我们已经完成了格式化代码模板的导出工作,接下来看一下代码模板的导入。导入格式化代码模板:第一步:进入导入模板界面和选...

2018-07-04 18:38:34 3237

原创 使用 Spring Batch 构建企业级批处理应用-入门篇

总述本系列文章旨在通过示例搭建以及特性介绍,详细讲述如何利用 Spring Batch 开发企业批处理应用。本系列文章共分为三部分,第一部分初步介绍了批处理以及 Spring Batch 的相关概念,同时搭建了一个简单的基于 Spring Batch 的批处理应用。第二部分介绍了 Step Flow 以及并发支持。第三部分则主要介绍了 Spring Batch 对任务监控的支持。下面让我们进入第一...

2018-06-26 18:21:06 643

原创 消息队列之JMS和AMQP对比

JMS        JMS(Java MessageService)实际上是指JMS API,它定义了一些借口,提供了一套标准API。        JMS提供了两种消息模型,peer-2-peer(点对点)以及publish-subscribe(发布订阅)模型。当采用点对点模型时,消息将发送到一个队列,该队列的消息只能被一个消费者消费。而采用发布订阅模型时,消息可以被多个消费者消费。在发布订阅...

2018-05-19 21:06:35 809

原创 JVM类加载机制

JVM提供了3种类加载器:启动类加载器(Bootstrap ClassLoader):负责加载 JAVA_HOME\lib 目录中的,或通过-Xbootclasspath参数指定路径中的,且被虚拟机认可(按文件名识别,如rt.jar)的类。扩展类加载器(Extension ClassLoader):负责加载 JAVA_HOME\lib\ext 目录中的,或通过java.ext.dirs系统变量指定...

2018-05-17 16:20:35 249

原创 Java中的NIO和IO的比较

        java标准的I/O中,提供了基于流的I/O实现,即InputStream和OutputStream。这种基于流的实现以字节为单位处理数据。        NIO在java 1.4中被纳入到了JDK中,与旧式的的基于流的I/O相比,NIO是基于块的,以块为单位处理数据。NIO有两个重要的组件缓冲(Buffer)和通道(Channel)。        Buffer:缓冲是一块连续的...

2018-05-13 11:57:32 541

word转pdf所需的jar

word转pdf实战代码。工作中,经常做一些导出、读取Excel文档,但是从来没有尝试Word转PDF。我们通常使用的是POI和JXL。这两个插件对Excel已经有很好的支持了。操作PDF通常使用的是ITEXT插件,该插件可以操作复杂的PDF,当然我们也可以通过freemarker来生成PDF也是可以的。但是最近的项目在打印合同的时候,只提供了word模板,然后打印PDF,期间需要读取数据,填充到Word文档中,该文档还是修订格式,还需要接受所有修订以后,转成PDF下载。本以为很简单,通过freemarker就可以轻松实现,但是在尝试过后,还知道不是很顺利,网上也提供了不少的解决方案,个人感觉大多都不是好,有一些只支持Window系统,有一些则需要安装Office软件,在这里,给大家提供本人在这个过程中的一些新的体会,让大家遇到这类问题少走一些弯路。

2018-12-14

eclipse格式化模板

eclipse格式化格式化模板。在项目开发过程中,向svn中提交代码,存在大范围冲突现象,其实这些代码并没有修改过,有时候很头疼,直接覆盖怕冲掉别人的代码,慢慢检查效率又很低,很让人捉急,因此在一个小组开发的时候,统一代码格式化模板就会变得尤其重要,这里就分享导出和导入代码格式化模板的步骤。

2018-07-04

apache-tomcat-7.0.69.tar.gz

apache-tomcat-7.0.69.tar.gz

2017-01-07

RabbitMQ客户连接池实现示例代码

RabbitMQ客户连接池的实现代码示例

2017-01-06

RabbitMQ客户连接池的实现

RabbitMQ客户连接池的实现代码示例

2017-01-06

空空如也

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

TA关注的人

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