- 博客(62)
- 资源 (8)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java高并发理论到实践--JUC之Semaphore
由于最近的项目需求:要求限制对OpenMLDB的并发访问量。当然也看到面试题问:有三个线程T1,T2,T3,如何保证顺序执行?以及之前去华为OD面试:三个线程交替打印ABC如何实现?这些问题我都采用Java并发工具Semaphore(信号量)来实现的,所以记录一下这个知识点。
2024-07-12 10:00:00
1656
原创 Java线程池学习总结
最近在复习Java线程池,做个笔记~线程池是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后创建线程自动启动并执行任务。(1)线程和任务分离,可对所有线程进行统一的管理和控制,提升线程重用性;(2)控制线程并发数量,降低服务器压力,统一管理所有线程;(3)提升系统响应速度,假设创建线程用的时间为T1,执行任务用的时间为T2,销毁线程用的时间为T3,那使用线程池就减少T1和T3的时间;1. 网购商品秒杀2. 云盘文件上传和下载3. 12306网上购票系统等。
2024-07-20 10:00:00
662
原创 项目收获总结--大数据量存储架构设计方案
公司的业务数据规模庞大,经过多年的业务积累和业务迭代,已经达到百亿级,各个业务线错综复杂,接口调用杂乱无章,而最近的项目是做智能营销推荐系统,需要海量数据计算画像和实时计算做智能产品推荐,但是数据分布和来源非常杂乱,出现A向B要数据,B向C请求接口,C向A需求服务,各个业务线互相依赖的情况。**写数流程:**数据接入时,创建统一且全局唯一的ID, 既当Elasticsearch的DOC ID, 也当Hbase的rowkey,数据先写入 HBase,再发送Kafka 消息, 异步写入ES。
2024-07-19 11:19:45
793
原创 项目实战--SpringBoot整合RabbitMQ:实现邮件大批量异步推送
由于项目前期使用SpringBoot 整合 mail 实现各类邮件的自动推送服务,但是这个服务越来越不稳定,出现网络异常的时候,会导致邮件推送失败造成堆积,同时业务需要大批量的同步推送邮件,可靠性也不高。若 rabbitMQ 突然崩溃、邮件发送失败、重启 rabbitMQ 服务器出现消息重复消费,的怎处理。利用定数任务,对投递失败的消息进行补偿投递,基本可以保证消息 100% 消费成功。ConsumerMailService:消费者,消费消息,发送邮件。启动 SpringBoot 服务之后,模拟请求接口。
2024-07-17 10:24:53
1082
原创 Java HashMap红黑树学习
(1)红黑树(Red-Black Tree,简称R-B Tree),是一种特殊的平衡二叉查找树。(2)节点非黑即红(3)根节点是黑的(4)叶子节点也是黑的 [注意:这里叶子节点,是指为空的叶子节点!(5)如果一个节点是红色的,则它的子节点必须是黑色的。(6)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。(确保没有一条路径 会比其他路径长出俩倍。因而,红黑树是相对是接近平衡的二叉树。(7)时间复杂度:O(log n)
2024-07-14 20:30:00
363
原创 Java BigDecimal类型的使用和注意点
在金融相关的项目中,BigDecimal类被广泛用于精确的数值、金额的计算。记录如何使用以及在使用BigDecimal的过程中,存在的要注意的几个坑。
2024-07-11 13:42:35
831
原创 项目实战--XML文档解析工具
XML (eXtensible Markup Language)指可扩展标记语言,标准通用标记语言的子集,可以标记数据、定义数据类型,可以允许自定义标记语言进行数据承载,通常被用来传输和存储数据,定义也简单,遵循核心DTD(文档类型定义)语法约束。> < site > < name > CSDN博客网站 </ name > < url > https://blog.csdn.net/ </ url > < desc > 技术学习网站 </ desc > </ site >
2024-07-11 11:11:03
919
原创 项目收获总结--本地缓存方案选型及使用缓存的坑
在互联网公司面试时,说到缓存,面试官基本上会绕不开的几个话题:项目中哪些地方用到了缓存?为什么要使用缓存?怎么使用它的?引入缓存后会带来哪些问题?高性能、高并发。性能体现在引入缓存之前,以商城网站为例,频繁的从数据库里面获取商品数据,也就需要频繁执行SQL等待结果,若数据量很大同时请求频次逐渐增高,响应就逐渐缓慢;引入缓存之后,将数据库里面查询出来的商品数据信息存入缓存,需要时直接从缓存服务获取结果,效率极大提升。
2024-07-10 16:51:58
1200
原创 项目实战--Spring Boot + GraphQL实现实时数据推送
GraphQL是一种用于API的查询语言,核心思想是让客户端能够根据自身需求精确地获取所需的数据,而不是像传统的RESTful API那样只能获取整个资源对象。(1)灵活性:客户端可以精确指定所需的数据字段,而不是被限制于服务器端提供的固定数据结构。(2)效率:减少了不必要的数据传输和处理,提高了数据获取效率。(3)类型系统:GraphQL具有严格的类型系统,能够在编译阶段检测出潜在的错误,提高了开发效率。
2024-07-10 10:04:07
662
2
原创 项目实战--Spring Boot与PageHelper的集成及线程污染解决
Spring Boot与PageHelper的集成及线程污染引起无缘故分页的问题解决
2024-07-05 14:47:45
726
1
原创 项目实战--Spring Boot 3整合Flink实现大数据文件处理
性能优化策略利用Spring Boot 3.+和Flink构建一个高效的大数据文件处理应用
2024-07-04 12:26:49
872
1
原创 项目实战-MySQL极佳优化方案---前缀索引
前缀索引:当某个字段内容的前几位区分度很高的时候,这个时候采用前缀索引,可以在查询性能和空间存储方面达到一个很高的性价比。
2024-07-03 15:11:52
1029
1
原创 项目实战--Spring Boot大数据量报表Excel优化
使用Spring Boot和Apache POI,通过分页查询、异步处理、读写分离,高效地导出大规模数据到多个Excel文件
2024-07-02 14:16:05
447
1
原创 Centos7安装Minio笔记
Minio是一款开源的对象存储服务器,可以运行在多种操作系统上,包括Linux、Windows和MacOS等。提供一种简单、可扩展、高可用的对象存储解决方案,支持多种数据格式,包括对象、块和文件等。Minio是一款强大、灵活、可扩展的对象存储服务器,适用于各种应用场景,包括云存储、大数据存储和物联网等。简单易用: Minio的安装和配置非常简单,只需要下载并运行相应的二进制文件即可。它提供了一个Web UI,可以通过界面管理存储桶和对象。
2024-07-01 11:25:15
381
1
原创 数据分析ClickHouse学习笔记
ClickHouse是一个用于联机分析(OLAP)的列式DBMS。Rowidis_deltitlesexcreateAt#021a1#130b1#241c1#N即是:处于同一行中的数据总是被物理的存储在一起。Row:#0#1#2#Nid234is_del101titleabcsex111createAt即是:来自不同列的值被单独存储,来自同一列的数据被存储在一起。
2024-06-28 13:00:59
1014
1
原创 HBase与Hive数据交互
其中t_gdp是原始数据表,tmp_gdp_table是和hbase中gdp表关联的外部表,将t_gdp表中的数据insert到了tmp_gdp_table表中,正常的业务中,可能是查询了多个表,通过sql处理将数据存到tmp_gdp_table中,然后通过外部表映射的方式同步到habse的gdp表中。hive外部表,仅记录数据所在的路径, 不对数据的位置做任何改变。两种方式加载hbase中的表到hive中,一是hive创建外部表关联hbase表数据,是hive创建普通表将hbase的数据加载到本地。
2024-06-28 12:43:09
864
1
原创 项目实战--Spring Boot实现三次登录容错功能
一、功能描述项目设计要求输入三次错误密码后,要求隔段时间才能继续进行登录操作,这里简单记录一下实现思路二、设计方案有几个问题需要考虑一下:1.是只有输错密码才锁定,还是账户名和密码任何一个输错就锁定?2.输错之后也不是完全冻结,为啥隔了几分钟又可以重新输了?3.技术栈实现是否麻烦?参考资料发现,SpringBoot+Redis+Lua脚本这套方案不错,也早有人使用,所以阔以来简单回答以上的问题1.锁定的是IP(最好还能加上客户端的物理设备ID放于请求头中),不是输入的账户名或者密码,
2024-06-28 10:50:57
706
1
原创 Axure RP 9 安装详细笔记
2.一直点击蓝色边框既可(Launch Axure Rp9 Beta 可勾选/可不勾选,勾选的话会自动打开软件)点击“Enter license key”输入许可证密钥,密钥在下载的压缩包中有。将Axure中文汉化包解压后的lang文件夹复制到你软件所安装的地址位置。启动我们的Axure软件,然后点击“输入授权”再次打开Axure RP9,界面就是中文版。1.解压完压缩包,点击运行一下exe。激活成功后即可永久使用,不用付费。可以选择一下安装位置,也可默认。这里勾选上就直接打开软件。
2024-06-25 14:38:08
298
1
原创 项目实战API文档工具:SpringBoot整合SpringDoc
SpringDoc是一款可以结合SpringBoot使用的API文档生成工具,基于OpenAPI 3,更新发版效率不错,是一款更好用的Swagger库,功能强大,是SpringDoc不仅支持Spring WebMVC项目,还可以支持Spring WebFlux项目,甚至Spring Rest和Spring Native项目等都可以用。
2024-06-24 14:48:13
500
1
原创 项目实战--实现一个多级菜单统一工具类
在项目开发工程中,经常需要实现多级菜单的效果,比如需要一个多级功能菜单、多级评论、多级部门等功能,如果每个项目都要定制一版代码或者SQL,就会面临代码重复开发的问题。为简化开发过程并提高代码的可维护性,我实现一个统一的工具类来处理这些需求,使用SpringBoot创建一个返回多级菜单、多级评论、多级部门、多级分类的统一工具类。
2024-06-23 11:36:51
177
1
原创 SpringBoot开发使用@ConfigurationProperties代替@Value笔记
总的来说,@ConfigurationProperties相对于@Value具有明显的优势,它可以简化配置管理,集中配置信息,并且通过配置校验提高应用的可靠性。最近在项目开发中,遇到大量配置信息在不同微服务中使用,发现维护配置信息变得越来越复杂,修改一个配置命名,就要连着改好多@Value,因为配置管理而头疼。通过@ConfigurationProperties,可以将相关的配置集中在一个类中,这样不仅可以简化配置管理,还可以提高代码的可维护性。然后,需要在Spring Boot应用中启用这个配置类。
2024-06-21 16:56:22
454
1
原创 项目实践---Windows11中安装Zookeeper3.5.5/Hadoop2.7.2/Hive2.3.7
Windows环境Hadoop2.7.2 + Hive2.3.7版本的环境搭建
2024-06-21 13:43:28
286
2
原创 项目实践---Windows11中安装Zookeeper/Hadoop/Hive的部分问题解决
Windows11中安装Zookeeper/Hadoop/Hive的部分问题解决
2024-06-21 13:15:35
825
2
基于Springboot+Vue+Layui校园招聘系统设计源码及文案
2021-05-04
spring boot招聘系统设计
2021-05-01
基于SSH选课系统[内含源码]
2021-03-23
基于Spring Boot招聘系统平台[内含源码及毕业设计文案]
2021-03-23
SSM校园学术报告管理平台(内含源码与毕业设计)
2021-01-21
学生信息管理系统student.zip
2021-01-21
javaweb学生成绩管理系统_ssms.zip
2021-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人