- 博客(129)
- 资源 (11)
- 收藏
- 关注
原创 使用Redis构架你自己的私有大模型
Redis你通常用来做什么?缓存?分布式锁?数据过滤器?不够不够,这远远不够。之前给大家分享过基于Redis Stack提供的一系列插件,完全可以把Redis作为一个类似于Elastic Search的JSON数据库使用。不光可以存储并操作JSON格式的数据,而且可以实现各种复杂的检索。 而现在到了大模型时代,Redis又有了一个更加重要的用途:。基于向量数据库,可以实现一系列更贴近自然语言的检索功能。这也成了AI大模型应用落地的基石。
2025-03-31 09:28:33
619
原创 小白闯AI:Llama模型Lora中文微调实战
小白闯AI,Llama模型Lora中文微调实战。AI大模型应该是一个工具,让你能够更放心去闯的工具,而不应该成为偷懒的工具。而最终会抢掉人类饭碗的,永远是那些跑在你前面的人,而不是一个工具。
2025-03-21 14:53:40
1201
原创 【面试集锦】如何设计SSO方案?和OAuth有什么区别?
如果面试问你,你会做一个权限系统吗?那你肯定会说做过。不就是各种登录、验证吗。我做的第一个CRUD应用就是注册、登录。简单!但是,如果问你在工作中真的做过权限系统吗?其实很多人都只能默默摇摇头。因为在很多真实项目中,权限系统可能不是最复杂的,但一定是牵连最广的。因此往往大型项目中真正去做权限系统的,都只是非常核心的一小部分人。而如果你的应用越来越复杂,作为安全门户的权限系统也会随着变得更加复杂。各种方案层出不穷。
2025-02-12 22:43:34
989
原创 【AI】用AI大模型来介绍什么是AI大模型,是一种什么样的感觉?
说明:这是一篇完全用阿里的Qwen2.5-max模型生成的文章,图片也是用的阿里Flux-Merged模型生成的。甚至连生成图片的提示词都是用大模型生成的。只是想要体验一下用AI写完整的技术文章是什么感觉。不过最终感觉还是不错的,尤其最后的总结。虽然这些技术听起来很酷炫,但我们仍然处于探索阶段,前方还有无数未知等着我们去发现呢。
2025-02-12 15:23:05
355
原创 实战演练JDK的模块化机制
我们写的Java应用,都是以Jar包的形式发布的,所以对于Jar包,你一定习以为常。但是,如果你有一天打开一下JDK9以后的版本在你本地的安装目录,你会发现,JDK中那些熟悉的jar包,完全不见了。取而代之的是一些jmod文件。 甚至在熟悉的IDEA里,JDK的包下也不再是一个个Jar包,而变成了一个个与这些jmod文件对应的模块。 这些jmod文件是什么呢? 其实这些jmod文件可以认为是一种特殊的jar包。JMOD设计为在编译时间和链接时间使用,但不在运行时使用。
2024-12-26 22:39:47
1087
原创 2024年总结:原来你们喜欢这样的java
最后,怎么又莫名其妙的提到了培训?现在互联网上一提培训,一提卖课,似乎就成了人人喊打的老鼠。外面什么技术不能白嫖,你还收钱?还是之前k=k++的分析视频,明明就只是一个跟风的面试视频,只不过比一般的面试八股可能更深了一点。不知道怎么被网友们给扯到卖课上面去了。中间截取了一段扯蛋,聊做回应吧。也算是给我自己这一年的交代。
2024-12-25 22:26:14
892
原创 【面试集锦】k=k++到底有没有执行自增操作
人生三大境界,见山是山,见山不是山,见山还是山! 学了好多年Java,你知道你写的java代码到底是什么样子的吗?k=k++,这样一个简单的代码,就足够考验考验Java程序员的斤两。 类似这样的非人类代码的面试题,其实不在少数。这一类面试题,想要考验的,从来不仅仅是程序员的代码理解能力,而是对语言底层逻辑的熟悉程度。 如果你是一个刚入门的Java新手,那么,对于这一类问题,只要能够推断出执行的结果就行了。
2024-12-19 20:53:32
1142
原创 【面试集锦】十分钟彻底搞懂MySQL的redolog,undolog和binlog
MySQL,是现在业界最受欢迎的关系型数据库之一,他的好处毋庸置疑。但是这也让MySQL成了面试中的重灾区。到底要怎么理解MySQL那些复杂又神秘的底层架构呢?这次楼兰就带你从日志系统出发,快速解析MySQL的整体架构设计。 MySQL的日志文件分为redolog,undolog和binlog三种。这些复杂的日志文件分别是干什么的?有什么关系?接下来我们就一层层的来拆解MySQL。
2024-12-16 10:56:27
861
原创 如何防止Class文件被反编译?
各位伟大的Java程序员,现在有一条财富自由的路摆在你的面前,你有没有信心为此去挑战一下自己? 这次我们来聊一个比较有意思的话题,如何防止Class文件被反编译。
2024-12-13 15:04:17
1082
原创 [面试集锦]海量用户信息下如何进行分库分表?
现在面试动不动就是问三高架构。应用大了,数据量多了,查询性能自然就下降了。怎么办呢?很多人自然就想到分库分表。但是一旦把底层数据库给拆分开了,在业务层面就会暴露出很多问题。那么在一个具体的业务场景下,要如何设计分库分表方案,并对方案进行优化呢?这次就以用户信息这个具体的场景来分享下如何设计分库分表方案。
2024-12-06 17:30:54
1049
原创 【面试集锦】@Autowired和@Resource有什么区别
@Autowired和@Resource这两个注解的功能都差不多,都是在Spring框架中做自动注入的。但是他们有什么区别呢?楼兰带你来分析分析
2024-12-02 16:19:09
1144
原创 程序员的AI五步提示词大法
AI大模型如火如荼,你有没有陷入过AI终将代替人类的终极焦虑? 使用AI大模型,提示词的重要性毋庸置疑。不管是向AI大模型问问题,还是围绕AI大模型构建应用,设计高效的提示词都是其中最重要的一个环节。尤其当你想要在一些具体的业务场景下使用AI大模型时,你不可能真的像聊天一样,慢慢跟大模型软磨硬泡,这时一个高效的提示词就显得尤为重要了。即便像LangChain4j,SpringAI这些纯面向程序员的AI大模型框架,其各种工具的背后,也是通过定制各种各样的提示词,从而让AI大模型帮助实现某种功能。
2024-11-26 10:22:55
1495
原创 轻松解读RocketMQ5.3.0核心源码
同步刷盘,异步刷盘?同步同步,异步同步?零拷贝,顺序写?你是不是曾经在各种各样的流量短视频和博客中听说过跟RocketMQ相关的这些亮瞎眼的高大上的技术名词?你有没有想过自己去RocketMQ中看看这些概念背后的Java代码是什么样的?如果你有过这样的想法,那么,楼兰到你到RocketMQ的源码当中逛逛,看看RocketMQ的大神们,是如何用简单常见的MVC思想开发出RocketMQ这样的神作的。
2024-10-24 19:27:52
1143
原创 Redis只用来做缓存吗?
比如在分布式场景下做用户登录功能,我们就可以将用户信息以JSON字符串的形式保存到Redis中,来代替单体应用中的Session,从而实现统一的登录状态管理。哈希函数的选择对过滤器的性能有很大影响,理想的哈希函数应该具有良好的散列性,使得不同的输入尽可能均匀地映射到位数组的不同位置。通常使用的 keys * 这样的指令,在生产环境一般都是直接禁用的,因为这样会产生严重的线程阻塞,影响其他的读写操作。所以,在布隆过滤器的初始化过程中,通常只需要指定过滤器的容量和误判率,就足够了。相对的,算法实现也就更复杂。
2024-10-17 20:02:36
953
原创 性能爆炸的多线程编排神器CompletableFuture
使用CompletableFuture,程序员可以很方便的控制线程的执行顺序。包括串行、并行或者多个线程的组合与转化功能。 CompletableFuture主要实现了两个关键接口:Future:Future是一个代表异步计算结果的对象。它允许你从一个异步操作中获取结果(一旦结果可用),取消正在执行的计算,或者检查计算是否已经完成。Future 通常与 ExecutorService 结合使用来提交任务,并且是 java.util.concurrent 包的一部分.
2024-10-17 12:59:00
1327
原创 详解ShardingSphere新增的COSID分布式主键生成框架
雪花算法对于分布式主键不冲突的作用是无可挑剔的,但是在分库分表的场景下,雪花算法却埋着一个很多人踩过却一直被人忽视的神坑。另外,ShardingSphere5.x版本集成了一个新的主键生成框架CosId。这么个小问题为什么要搞个框架?分布式主键生成问题到底要怎么玩?花点时间,我来带你一一梳理。
2023-04-21 16:00:17
2289
原创 关于程序员中年危机的一个真实案例
关于中年危机,网上已经有了各种各样的解读。但是,这两天一个学员跟我简单几句聊天,却触发了对于中年危机的另一种思考。如果你曾经也有点迷茫,或许你可以稍微花几分钟看下这个故事。
2023-02-26 18:18:44
10865
23
原创 Kafka3.x核心速查手册三、服务端原理篇-3、Broker故障恢复机制
所有Follower Partition上报后,Leader Partition才能更新HW的值,然后Follower Partition在下次拉取消息时,才能更新HW值。当Leader Partition出现切换,所有的Follower Partition都按照自己的HW进行数据恢复,就会出现数据不一致的情况。所以在很多对性能要求比较高的线上环境,会选择关闭Kafka的这个Leader Partiton自平衡操作,而用其他运维的方式手动进行Leader Partiton自平衡,尽量减少自平衡过程。
2022-09-16 19:33:25
1491
原创 Kafka3.x核心速查手册三、服务端原理篇-2、Broker选举机制
而在一个Partition的众多备份中,需要选举出一个Leader Partition,负责对接所有的客户端请求,并将消息优先保存,然后再通知其他Follower Partition来同步消息。 当一个集群内的Kafka服务启动时,就会尝试往Zookeeper上创建一个/controller临时节点,并将自己的brokerid写入这个节点。 选举产生的Controller节点,就会负责监听Zookeeper中的其他一些关键节点,触发集群的相关管理工作。
2022-09-16 19:31:06
917
原创 Kafka3.x核心速查手册三、服务端原理篇-1、Zookeeper整体数据
这一部分主要是理解Kafka的服务端重要原理。但是Kafak为了保证高吞吐,高性能,很多具体实现都是相当复杂的。如果直接跳进去学习研究,很快就会晕头转向。所以,找一个简单清晰的主线就显得尤为重要。这一部分主要是从存储的角度来理解Kafka的Broker运行机制。这对于上一章节建立的简单模型,是一个很好的细节补充。 Kafka依赖很多的存储数据,但是,总体上是有划分的。Kafka会将每个服务的不同之处,也就是状态信息,保存到Zookeeper中。
2022-09-16 19:28:49
800
原创 kafka如何保证消息不丢失?半分钟的答案和半个小时的答案有点不一样。
关于Kafka保证消息不丢失的问题,就简单总结到这里,但这其实并不是结束。相反,随着你对Kafka理解得越深,你会发现这个问题会有更多的发散空间。像MQ如何保证消息不丢失?如何不重复消费?如何处理消息积压?等等,这都是一系列非常开放的面试题。对于你是否真正理解了每个MQ产品,是非常好的检验标准。所以,这么好的题目,如果只是简简单单背个八股文,那太可惜了。...
2022-08-30 19:47:54
8444
原创 Kafka3.x核心速查手册二、客户端使用篇-2、分组消费机制
Kafka的HighLevel API的重要目的就是想要简化客户端的使用方式,所以对于API的使用,尽量熟练就可以了。对于其他重要的属性,都可以通过源码中的描述去学习,并且可以设计一些场景去进行验证。其重点,是要逐步在脑海之中建立一个Message在Kafka集群中进行流转的基础模型。 其实Kafka的设计精髓,是在网络不稳定,服务也随时会崩溃的这些作死的复杂场景下,如何保证消息的高并发、高吞吐,那才是Kafka最为精妙的地方。但是要理解那些复杂的问题,都是需要建立在这个基础模型基础上的。...
2022-08-28 15:57:43
670
原创 Kafka3.x核心速查手册二客户端使用篇-1、从基础的客户端说起
这一部分主要是从客户端使用的角度来理解Kakfa的重要机制。重点依然是要建立自己脑海中的Kafka消费模型。Kafka的HighLevel API使用是非常简单的,所以梳理模型时也要尽量简单化,主线清晰,细节慢慢扩展。...
2022-08-28 15:55:05
464
原创 RocketMQ广播消费本地Offset文件丢失问题探秘
消费者端存储广播消费的本地offsets文件的默认缓存目录是 System.getProperty(“user.home”) + File.separator + “.rocketmq_offsets” ,可以通过定制 rocketmq.client.localOffsetStoreDir 系统属性进行修改。本地offsets文件在缓存目录中的具体位置与消费者的clientIp 和 instanceName有关。...
2022-08-15 17:26:43
3140
9
原创 MyCat2测试实战 -- 王者归来的故事
关于MyCat,不用做过多介绍,曾经大名鼎鼎的分库分表中间件。诞生于2013年,从MyCat1.6版本之后,陷入了一段时间的沉寂。从2021年11月低开始,重新推出新版本的MyCat2,官网地址:http://www.mycat.org.cn/ 。 重要特性一目了然,独立,是他最大的标签。然后在他的Git仓库中,对产品有一个简单的介绍: 立足于Sharding分库分表。简单、快速是MyCat2对自己最直白的声明。他的定位其实是代表了一整套基于MySQL的分布式数据处理系统,可以让MySQL拥有堪比
2022-06-22 09:25:01
3423
1
原创 大数据基石-Hadoop3.x学习教程-Hadoop产品了解与快速上手
大数据基石-Hadoop Hadoop3.x版本全系列教程 === 楼兰 ===文章目录一、关于Hadoop1、关于Hadoop产品2、Hadoop课程内容3、Hadoop的主要组件二、Hadoop环境搭建以及快速上手1、Linux环境搭建2、Hadoop集群搭建3、Hadoop快速上手三、上手总结一、关于Hadoop1、关于Hadoop产品 首先,关于Hadoop的重要性 对于Hadoop的重要性,再怎么强调也不过分。他可以说是开源大数据领域的开辟之...
2022-04-29 15:23:41
652
原创 ShardingSphere分库分表6-5.x新版本特性
文章目录一、整体理解新版本二、5.X部分新特性1、DistSQL2、可插拔内核3、数据迁移三、全部内容总结一、整体理解新版本 ShardingSphere在2021年十月份推出了5.0的第一个发布版本,并在2022年一月份推出了5.1版本。从整体来看,ShardingSphere5.x将自己的功能定位从数据库中间件升级到了DataBase Plus,数据库功能增强。核心产品定位的变化,必然会带来非常多的改变。不过从功能方面来看,目前5.X版本还只是做了一些功能增强,但是核心功能并没有太大的变动。很多规
2022-04-11 14:53:57
3762
原创 ShardingShpere分库分表5-ShardingSphere分布式事务详解
文章目录一、ShardingJDBC分布式事务快速上手LOCAL本地事务XA事务快速上手BASE柔性事务快速上手seata部署方式:客户端使用Base事务二、分布式事务原理详解XA事务Base柔性事务ShardingJDBC扩展分布式事务管理器三、ShardingProxy分布式事务示例一、ShardingJDBC分布式事务快速上手ShardingJDBC支持的分布式事务方式有三种 LOCAL, XA , BASE,这三种事务实现方式都是采用的对代码无侵入的方式实现的。具体见 TransactionTy
2022-03-02 16:09:54
4913
2
Java类加载的故事-修正终结版.zip
2020-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人