自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lvjingang的博客

一个有理想有目标的一直努力学习的有为青年

  • 博客(80)
  • 资源 (15)
  • 收藏
  • 关注

原创 elasticsearch系列十:自研数据导出完胜官方

今天咱们来看下es的数据导出,最近接到项目经理很多导出需求,要求导出部分数据或者整月的数据,索性就自研了一套导出工具。自研采用纯java语言,通过无锁的内存队列实现生产消费模型,支持多种类型导出(json文件、CSV文件、MYSQL数据库、ES)。其实官方有现成的导出工具elasticsearch-dump,功能很强大,支持文件、es等多种类型。但是他的性能如何呢?接下来咱们一起看下。

2023-12-28 15:55:51 578

原创 国产化适配之东方通

java服务国产化改造

2024-05-22 15:18:27 516

原创 Chrome DevTools 攻略:全方位提升前端开发效率与体验

Chrome DevTools是前端开发者不可多得的宝藏工具,熟练掌握其各项功能不仅能显著提高开发效率,还能帮助我们深入理解网页背后的运行机制,不断提升网站的质量与用户体验。本文仅触及了其冰山一角,鼓励大家在实践中不断探索,挖掘更多高效实用的技巧,让DevTools成为你最得力的助手。

2024-05-17 14:19:29 826

原创 数据库脱敏:Mybatis-plus改造二

上次我们重写了QueryWrapper,解决了无法得到QueryWrapper中字段名称的问题,但是问题并没有这么简单,咱们再次接下来的兼容性改造。

2024-05-17 13:42:56 403

原创 Nginx详解:高性能Web服务器与反向代理的奥秘

Nginx由俄罗斯程序员Igor Sysoev为解决C10K问题(即单台服务器同时处理一万个并发连接的问题)而开发。它以事件驱动、异步非阻塞的IO模型为核心,能够高效地处理大量并发连接,相比传统的Apache服务器,Nginx在资源消耗和性能上都有显著优势。Nginx以其高效、稳定、灵活的特点,在Web服务器领域占据了重要地位。掌握Nginx的配置与优化,不仅能够提升应用的性能和稳定性,也为构建复杂Web架构提供了坚实的基础。

2024-05-13 09:49:11 1053

原创 Debian常用命令:高效管理与运维的必备指南

掌握Debian的常用命令,是每位Linux用户进阶为高效运维人员的必经之路。这些命令不仅能够帮助你快速诊断和解决系统问题,还能在日常维护中提升工作效率。随着实践的深入,你将发现更多强大的命令和技巧,不断丰富你的运维工具箱。记住,持续学习和实践是精通Linux的关键,愿你在Debian的旅程中不断探索,收获满满。

2024-05-13 09:44:49 521

原创 Foxmail使用经验总结:高效邮件管理的艺术

调整视图:Foxmail提供了多种邮件查看模式,如列表视图、缩略图视图等,用户可根据喜好选择。快捷工具栏:自定义工具栏,将常用功能如发送、删除、标记为重要等放置于显眼位置,便于快速操作。Foxmail以其成熟稳定的功能和高度的可定制性,成为了许多专业人士邮件管理的首选工具。通过上述技巧和经验的应用,你不仅能有效提升邮件处理效率,还能确保信息的安全与备份,最终在繁忙的工作中游刃有余。随着不断的学习和实践,你会发现更多适合自己的个性化设置和使用技巧,进一步挖掘Foxmail的强大潜能。

2024-05-11 09:39:40 306

原创 文心一言指令:解锁自然语言处理新时代的技术探索

总而言之,“文心一言指令”不仅仅是技术层面的革新,更是对智能交互方式的重新定义。它预示着一个更加便捷、个性化、高效的人机共生时代的到来。面对无限可能的未来,持续的技术探索与伦理考量将共同塑造这一领域的健康生态,推动人工智能向更加人性化、智慧化的方向迈进。

2024-05-11 09:31:03 454

原创 TypeScript学习笔记:强类型JavaScript的优雅之旅

TypeScript为JavaScript开发者提供了一条进阶之路,它不仅保留了JavaScript的灵活性,还通过静态类型系统大幅提升了开发效率和代码质量。随着越来越多的项目和框架采用TypeScript,掌握这门语言已经成为现代前端开发者的必备技能。通过本文的介绍,希望你已经对TypeScript有了初步的认识,并准备好开启自己的TypeScript之旅,探索更多高级特性和最佳实践。在实际开发中不断实践,你会发现TypeScript带来的不仅仅是类型安全,还有代码的优雅与自信。

2024-05-10 09:07:37 360

原创 SSH简介:安全远程访问的基石

SSH不仅是网络安全领域的基石,也是现代IT运维不可或缺的工具。随着技术的发展,SSH也在不断进化,如SSHv2相比SSHv1在安全性上有显著提升。掌握SSH的使用,不仅能提升工作效率,更是保护数据安全的第一道防线。在日益复杂的网络环境下,深入了解和正确应用SSH,对于每位IT从业者来说都是必备技能。随着云计算、物联网等新技术的兴起,SSH在保障这些新技术安全方面的角色将更加重要。

2024-05-10 09:01:35 395

原创 kafka系列三:生产与消费实践之旅

在Kafka 0.10.0.2版本中,生产者和消费者的增强功能不仅提高了消息处理的可靠性和效率,也为开发者提供了更多灵活性和控制权。通过深入理解生产消费机制,结合合理的配置和最佳实践,可以构建出高效稳定的数据传输管道。尽管随着时间推移,Kafka有了更先进的版本,但0.10.0.2版本仍被广泛应用于遗留系统和特定场景中,其核心概念和机制的学习对于理解和掌握Kafka的演进路径具有重要意义。

2024-05-09 10:13:07 933

原创 探索Java 18:未来技术趋势与革新之路

Java 18不仅是对现有技术的巩固与提升,更是对未来技术趋势的积极回应。它展示了Java语言在持续演进中,如何平衡传统优势与新兴需求,不断为开发者提供更强大、更灵活的工具箱。随着云计算、大数据、AI等领域的快速发展,Java 18及其后续版本的创新特性,无疑将推动Java在下一个十年继续引领软件开发的潮流,开启技术革新与应用创新的新篇章。

2024-05-09 10:02:47 586

原创 CentOS常见命令深度解析:从基础到进阶

CentOS作为Linux世界中广受欢迎的企业级操作系统,以其稳定性、高效性和开源免费的特性,赢得了大量服务器和开发者的青睐。掌握CentOS的常用命令,是每一位Linux系统管理员或开发者的必修课。本文将全面梳理CentOS系统中常用命令,从基本的系统管理到高级操作,助大家在Linux世界中游刃有余。

2024-05-08 08:33:47 743

原创 Edge浏览器的使用心得与深度探索

随着微软持续投入开发,Edge浏览器正逐渐成为一个功能全面、高效且安全的上网工具。无论是对于普通用户还是开发者,Edge都在不断地带来惊喜。期待它在未来能推出更多创新功能,进一步提升用户体验。

2024-05-08 08:29:31 393

原创 实用的Chrome浏览器命令:解锁高效浏览与调试的秘密

掌握这些Chrome浏览器命令和快捷键,不仅能提升您的浏览体验,还能在开发和调试过程中事半功倍。随着Chrome浏览器的不断更新,新的命令和功能也在不断涌现,建议定期关注官方文档或开发者社区,以便获取最新的信息和技巧。希望本文的分享能成为您探索Chrome强大功能的一把钥匙,让您的工作更加高效流畅。

2024-05-07 09:28:38 260

原创 kafka系列一:初识kafka

kafka是由scala语言编写的一个分布式且具备高可用、高性能、可持久化、可水平扩展、支持流数据处理等众多特性的消息系统,常活跃于大数据生态中,而且大名鼎鼎的rocketmq就是参考了kafka的设计原理。目前越来越多的开源分布式中间件都支持与kafka集成(elk、spark、storm、canal......)。接下来咱们就深入看下为何它如此受青睐。

2024-05-07 09:25:18 1251

原创 npm详解:掌握 Node.js 包管理的艺术

NPM 伴随着 Node.js 的诞生而出现,它不仅仅是一个简单的包安装器,而是构建了一个庞大的生态系统,促进了模块化的开发方式。通过 NPM,开发者可以轻松地发现、安装、更新和卸载成千上万的开源软件包,极大地提高了开发效率和代码的重用性。NPM 不仅仅是一个包管理器,它是 Node.js 生态系统的核心组件,深刻影响着现代软件开发的实践。通过深入理解 NPM 的原理与高级用法,开发者可以更加高效、安全地管理项目依赖,提升开发效率和团队协作能力。

2024-05-06 14:19:11 776 2

原创 探索Stylus:构建高效且优雅的CSS的秘籍

Stylus凭借其高度的灵活性、强大的功能集以及与现代Web开发流程的完美融合,成为提升前端项目开发效率和代码质量的理想选择。随着Web技术的不断演进,掌握Stylus不仅是技术栈的丰富,更是对前端工艺美学的一种追求。无论是初级开发者还是资深工程师,深入理解并熟练运用Stylus,都将是一次提升自我、优化项目的宝贵经历。

2024-05-06 14:14:34 471

原创 Yarn:下一代JavaScript包管理器的安装与实战指南

Yarn不仅仅是一个替代npm的工具,它通过一系列创新特性重新定义了JavaScript包管理的标准。无论是对于小型项目还是大型企业级应用,Yarn都能显著提升开发效率和项目管理的可靠性。通过本文的介绍,希望你已经掌握了Yarn的安装、基础操作以及一些高级特性,从而在日常开发中充分利用Yarn的强大功能,推动项目向前发展。

2024-05-06 13:45:39 527 1

原创 elasticsearch系列三:常用查询语法

前几篇我们介绍了如何在es中存储数据,如何更加合理的存储数据,今天我们来说下常用的查询语法,如何实现mysql中的等于、大于、小于、and 、or、in等方式。基本常用的查询语法都说了下,在给大家分享一个经验,通过java操作es的时候如果不熟悉api,可以基于kibana自动提示功能基本可以实现基本语法,然后根据kibana中的语法摸索出来java中API,好了咱们今天先到这,下期咱们看下如何更好的运维es集群。

2024-05-06 13:29:59 286

原创 Mybatis拦截器如何获取QueryWrapper中的参数和值

解决mybatis-plus无法获取原始字段名称

2024-05-06 11:12:19 681

原创 MYSQL 深入探索系列六 SQL执行计划

好久不见了,近期一直在忙项目的事,才有时间写博客,近期频繁出现sql问题,今天正好不忙咱们看看千万级别的表到底该如何优化sql。mysql的执行计划有时候不一定是最优的,我们还需要利用explain多多了解执行计划,根据执行情况分析出sql的执行慢的原因。关注执行计划的时候不能只看某个值,应该多个字段联合起来分析sql,好了这期就先简单到这了。MYSQL系列经典文章MYSQl深入探索系列一 redo logMYSQl深入探索系列二 undo logMYSQl深入探索系列三 MVCC机制。

2023-12-29 12:09:02 1027

原创 MYSQL分库分表常见问题

分库:是将一个数据库分成多个数据库,但是总表数不变,部署到不同机器,这样可以分担数据库的读写压力,提高系统的吞吐能力。分表:就是一个表分成多个表,但是总体的库不变,这样可以减少单个表的数据量,提高查询性能。分库+分表是指库和表都切分,数量都发生变化,这种情况说明数据量已经达到一定程度,无论进行哪种单独的切分都会产生性能瓶颈。 如下图所示原数据库DB中有张user表,将表切成4份然后平分到2个数据库上。可以解决海量数据运维管理可以在海量数据里高效查询可以解决高并发下性能瓶颈提高系统的可伸缩性和可扩展性单实例性

2023-12-29 12:03:58 502

原创 elasticsearch列一:索引模板的使用

近期一直在负责es这块,就想着和大家分享一些使用经验,我们从存储、查询、优化、备份、运维等几个方面来做分享。今天咱们先看下如何更加合理的存储数据。要想深入了解一个技术还是官方文档啊,毕竟只有官方最了解自己的产品。希望接下来一段时间我们一起跟着官方文档深入学习es。

2023-12-28 16:14:43 754

原创 elasticsearch系列二:引入索引模板后发现数据达到一定量还是慢怎么办?

他的关系就好比mysql的主从一样,我向来提倡不要试图通过增加mysql的从节点来提高检索效率(会带来各种问题,首先同步延时就是大问题,即便是半同步模式遇到高并发更新的时候也会有一定的同步延时),通过引入缓存,合理使用索引,分库分表等来解决这个问题,从节点只用来保证高可用。上篇我们说到通过引入索引模板可以有效的应对各种新增需求,降低存储成本,提升检索效率,但是呀随着时间的推移,集群承载的数据量越来越大,导致检索越来越慢,今天我们就一起看下这种情况下如何处理。经过上述一些优化后我们的性能大有提升啊。

2023-12-28 16:12:41 419

原创 elasticsearch系列三:常用查询语法

前几篇我们介绍了如何在es中存储数据,如何更加合理的存储数据,今天我们来说下常用的查询语法,如何实现mysql中的等于、大于、小于、and 、or、in等方式。基本常用的查询语法都说了下,在给大家分享一个经验,通过java操作es的时候如果不熟悉api,可以基于kibana自动提示功能基本可以实现基本语法,然后根据kibana中的语法摸索出来java中API,好了咱们今天先到这,下期咱们看下如何更好的运维es集群。Elasticsearch系列经典文章elasticsearch列一:索引模板的使用。

2023-12-28 16:10:15 1091

原创 elasticsearch系列四:集群常规运维

在使用es中如果遇到了集群不可写入或者部分索引状态unassigned,明明写入了很多数据但是查不到等等系列问题该怎么办呢?咱们今天一起看下常用运维命令。我们想要更好的使用es不能只注意查询语法的书写,需要全访问的深入的了解es,建议从头到尾过一遍官方文档,毕竟只有目前最了解孩子。Elasticsearch系列经典文章elasticsearch列一:索引模板的使用elasticsearch系列二:引入索引模板后发现数据达到一定量还是慢怎么办?elasticsearch系列三:常用查询语法。

2023-12-28 16:09:10 1271

原创 elasticsearch系列五:集群的备份与恢复

前几篇咱们讲了es的语法、存储的优化、常规运维等等,今天咱们看下如何备份数据和恢复数据。在传统的关系型数据库中我们有多种备份方式,常见有热备、冷备、全量+定时增量备份、通过开发程序备份等等,其实在es中是一样的。官方建议采用snapshot方式进行备份与恢复(它是有点冷备的意思,采用直接物理copy的方式,适合大数据量情况下),民间开源的有elasticsearch-dump方式进行备份但是这种方式只适用于小数据量的情况下,它是基于scroll语法进行的备份操作。

2023-12-28 16:06:18 2279 1

原创 elasticsearch系列六:索引重建

我们再起初创建索引的时候由于数据量、业务增长量都并不大,常常不需要搞那么多分片或者说某些字段的类型随着业务的变化,已经不太满足未来需求了,再或者由于集群上面索引分布不均匀导致节点直接容量差异较大等等这些情况,此时我们就需要重建索引。

2023-12-28 16:03:41 1048

原创 elasticsearch系列七:聚合查询

今天咱们来看下es中的聚合查询,在es中聚合查询分为三大类bucket、metrics、pipeline,每一大类下又有十几种小类,咱们各举例集中,有兴许的同学可以参考官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations.html 本次基于es7.10.2版本编写。

2023-12-28 16:02:43 1316

原创 elasticsearch系列八:如何解决聚合结果不精确问题

不知道大家有没有尝试上篇中所用的一些聚合查询,或者项目开发中有没有用过,我们会发现这些聚合几乎都是近似值,有些和我们预想的结果偏差较大。这是什么原因导致的呢?咱们开始揭秘。

2023-12-28 15:57:40 604

原创 elasticsearch系列九:异地容灾-CCR跨集群复制

起初只在部分业务中采用es存储数据,在主中心搭建了个集群,随着es在我们系统中的地位越来越重要,数据也越来越多,针对它的安全性问题也越发重要,那如何对es做异地容灾呢?今天咱们就一起看下官方提供的解决方案cross-cluster replication(简称ccr)。

2023-12-28 15:54:45 2085

原创 dubbo源码分析三:如何无缝对接spring

概述之前我们分析过dubbo执行rpc调用的时候如何同步和异步之间来回转换的,我们实际使用中发现dubbo直接在service接口上增加@DubboReference注解或者在xml配置文件中配置reference就可以直接在spring中引用到,就可以执行到InvokerInvocationHandler进而执行rpc。使用起来非常的方便,那这又是怎么做到的呢?咱们今天就一起来看下。猜想咱们先猜想一下,在通过debug逐步分析我们的猜想是否正确。我们在spring管理的类中可以

2022-01-25 10:48:21 2207 2

原创 dubbo源码分析二:SPI扩展

概述哈喽,咱们如约而至,今天咱一起看下dubbo的SPI扩展部分,说起这个不禁感慨当初开发dubbo的人,脑子怎么长得做出来这么优秀的产品。我们可以基于SPI做过滤器、负载均衡器、日志打印、协议扩展等等操作,非常的方便,而且相对于jdk原生SPI做了不少优化。咱们先实战一波,看下具体是如何使用的,然后再分析下源码。应用实战dubbo支持的SPI扩展有:协议扩展、调用拦截扩展、引用监听扩展、暴露监听扩展、集群扩展、路由扩展、负载均衡扩展、合并结果扩展、注册中心扩展、监控中心扩展、扩

2022-01-25 10:40:47 766

原创 dubbo源码分析一:rpc异步转同步

概述好久不见,大家最近可好,近期赶了一个月的项目终于完事了,可以闲下来学点东西了,今天咱们看下dubbo的异步转同步。之所以说这个是因为近期项目中遇到一个需求也需要异步转同步,于是借鉴了dubbo的实现,咱们今天一看下dubbo具体是怎么做的。源码分析dubbo远程rpc协议和网络框架有多种,我们以默认的dubbo协议、网络框架netty作为切入点,做分析,包结构如下图:DubboInvoker这个类很重要,因为客户端没有具体的实现都是通过代理实现的调用逻辑,而这个类就是

2022-01-25 10:30:26 3266

原创 面试突击系列之:高频面试题解说四

概述上次说都是redis的,今天咱们看看mysql的高频面试点,5年前可能懂点索引、常规sql优化就完事了,随着互联网对我们的影响,用户越来越多,使得公司对开发人员的技术要求也越来越高。对mysql要求也到了更深一步的层次了,来看下我们今天准备的面试题: 有条sql没有走索引导致性能很慢如何定位问题 说下mysql中b+tree索引 mysql默认隔离级别是什么,如何支持它的? 说下mysql几种常见log mysql主从模式下如何解决同步延时问

2021-09-22 16:42:47 122

原创 面试突击系列之:高频面试题解说三

概述今天我们准备说的全部是redis相关的,在缓存界redis基本保持霸主地位,而且随着互联网发展用户量越来越大,传统的关系型数据库已经无法满足现如今高并发的业务场景,redis成为各家解决高并发必备pass组件。导致redis也成了面试中的热门问题,基本10场面试9场都会问redis,所以redis是我们绕过不去的东西,今天我们准备了5个高频问题,咱们一起看下。1 说下redis淘汰策略有哪些首先我们看下为什么会有这个问题?咱们都知道redis数据是保存在内存中的,而内存容

2021-09-22 16:14:08 102

原创 Netty实现静态服务器之坑

概述最近在重构一个H5的项目,需要把关系型数据库干掉以及集成静态页面,尽可能减少部署成本。原本这个项目是独立的spring boot工程前端后分离的,页面是通过nginx跑起来的。重构后需要和MG(netty实现)服务端进行整合,在经过一系列尝试以后终于将后端能力重构到netty上,并且将复杂的逻辑关系用磁盘存储方式成功避免事物问题,从而去掉了关系型数据库。页面初加载本以为万事大吉,数据库都去掉了,就一个简单的页面而已,然噩梦刚开始。MG的架构采用 netty+netty-r

2021-09-22 16:09:30 542 1

原创 面试突击系列之:高频面试题解说二

概述今天看下20k+必问jvm相关面试问题,还是准备了4个面试题,咱们一起看下。 讲下jvm老年代垃圾回收过程 讲下jvm32G和31G区别? 讲下jvm的happens-before规则 生产环境cpu100%如何排查 jvm是java程序员必须打交道的一个东西,毕竟我们写的所有java代码都是在jvm基础上运行的,可能初期不太关注这个,整天CRUD但是随着时间推移我们在团队中负责的工作也越来越重,对java了解的也更加深入,逐渐开始关注代码运行效率,

2021-06-27 20:48:23 182 1

原创 面试突击系列之:常规面试题解说一

概述近期朋友出去面试,总结了几个常见高频问题,咱们来一起看下这些问题,咱们从以下三点来分析 面试官的心里是怎样的 如何在不会的情况下绕过主题回答 从源码角度分析回答 1 有用过@ Cacheable吗,说下底层的原理。 面试管心里 :个人猜想,主要是想考察面试人员spring的缓存框架原理和常规的集中对外缓存。 如果没用过这个问题如何回答:大概分为两种情况,一种了解点@Cacheable实际没用过,一种压根就听说过,见名知意,这是个缓存相关...

2021-06-27 20:45:51 88

日志按照指定数量生成

指定生成指定数量的日志,可以保留最近N天的日志信息,采用log4j完美解决

2018-01-11

springboot之集成mybatis mongo shiro druid redis jsp

这个deamo集成了springboot之集成mybatis mongo shiro druid redis jsp

2017-12-20

mongodb之CRUD小demo

mongo整合spring之后,的项目,spring为我们提供了还多方法,实质操作简单

2017-10-22

shiro-auth

shiro中的核心表结构设计,真正的核心,表结构全是我开发中的整整的表结构

2017-09-28

spring-shiro-xml

shiro中的与spring结合的核心代码,可以使用缓存进行存储用户信息

2017-09-28

remle的核心方法

shiro中的自定义的realm的核心代码。以及权限的具体授权过程

2017-09-28

权限表的表结构

这是权限表的表结构,只需要一张表就可以控制到按钮级别

2017-09-28

rocketmq3.2.6.tar.gz

这个是编译好的,直接解压就可以用了,如果想编译安装,步骤有点麻烦,需要安装maven

2017-09-28

ThreadLocal

利用过滤器去获取request和response,进行将其设置到ThreadLocal从而保证我的请求的安装线,这样就能在java普通类中获取request和response

2017-09-08

filter工具类

利用过滤器去获取request和response,进行将其设置到ThreadLocal从而保证我的请求的安装线,这样就能在java普通类中获取request和response

2017-09-08

mysql编译安装

linux环境下的mysql编译安装的过程,只要按照我的方法进行,就不会出错,前提示你的linux可以安装yum源,否则无法编译安装

2017-09-03

redis-3.2.1.gem

rub的环境

2017-08-28

Spring动态切换datasource实现mysql多住多从

利用aop进行动态的数据源切换

2017-08-23

jedisCluster链接池

适用于redis集群,3.0版本以上支持集群

2017-08-22

redis哨兵链接池java实现

采用的哨兵集群监控一主两从

2017-08-22

空空如也

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

TA关注的人

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