- 博客(52)
- 资源 (3)
- 收藏
- 关注

原创 在线全科家教小学初高中 SpringCloud Alibaba Flink大数据 高可用kubernetes集群 AI人工智能云平台免中介费试听课开始啦
https://mp.weixin.qq.com/s/z22g5-MSgS1uOMb-trgx9w
2024-12-24 00:18:40
494

原创 Kubernetes Containerd ctr、crictl、nerdctl -容器和镜像操作命令工具
k8s 镜像和容器的操作工具的命令工具的使用详解
2022-12-11 19:52:54
13828

原创 Kubernetes.K8S.Cluster.1主 2 从. 2C 4G.CentOS7.6. 搭建日志.OK
Kubernetes.K8S.Cluster. 1主 2从2C 4G. CentOS7.6
2022-01-10 16:21:29
2437
1
原创 Java static 关键字 五种用法
但是静态方法还是有作用的,比如可以使用类名.方法名的方式操作方法,避免了要new对象的资源消耗,静态方法的应用在工具类中经常被使用到,同时在JDK8新特性(接口的增强)中,可以在接口中使用static去修饰的具体方法,从而使得接口拥有具体的方法。3、方法区所存放的类的信息可以说是类的定义,实例化的实际流程就是根据方法区中类的信息去实例化出具体的对象,然后将这个对象的存放在堆中。1、Student类型的局部变量s1和s2是存储在虚拟机栈中的,所储存的值是所指向对象的地址,该变量称为”引用”或”对象的引用”
2025-02-24 12:25:53
789
原创 JVM view(1)
Young GC 之前检查老年代:在要进行 Young GC 的时候,发现老年代可用的连续内存空间 < 新生代历次Young GC后升入老年代的对象总和的平均大小,说明本次 Young GC 后可能升入老年代的对象大小,可能超过了老年代当前可用内存空间,那就会触发 Full GC。连接(IO/数据)未释放:创建的连接不再使用时,需要调用 close 方法关闭连接,只有连接被关闭后,GC 才会回收对应的对象(Connection,Statement,ResultSet,Session)。
2025-02-24 08:44:07
865
原创 Linux udp poll函数
但是UDP是可以使用select/poll/epoll的,某些开源软件,比如FFmpeg内部使用了这些多路复用来处理UDP。2.服务器端要将地址和端口号绑定,如果不绑定就无法使用recvfrom函数接受数据(也就是说服务器需要调用bind函数将一个套接字与一个地址绑定,而客户端不需要)。从上面的代码可以看出来,上述UDP客户端和服务器都使用了poll函数监视文件描述符是否可读。所以如果阅读一份源码,要快速判断其是UDP服务器还是客户端,一个简单的方法是查看代码中是否调用了bind函数就可以了。
2025-02-14 12:24:29
840
原创 美团 字节 view
美团字节美团算法部分146. LRU 缓存机制912. 排序数组1114. 按序打印二叉树的前序遍历 (Leetcode)旋转图像 (Leetcode)剑指 Offer 10- II. 青蛙跳台阶问题19. 删除链表的倒数第 N 个结点155. 最小栈215. 数组中的第K个最大元素按奇偶排序数组 II (Leetcode)多数元素 (Leetcode)232. 用栈实现队列合并两个有序数组 (Leetcode)300. 最长递增子序列。
2025-02-13 13:13:06
347
原创 DeepSeek 人工智能 使用大全
它支持数十种语言的处理,无论是欧洲语言、亚洲语言还是非洲语言,DeepSeek 都能准确理解和生成相应的文本,这使得它能够满足全球不同地区用户的多样化需求,打破了语言交流的障碍。在人工智能技术日新月异的今天,DeepSeek 作为一款极具创新性和实用性的 AI,在众多同类产品中崭露头角,凭借其卓越的性能和丰富的功能,吸引了大量用户的关注。无论是初涉 AI 领域的新手,还是经验丰富的资深用户,都能通过上面分享的这些资源,不断挖掘 DeepSeek 的价值,提升自己在工作和学习中的效率。AI 指令合集大全;
2025-02-13 12:39:26
180
原创 JDK 17 和 JDK 21 在垃圾回收器(GC)上有什么优化?如何调整 GC 算法以提升应用性能?
本文将从 JDK 17 与 JDK 21 的垃圾回收改进出发,结合代码示例解析优化方案,并提供实际项目中的调优策略,帮助你提升应用性能。-XX:ShenandoahGCHeuristics=<策略> # 设置启发式策略(如 compact、static 等)-Xlog:gc*:file=gc.log:time,uptime,level,tags # 输出到文件。-XX:+UseShenandoahGC # 启用 Shenandoah GC。// 模拟分配大对象。
2025-02-12 17:01:26
665
原创 分布式系统 分布式锁 Redis
这是小卷对分布式系统架构学习的第12篇文章,今天学习面试中高频问题:分布式锁,为什么要做分布式锁,有哪些实现方式,各适用于什么场景等等问题分布式锁的特点:互斥:任意时刻,锁只能被一个线程持有高可用:锁服务本身是高可用的,一个节点出问题,能自动切换到另一个节点可重入:获取过锁的节点,可再次获取锁;超时机制:为了防止锁无法被释放的异常情况,需要设置超时时间,过了超时时间,锁自动释放;自动续期:如果任务处理时间超过超时时间,会出现任务未处理完成而锁释放的情况。
2025-02-10 12:38:54
433
原创 java List
首先导入java.util.List类,java.util.ArrayList类和java.util.Random类,分别用于处理列表和生成随机数,创建一个长度为10的整数数组number用于存储随机数,使用for循环,i小于数组的长度,将随机数存入数组number.创建一个ArrayList来存储整数,使用循环将number数组中的元素逐个加到list中,使用System.out.println方法将list内容打印。所谓有序,是指元素存入集合的顺序和从集合中取出的顺序是一致的。
2025-02-09 18:27:16
253
原创 java reflect 反射
而在反射操作中,需要通过字符串或其他标识符来指定要访问的方法或字段,JVM必须在运行时解析这些标识符,查找并确定对应的方法表或字段表条目,这一过程涉及到字符串比较、哈希查找、数组索引等操作,相对直接访问来说更为复杂且耗时。注解处理:反射可以帮助处理类、方法、字段上的注解,通过AnnotatedElement接口及其子接口(如Class、Method、Field)提供的方法,可以获取和操作注解信息,实现基于注解的配置、元数据驱动等功能。•调用invoke()方法会执行对应的方法,并返回方法的返回值。
2025-02-09 16:59:47
642
原创 Linux less shell
当用户执行less命令时,less命令会读取标准输入中的文本内容,并将其分页显示在终端窗口中。首先,less命令会获取终端窗口的大小,以确定每页显示的行数和列数。总之,less命令是Linux系统中一个非常常用的文本查看工具,其功能强大、易用性高,可以帮助用户快速查看和编辑文本文件。在实际使用中,需要熟练掌握less命令的用法和参数,以及其背后的原理和相关技术,才能更好地发挥其作用。Linux中的less命令是一个非常常用的文本查看工具,它可以用于查看任意大小的文本文件,支持滚动翻页、搜索、标记等功能。
2025-02-09 16:22:00
380
原创 jvm view
1、说说你了解的JVM内存模型2、简单说下你对JVM的了解3、说说类加载机制4、说说对象的实例化过程5、说说JVM的双亲委派模型6、说说JVM调优思路7、项目中有没有实际的JVM调优经验?7.1 CPU飙升7.2 GC调优8、请你说说内存溢出9、请你说说内存泄漏10、JVM中一次完整的GC流程是怎样的11、如何避免Full GC?12、说说JVM的垃圾回收机制13、说说GC的可达性分析算法14、说说JVM的垃圾回收算法15、说说七个垃圾回收器。
2025-02-09 16:08:41
902
原创 Redis 缓存数据库 缓存击穿/缓存穿透/缓存雪崩
比如,虽然数据库中没有id = 1022的用户的数据,但是在redis中对其进行缓存(key=1022, value=null),这样当请求到达redis的时候就会直接返回一个null的值给客户端,避免了大量无法访问的数据直接打在DB上。当redis中的大量key集体过期,可以理解为Redis中的大部分数据都清空 / 失效了,这时候如果有大量并发的请求来到,Redis就无法进行有效的响应(命中率急剧下降),也会导致DB先生的绝望。查询时,如果相应的位置均为1,则认为该数据存在于布隆过滤器中。
2025-02-09 15:51:20
741
原创 Netty入门
NIO是Java 1.4 后引入的基于事件模型的非阻塞IO框架,在NIO之前,对于数据的处理都是基于BIO(Blocking IO)的,闻其名知其意,BIO是以阻塞的形式来对数据进行处理的,虽然这种方式处理起来比较简单,但是由于其阻塞特性会涉及到线程的上下文切换操作,导致 BIO在高并发场景下略显吃力。数据从网络传输到IO复用层,IO复用层收到数据后将数据传递给通用数据处理层进行处理,这一层会通过一系列的处理 Handler 以及应用服务器对数据进行处理,然后返回给IO复用层,再通过它传回网络。
2025-02-09 14:21:45
684
原创 kubectl 命令详解
使用场景包括:在 Kubernetes 集群中增加或减少 pod、服务、部署等资源的副本数。使用场景包括:在 Kubernetes 集群中创建新的 pod、服务、部署等资源。使用场景包括:在 Kubernetes 集群中创建新的资源或更新已有的资源。使用场景包括:在 Kubernetes 集群中查看部署的滚动更新状态。使用场景包括:在 Kubernetes 集群中删除不再需要的 pod、服务、部署等资源。使用场景包括:在 Kubernetes 集群中修改已有的 pod、服务、部署等资源的配置。
2025-02-09 13:57:28
797
原创 new Integer(“127“) 和Integer.valueOf(“128“)
发现 128 超出范围后,Java 就会创建一个新的 Integer 对象,而不是使用缓存。六、结论虽然在给定的例子中(“127” 和 “128”),两种方法都会创建新对象,但它们的行为原因不同:new Integer(“127”) 总是创建新对象,无论值是多少。二、Integer.valueOf(“128”)创建一个新的 Integer 对象,值为 128。在实际应用中,除非特别需要新对象,否则推荐使用 Integer.valueOf() 或自动装箱,以便在可能的情况下利用缓存优化。
2025-02-06 20:22:28
403
原创 用 Docker Compose 部署 Redis MySQL RabbitMQ
通过 Docker Compose,我们可以轻松地管理这些服务的启动、停止和重启策略,同时确保它们的高可用性和数据持久化。这种配置方式不仅提高了开发和部署的效率,还确保了服务的高可用性和数据的持久化。在上述配置中,我们通过挂载本地目录到容器的特定路径,实现了数据的持久化。此外,通过挂载 /etc/localtime 文件,我们确保了容器内部的时间与宿主机保持一致,这对于日志记录和时间敏感的应用非常重要。如果你需要实时同步宿主机和容器之间的文件,并且宿主机上有现成的目录或文件,那么目录挂载是更好的选择。
2025-02-04 00:20:22
825
原创 Redis 缓存 & 分布式锁
将定期生成和实时生成结合一下,先通过“离线”的方式,通过统计的途径,先找到一些热点数据(这些数据并一定精准,有就行)导入到Redis中,就能帮助MySQL承担很大的压力,随之时间的推移,热点数据会逐渐调整,来使用当前情况;Redis服务器首次接入连接之后是没有数据的,此时所有的请求将在MySQL中(就怕此时MySQL没有抗住这么多请求挂了),那么随之时间的推移,Redis上的数据慢慢越来越多,MySQL承担的压力就会小很多;分布式系统中任何⼀个节点都是不可靠的. 最终的加锁成功结论是 “少数服从多数的”.
2025-02-04 00:02:36
558
原创 SpringAI 人工智能
在此背景下,Spring AI 作为一个企业级 AI 框架,提供了丰富的工具和机制,可以帮助开发者将 AI 模型无缝地集成到 Spring Boot 应用中,并支持大规模的部署和扩展。对于企业来说,Spring AI 的集成不仅降低了技术门槛,还提升了开发效率,为业务创新提供了强大的支撑。通过 Spring AI,开发者可以通过配置和注入的方式快速使用多种 AI 模型,避免了直接与不同厂商 API 的繁琐交互,同时也能够利用 Spring 生态的强大支持,确保在企业级应用中的可维护性、扩展性与可操作性。
2025-02-03 18:13:05
514
原创 kubectl常用命令
1、查看创建的状态,状态为Pending【准备中】,Running状态【已经创建成功】(1)回滚(回退到record中的上一个revision)(2)前后20行,并增加颜色。(2)显示日志最后200行。7、进入Pod对应容器内部。(3)显示过去2h的日志。8、查看该容器的所有状态。2、查看POD详细信息。6、查看service。
2025-02-02 18:56:38
188
原创 Elasticsearch 中文分词器
例如,拼音 “mā” 可以代表“妈”、“马”或“麻”,但用户搜索的汉字可能是“马”而不是“妈”,此时拼音搜索就会产生误差。“search_analyzer”: “ik_smart” // 搜索时使用 “ik_smart” 分析器进行分析(简化分词)“tokenizer”: “ik_max_word”, // 使用 “ik_max_word” 分词器,进行中文最大化分词。“keep_joined_full_pinyin”: true, // 保留拼音连在一起(例如“北京”变为“bj”)
2025-02-02 15:59:24
110
原创 Elasticsearch基本使用
Elasticsearch 的强大功能不仅限于此,它还支持复杂的查询、聚合分析、集群管理等高级功能,值得深入学习和探索。本文将详细介绍 Elasticsearch 的基本使用方法,包括环境搭建、索引操作、数据插入与查询等,帮助读者快速上手。访问 Kibana:打开浏览器访问 http://localhost:5601,通过 Kibana 的界面可以方便地管理 Elasticsearch 索引和数据。下载与安装:访问 Kibana 官方下载页面,下载与 Elasticsearch 版本匹配的 Kibana。
2025-02-02 15:23:04
377
原创 Spring应用场景 特性
按需选择模块:Spring 由 20+ 模块组成(如 Spring Core、Spring Data、Spring Security),开发者可灵活组合,避免臃肿。Spring Security:提供身份认证(OAuth2/JWT)、授权(RBAC)、防 CSRF 等安全功能,适用于 Web 和微服务场景。Spring WebFlux:支持响应式编程(Reactive Programming),适合高并发、非阻塞的异步服务(如实时聊天、流处理)。
2025-02-02 13:24:18
500
原创 Dubbo view
多个短连接,同步 HTTP 传输,Hessian 序列化,传入参数较大,提供者大于消费者,提供者压力较大,可传文件;答:因为服务的现状大都是服务提供者少,通常只有几台机器,而服务的消费者多,可能整个网站都在访问该服务,比如 Morgan 的提供者只有 6 台提供者,却有上百台消费者,每天有 1.5 亿次调用,如果采用常规的 hessian 服务,服务提供者很容易就被压跨,通过单一连接,保证单一消费者不会压死提供者,长连接,减少连接握手验证等,并使用异步 IO,复用线程池,防止 C10K 问题。
2025-02-02 12:46:31
806
原创 Alibaba grpc Dubbo view
答:可以通信的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地。Dubbo 的 Provider 启动时,需要与注册中心交互,先注册自己的服务,再 订阅自己的服务,订阅时,采用了观察者模式,开启一个 listener。答: Dubbo 是一款高性能的 Java RPC 框架,是阿里巴巴公司开源的产品,用于提供高性能的分布式服务框架和面向服务的架构。答: Dubbo 的注册中心是用于服务的注册和发现的中心化管理平台,用于管理服务的元数据和服务的提供者。
2025-02-02 11:54:49
1124
原创 java 开发工具
举个简单的例子,Spring 中的 CollectionUtils 工具类没有判断集合是否不为空的方法,而 apache 中的有。在这篇文章中,我介绍了 Java 开发中 9 个非常实用的工具类,它们可以帮助我们提高开发效率,减少重复代码,并简化日常的开发任务。从集合操作到字符串处理,从对象操作到反射机制,再到数据加密和 HTTP 状态码处理,这些工具类提供了强大而灵活的功能,让我们能够更加专注于业务逻辑的实现,而不是底层细节的处理。希望这些工具能够为你的项目带来便利,提升你的开发效率。
2025-02-01 17:29:46
627
原创 Redis 常用命令
用于展示最新的一些信息,如社交媒体平台上用户的最新动态、新闻网站的最新消息等,每当有新消息产生时,使用rpush命令将消息添加到 List 的尾部。Redis 中的 list 相当于顺序表,并且内部更接近于“双端队列”,所以也支持头插和尾插的操作,可以当做队列或者栈来使用,同时也存在下标的概念,不过和 Java 中的下标不同,Redis 支持负数下标,-1 表示倒数第一个元素,-2 表示倒数第二个元素,和 Java 中的 List 相同的是,列表中的元素是有序的,并且允许重复。O (k),k 是元素个数。
2025-02-01 16:05:24
402
原创 ElasticSearch view
主分片的数量应根据预计的数据量和集群的节点容量来确定,建议:主分片数量最多不要超过集群中节点的数量,避免单个节点分配过多主分片而造成资源紧张。节点(Node):elasticsearch集群中一个服务器实例,负责存储数据、处理请求等,根据角色不同可分为主节点、数据节点、协调节点等。查看elasticsearch的日志文件,日志文件通常位于logs目录下,所以从中获取节点故障的错误信息、异常堆栈等,初步判断故障原因。查看故障节点的CPU、内存、磁盘等硬件资源使用情况,是否存在资源被耗尽的情况。
2025-02-01 10:10:19
867
原创 怎么阅读Tomcat源码
如:<Connector port=“80” protocol=“HTTP/1.1” maxThreads=“600” minSpareThreads=“100” maxSpareThreads=“500” acceptCount=“71”Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈.一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式)-Xms JVM初始化堆的大小。
2025-02-01 09:58:35
155
原创 Elasticsearch Queries
这些查询子句可以是叶查询(Leaf Queries)或复合查询(Compound Queries),并且可以用于组合结果和分数、改变行为或从查询上下文切换到过滤上下文。接受多个查询,并返回匹配任何查询子句的文档。与 bool 查询合并所有匹配查询的分数不同,dis_max 查询使用单个最佳匹配查询子句的分数。返回匹配 positive 查询的文档,但会降低也匹配 negative 查询的文档的分数。包装另一个查询,但在过滤上下文中执行它。选择最佳匹配:使用 dis_max 查询选择最佳匹配的查询子句。
2025-01-31 18:07:07
664
原创 SpringBoot特性
Spring Boot通过starter机制将相关依赖打包在一起(例如:spring-boot-starter-web包含了spring-webmvc、jackson、tomcat等)强大的生态系统:Spring Boot 集成了 Spring 全家桶,提供了与 Spring 生态中各个组件的无缝集成,并通过各种 Starter 来快速添加第三方库支持。快速启动:Spring Boot 提供了简洁的配置和开箱即用的功能,减少了项目启动时所需的配置工作,开发者可以专注于业务逻辑。
2025-01-30 10:07:56
200
原创 Linux C++
当 accept 函数接收到新连接时,使用 std::thread 创建新线程,控制器需要协调线程的创建和执行,将 handleClient 函数分配到新线程中运行,同时使用 detach 操作,这涉及到操作系统的线程调度,也是控制器的重要体现。运算器和控制器的操作反映在程序的执行逻辑和计算操作中,合理的程序结构和算法可以提高运算器的效率,控制器的合理调度可以确保程序的正确执行顺序和资源的合理利用。变量 lines 和 line 存储在内存中,文件的内容也会存储在内存中(存储在 lines 向量中)。
2025-01-28 22:00:49
933
原创 Linux more shell
在Linux命令中more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上, more会以一页一页的显示方便阅读。-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)文件中文件比较多,展示的时候 more结合管道使用,每次显示5个,空格显示下5个。2、查找文件中第一个出现"str"字符串的行,并且从该行的前两行显示。-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容。Ctrl+F 向下滚动一屏。-num 一次显示的行数。
2025-01-27 22:12:46
454
原创 Redis 的五种数据类型及其底层原理
实际上,这是skiplist的一个很重要的特性,这让它在插入性能上明显优于平衡树的方案。但是有一个问题,就是数组中每个元素的大小都必须是一样的,如果有大小不一样的话,那么该元素的内存就必须按照数组中最大的元素(假设是5个字节)的内存存放,那么存储少于5字节的元素就会存在内存浪费问题。在压缩列表中,每当有新的键值对要加入到哈希对象时, 程序会先将保存了 键的压缩列表节点 推入到压缩列表表尾, 然后再将 保存了值的压缩列表节点 推入到压缩列表表尾, 因此:保存了同一键值对的两个节点总是紧挨在一起。
2025-01-23 18:28:54
787
原创 HDFS HADOOP分布式文件系统
如今,数据正以指数级增长,各行各业都在追求更多的数据存储、高效的数据处理和可靠的数据基础来驱动业务的发展。客户端是使用HDFS的应用程序。它的高可靠性、高扩展性和高效的数据访问方式,为处理大规模数据提供了强大的支持,并通过Shell操作和API操作,方便用户管理和操作存储在HDFS中的数据。在HDFS中,数据块是独立存储和处理的,较大的文件块能够在不同的计算节点上并行处理,从而减少整个作业的执行时间。在HDFS中,每个文件块都有一条元数据记录,较小的文件块可能会导致元数据记录数量增加,增加了存储的开销。
2025-01-21 08:50:36
958
原创 redis 布隆过滤器 BloomFilter
文章目录1、什么是布隆过滤器?1.1工作原理1.2布隆过滤器的优点1.3缺点2、布隆过滤器的使用场景3、布隆过滤器的原理3.1布隆过滤器的数据结构3.2初始化阶3.3插入元素过程3.4查询元素是否存在3.5元素删除3.6扩容4、SpringBoot整合布隆过滤器4.1技术选型4.2依赖4.3配置布隆过滤器相关参数4.4布隆过滤器工具类4.5业务操作。
2025-01-19 19:58:16
1575
原创 K8s架构与组件
•节点控制器(Node Controller): 负责在节点出现故障时进行通知和响应•任务控制器(Job controller): 监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成•端点控制器(Endpoints Controller): 填充端点(Endpoints)对象(即加入 Service 与 Pod)•服务帐户和令牌控制器(Service Account & Token Controllers): 为新的命名空间创建默认帐户和 API 访问令牌。
2024-12-06 19:17:47
1046
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人