自定义博客皮肤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的博客

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

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

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

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

2023-12-28 15:55:51 597

原创 源码解析:dubbo中的时间轮

在很多开源框架中,都需要定时任务的管理功能,例如 ZooKeeper、Netty、Quartz、Kafka 以及 Linux 操作系统。JDK 提供的 java.util.Timer 和 DelayedQueue 等工具类,可以帮助我们实现简单的定时任务管理,其底层实现使用的是这种数据结构,存取操作的复杂度都是 O(nlog(n)),无法支持大量的定时任务。在定时任务量比较大、性能要求比较高的场景中,为了将定时任务的存取操作以及取消操作的时间复杂度降为 O(1),一般会使用的方式。。

2024-06-26 15:31:24 478

原创 源码分析Dubbo SPI

我们深入全面地讲解了 Dubbo SPI 的核心实现:首先介绍了 @SPI 注解的底层实现,这是 Dubbo SPI 最核心的基础;然后介绍了 @Adaptive 注解与动态生成适配器类的核心原理和实现;最后分析了 Dubbo SPI 中的自动包装和自动装配特性,以及 @Activate 注解的原理。

2024-06-26 14:30:48 300

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

异地容灾-CCR跨集群复制

2024-06-19 15:16:20 50

原创 数据复制:如何保证数据在分布式场景下的高可用?

我们深入介绍了复制技术在分布式数据库中的作用;探讨了单主和多主两种复制技术;而后通过 MySQL 复制技术的发展路径来介绍了复制技术的应用案例。如我在上面所描述的,复制往往需要与一致性放在一起讨论。本讲聚焦于复制,下一讲我们将详细探讨一致性问题,包括 CAP 理论与一致性模型,并带你研究它与复制的结合。

2024-06-19 13:46:25 602

原创 数据分片:如何存储超大规模的数据?

这一讲到这里就告一段落了。先是详细介绍了分片的原理,以及多种常用的分片技术;而后分析了手动分片与自动分片的区别,要知道数据分片的未来是属于自动分片的。最后,我通过两个著名的开源项目介绍了分片技术是如何应用到分布式数据库中的。其中 TiDB 所展示的 HATP 融合两个分片模式的技术路线,可以被看作是未来分片模式发展的趋势。

2024-06-19 13:45:45 829

原创 你一定不能错过的Kafka控制器

集群中任意一台Broker都能充当控制器的角色,但是,在运行过程中,只能有一个Broker成为控制器,行使其管理和协调的职责。换句话说,每个正常运转的Kafka集群,在任意时刻都有且只有一个控制器。官网上有个名为activeController的JMX指标,可以帮助我们实时监控控制器的存活状态。这个JMX指标非常关键,你在实际运维操作过程中,一定要实时查看这个指标的值。下面,我们就来详细说说控制器的原理和内部运行机制。在开始之前,我先简单介绍一下Apache ZooKeeper框架。要知道,

2024-06-18 09:19:53 1090

原创 Kafka副本机制详解

在讨论具体的副本机制之前,我们先花一点时间明确一下副本的含义。我们之前谈到过,Kafka是有主题概念的,而每个主题又进一步划分成若干个分区。副本的概念实际上是在分区层级下定义的,每个分区配置有若干个副本。所谓副本(Replica),本质就是一个只能追加写消息的提交日志。根据Kafka副本机制的定义,同一个分区下的所有副本保存有相同的消息序列,这些副本分散保存在不同的Broker上,从而能够对抗部分Broker宕机带来的数据不可用。

2024-06-18 09:18:52 1053

原创 如何正确停止线程?为什么 volatile 标记位的停止方法是错误的?

通常情况下,我们不会手动停止一个线程,而是允许线程运行到结束,然后让它自然停止。但是依然会有许多特殊的情况需要我们提前停止线程,比如:用户突然关闭程序,或程序运行出错重启等。在这种情况下,即将停止的线程在很多业务场景下仍然很有价值。尤其是我们想写一个健壮性很好,能够安全应对各种场景的程序时,正确停止线程就显得格外重要。但是Java 并没有提供简单易用,能够直接安全停止线程的能力。

2024-06-14 09:37:21 314

原创 为何说只有 1 种实现线程的方法?

在本课时我们主要学习为什么说本质上只有一种实现线程的方式?实现 Runnable 接口究竟比继承 Thread 类实现线程好在哪里?实现线程是并发编程中基础中的基础,因为我们必须要先实现多线程,才可以继续后续的一系列操作。所以本课时就先从并发编程的基础如何实现线程开始讲起,希望你能够夯实基础,虽然实现线程看似简单、基础,但实际上却暗藏玄机。首先,我们来看下为什么说本质上实现线程只有一种方式?实现线程的方式到底有几种?大部分人会说有 2 种、3 种或是 4 种,很少有人会说有 1 种。

2024-06-14 09:36:12 337

原创 RocketMQ 核心概念扫盲篇

在正式进入 RocketMQ 的学习之前,我觉得有必要梳理一下 RocketMQ 核心概念,为大家学习 RocketMQ 打下牢固的基础。

2024-06-13 18:32:33 823

原创 RocketMQ Nameserver 背后的设计理念

Nameserver 在 RocketMQ 整体架构中所处的位置就相当于 ZooKeeper、Dubbo 服务化架构体系中的位置,即充当“注册中心”,在 RocketMQ 中路由信息主要是指主题(Topic)的队列信息,即一个 Topic 的队列分布在哪些 Broker 中。

2024-06-13 18:23:58 773

原创 Java Web项目依赖漏洞修复实战指南

依赖漏洞管理是Java Web开发中的重要环节,它要求开发者具备一定的安全意识,采取主动防御措施。通过综合运用工具、策略和最佳实践,可以显著降低应用受到攻击的风险。记住,安全不是一劳永逸的,而是一个持续的过程,需要团队成员共同努力,不断学习和适应新的安全挑战。

2024-05-30 13:42:02 724

原创 ECMAScript 详解:深入探索JavaScript的核心规范

ECMAScript,通常简称为ES,是由ECMA国际(European Computer Manufacturers Association)制定的一项标准,用于定义一种面向对象的脚本语言的语法和语义。尽管我们常将JavaScript与ECMAScript混为一谈,但实际上,JavaScript是ECMAScript的一个实现,除此之外还有其他实现如Microsoft的JScript等。ECMAScript规定了诸如变量声明、数据类型、操作符、语句、关键字、对象定义等基本语言元素。

2024-05-30 13:26:01 822

原创 服务器硬件基础知识全面解析

服务器硬件的选择和配置是一项复杂但至关重要的任务,它不仅影响着系统的性能表现,还直接关系到业务的连续性和成本效益。通过深入理解服务器硬件的基础知识,结合具体的应用场景和预算,我们可以做出更为明智的选择,构建出既能满足当前需求,又具备良好扩展性和可靠性的服务器平台。随着技术的不断演进,持续关注最新的硬件技术和趋势,对于保持服务器系统的竞争力同样不可或缺。

2024-05-29 08:59:19 657

原创 Web前端三大主流框架技术分享

Angular,由Google维护,是一个完整的前端解决方案。它诞生于2010年,最初以AngularJS的形式出现,后经过重大升级,形成了今天的Angular(通常指的是Angular 2及以上版本)。Angular采用TypeScript编写,强调的是MVC(Model-View-Controller)架构模式,通过声明式模板、依赖注入、端到端工具链以及优秀的测试能力,提供了构建动态Web应用所需的一切。

2024-05-29 08:55:31 1140 1

原创 国产化适配之东方通

java服务国产化改造

2024-05-22 15:18:27 1084

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

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

2024-05-17 14:19:29 879

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

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

2024-05-17 13:42:56 480

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

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

2024-05-13 09:49:11 1086

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

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

2024-05-13 09:44:49 567

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

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

2024-05-11 09:39:40 661

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

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

2024-05-11 09:31:03 507

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

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

2024-05-10 09:07:37 388

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

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

2024-05-10 09:01:35 440

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

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

2024-05-09 10:13:07 960

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

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

2024-05-09 10:02:47 598

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

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

2024-05-08 08:33:47 768

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

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

2024-05-08 08:29:31 416

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

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

2024-05-07 09:28:38 295

原创 kafka系列一:初识kafka

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

2024-05-07 09:25:18 1294

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

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

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

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

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

2024-05-06 14:14:34 483

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

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

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

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

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

2024-05-06 13:29:59 293

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

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

2024-05-06 11:12:19 956

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

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

2023-12-29 12:09:02 1030

原创 MYSQL分库分表常见问题

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

2023-12-29 12:03:58 509

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

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

2023-12-28 16:14:43 774

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

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

2023-12-28 16:12:41 440

日志按照指定数量生成

指定生成指定数量的日志,可以保留最近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关注的人

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