自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Li Nan 的博客

记录学习过程

  • 博客(38)
  • 收藏
  • 关注

原创 基于docker容器部署JVM参数分析

【代码】基于docker容器部署JVM参数分析。

2023-12-02 14:02:28 518

原创 Spring 事务回调

spring 事务回调

2022-11-13 12:50:26 618

原创 Kafka 集群增加节点(Broker)

kafka 扩容

2022-09-20 15:17:19 1835

原创 Kafka __consumer_offsets 占用磁盘空间过大处理

kafka 位移分区清理策略

2022-06-20 20:31:45 3259

原创 Java 8 中并行流 parallelStream 正确使用方法

以下方法可以保证线程安全,大数据量效率极高List<Integer> integers = new ArrayList<>();for (int i = 0; i < 1000; i++) { integers.add(i);}List<String> strings = integers.parallelStream().collect(ArrayList::new, (arrayList, i) -> { arrayList.ad

2022-05-13 17:21:40 1018

原创 在 Spring boot 项目和 Nginx 结合时获取真实 IP

设置 Nginx,把真实 IP 转发过来 # 可以获取到客户端真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_s

2022-05-08 12:43:48 1543

原创 企业级 Kafka 生产集群安装

主机规划IP 主机名称 规划用户192.168.1.111 kafka111 kafka192.168.1.112 kafka112 kafka192.168.1.113 kafka113 kafka设置主机名称hostnamectl set-hostname kafka111/etc/hosts 文件格式192.168.1.111 kafka111192.168.1.112 kafka112192.168.1.113 kafka.

2022-05-01 22:18:24 1105

原创 ZooKeeper 的监控

公司有多套 Kafka 集群,Kafka 依赖 ZooKeeper 提供分布式协调服务,研究一下关于 ZooKeeper 的监控指标查看。四字监控命令# 输入echo conf | nc localhost 2181 # 输出clientPort=2181secureClientPort=-1# zk 用于保存内存数据库的快照的目录,除非设置了dataLogDir,否则这个目录也用来保存更新数据库的事务日志。在生产环境使用的 zk 集群,强烈建议设置 dataLogDir,让 dataD.

2022-04-30 14:16:06 2109

原创 Elasticsearch 入门(一)

Elastic Search 入门添加 Maven 依赖初始化客户端配置添加 Maven 依赖<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.15.2</version></dep

2022-03-27 13:17:54 2257

原创 提高 Elasticsearch 写入速度(记一次线上 Kafka 消息积压问题处理)

问题概述线上集群告警,消费 Kafka 消息写入 Elasticsearch ,写入速度慢,产生消息积压问题。解决思路临时去掉 ES 副本,解决紧急问题,无法从根本解决提高 Kafka 消费速度提高 ES 写入速度,使用 ES bulk api,批量写入数据关于批量写入的最佳值大小问题整个批量请求都需要由接收到请求的节点加载到内存中,因此该请求越大,其他请求所能获得的内存就越少。 批量请求的大小有一个最佳值,大于这个值,性能将不再提升,甚至会下降。 但是最佳值不是一个固定的值。它完全取决

2022-03-11 23:31:33 3635

原创 Java 并发之线程池的使用(ThreadPoolExecutor)

文章目录前言一、Java 中的线程池阻塞队列拒绝策略二、使用步骤1.引入库2.读入数据三、使用场景场景一场景二总结前言"池化"是软件开发中的一种思想,比如常见的数据库连接池;在高并发场景下合理使用线程池能显著提高 CPU 运行效率,从而提升软件使用体验。一、Java 中的线程池JDK 1.5 版本起,在 java.util.concurrent 包下 Executors 类提供了创建线程池的方法通过查看源码可以看到,内部均由 ThreadPoolExecutor 类进行实现既然如此,我们就

2021-10-05 22:02:33 428

原创 使用 Filebeat 监听本地日志文件并发送到 kafka 队列

文章目录前言一、Filebeat 是什么?二、使用步骤1.安装 Filebeat2.编辑配置文件 filebeat.yml总结前言轻量型日志采集器:Filebeat 为您提供一种轻量型方法,用于转发和汇总日志与文件,让简单的事情不再繁杂。一、Filebeat 是什么?如官网描述,Filebeat 是一款轻量型日志采集工具,我们这里用于将监听本地文件并转发至 kafka 集群。优势:1、性能稳健,不错过任何检测信号在任何环境中,始终都会潜伏着应用程序中断的风险。Filebeat 能够读取

2021-10-01 17:29:05 2291

原创 Oracle 数据库相关记录

由于新公司数据库使用 Oracle,我之前一直使用的是 MySQL,特在此记录一些 Oracle 数据库相关内容。MySQL 有自增主键,Oracle 使用序列实现 MySQL 主键自增功能。【强制】序列名称以 SEQ_ 前缀开头,便于统一与维护-- 获取当前序列SELECT SEQ_ID.CURRVAL FROM DUAL-- 获取下一个序列SELECT SEQ_ID.NEXTVAL FROM DUALOracle saveOrUpdate sql 实现MERGE INTO e

2021-09-27 13:36:48 93

原创 MySQL 相关记录

查询 Mysql 数据库中某记录是否存在SELECT IFNULL(( SELECT 1 FROM table1 WHERE id = 123 LIMIT 1 ), 0)MySQL 使用 ReplicationDriver 驱动实现读写分离使用MySQL 的 ReplicationDriver 实现数据库读写分离

2021-02-02 14:53:20 122

原创 Spring Boot 整合 ActiveMQ

前言Apache ActiveMQ 是 Apache 软件基金会所研发的开放源代码消息中间件;由于 ActiveMQ 是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ 便可执行。正文队列模式(Queue)POM 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>

2020-12-04 16:33:05 127

原创 JHipster 框架快速上手

快速开始 JHipster安装 JHipster npm install -g generator-jhipster创建一个新目录并进入该目录 mkdir jhipsteradmin && cd jhipsteradmin我只生成后端代码 jhipster --skip-client - 跳过前端应用生成,因此仅生成了 Spring Boot 后端代码 (默认值: fals...

2020-03-29 21:43:09 322

翻译 Java 8 - Optional 使用介绍

1. 概述在本教程中,我们将展示 Java 8 中引入的 Optional 类。该类的目的是提供一种用于表示可选值而非空引用的类型级别的解决方案。为了更深入地了解我们为什么要关心 Optional 类,请查看Oracle官方文章。2. 创建 Optional 对象有几种可以创建 Optional 对象的方法。创建一个空的 Optional 对象,我们通常使用它的静态方法 empty()...

2020-03-10 17:01:20 651

原创 JavaScript 合并数组

push() 方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。 <script> let arr1 = [1, 2, 3] let arr2 = [4, 5, 6] let total = arr1.push(arr2) console.log(arr1); console.log(arr2); console.log(to...

2020-01-20 21:30:16 284

原创 Spring Data Jpa 学习之 JpaSpecificationExecutor 接口实战

Jpa 复杂动态查询基本基于 JpaSpecificationExecutor 接口实现BUT 官方文档并没有给出详细的使用方式,网上资料的写法也不尽一致,总之代码很不优雅网上看了一圈发现一个实现库还不错,简单使用一下jpa-spec灵感来自于Legacy Hibernate Criteria Queries,这个功能在 JAP 出来之后被 Hibernate 废弃了。但是用起来还是...

2020-01-05 13:55:28 346

原创 Spring Data Jpa 学习之 QueryByExampleExecutor 接口实战

以实际项目需求展示方法使用Entity 实体类@Entity@Datapublic class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String company;...

2020-01-05 12:26:31 628

原创 Spring Data Jpa 学习之 QueryByExampleExecutor 接口

JpaRepository 接口通过继承 QueryByExampleExecutor 实现简单的动态查询功能创建 Entity@Entity@Datapublic class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private ...

2020-01-04 15:28:07 560

原创 Spring Data Jpa 学习之 JpaRepository 接口

IDEA Diagrams 功能的使用在 IDEA 工具中 选中 JpaRepository 接口,按下 Ctrl + Alt + Shift + U 查看类图总结JpaRepository 接口直接实现了 PagingAndSortingRepository 和 QueryByExampleExecutor 接口,又通过 PagingAndSortingRepository 接口间...

2020-01-04 13:39:37 1103

原创 创建和运行线程

创建和运行线程方法一 Thread thread = new Thread() { @Override public void run() { log.debug("running"); } }; thread.setName("t1"); thread.start(); log.de...

2020-01-03 22:51:32 130

原创 SpringBoot 使用 MapStruct 自动映射 DTO

SpringBoot 使用 MapStruct 自动映射 DTO基本介绍What?Why?How?项目和代码参考文档基本介绍What?MapStruct是一个代码生成器,它基于约定优于配置的方法大大简化了Java Bean类型之间的映射的实现。生成的映射代码使用简单的方法调用,因此速度快,类型安全且易于理解。Why?多层应用程序通常需要在不同的对象模型(例如实体和DTO)之间进行...

2019-11-27 15:28:26 1535

原创 解决 IDEA 启动项目报端口被占用的问题

最近使用 IDEA 期间不正确关闭项目,会导致端口被占用问题netstat -ano | findstr 8888 // 列出进程及其占用的端口,且包含 8888tasklist | findstr 8888 // 根据进程号寻找进程名称taskkill -PID <进程号> -F //强制关闭某个进程附:第三个命令太长,直接 kill <进程号> 即可...

2019-11-11 14:18:20 2091

原创 阿里巴巴 Java 开发手册学习记录

阿里巴巴Java开发手册【强制】 Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals 。正例:“test”.equals(object);反例:object.equals(“test”);说明:推荐使用 java.util.Objects#equals(JDK7 引入的工具类)。public class Test01 { // 不...

2019-11-04 12:43:41 145

原创 消息中间件 RabbitMQ 学习 Windows 10 安装篇

RabbitMQ 是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ 服务器是用 Erlang 语言编写的,而聚类和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。RabbitMQ 是基于 Erlang 语言编写的,所以首先安装 Erlang 环境Erlang 官网配置环境变量ERLANG_HOM...

2019-10-30 13:57:21 160

原创 Maven 镜像源配置

setting.xml 文件<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s...

2019-10-25 17:11:29 620

原创 学习日志

IDEA 的流调试器

2019-10-19 23:25:27 292

原创 Windows 常用软件

开发IntelliJ IDEAVisual Studio CodePostmanGitSourcetreeUWP印象笔记网易云音乐iTunes StoreSnipasteWindows 必备BANDIZIP 解压缩必备HoneyviewEverythingChrome 浏览器PotPlayer 本地视频播放速盘TeamViewerSumatraPDF...

2019-10-11 15:59:49 118

原创 IDEA 常用配置

IDEA 不同于 eclipse ,代码保存后不会自动编译,下面是开启方式IDEA 开启自动编译 Settings快捷键 Ctrl + alt + Shift + /

2019-07-11 14:48:34 133

原创 Maven 工程 pom 中定义 jdk 版本

在使用 eclipse 创建好 Maven 项目后,jdk 版本默认为 1.5,目前我们需要 1.8 或者更高版本,我推荐以下两种方式来指定版本方式一<project> [...] <properties> <maven.compiler.source>1.8</maven.compiler.source> &lt...

2019-07-08 00:08:44 899

原创 Java 反射机制

JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。/** * 获取 Class 实例的三种方法 * * @author linan */public class ClassDemo { public static void...

2019-06-18 11:03:18 95

原创 设计模式之--单例模式

设计模式是前辈们在多年开发工作中经验的总结,可以提高代码的可重用性、可靠性和规范性,让代码更容易理解,而单例模式是在 Java 中最重要、最简单、最常用的设计模式之一。

2019-06-17 23:59:33 97

原创 解决 WebStorm 开发 vue 热加载失效

2019-04-25 10:29:22 3207

原创 Node.js 、Vue CLI 安装;npm 、yarn 换源

淘宝 NPM 镜像# 设定淘宝镜像源npm config set registry https://registry.npm.taobao.org# 查看配置npm config get registry

2019-04-22 23:31:38 1040

原创 foreach 语法糖

//源码public class Test { public static void test1() { int[] arr = {1, 2, 3, 4, 5}; for (int i : arr) { System.out.println(i); } } public static void ma...

2019-04-22 20:29:51 446

原创 i++ 与 ++i

public class Test { public static void test1() { int i = 3; System.out.println(++i); System.out.println(i); } public static void test2() { int i = 3; ...

2019-04-22 20:12:16 127

空空如也

空空如也

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

TA关注的人

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