- 博客(352)
- 资源 (36)
- 收藏
- 关注
原创 【LLM入门实践】简便快捷获取Hugging Face模型
(https://huggingface.co/) 域名。作为一个公益项目,致力于帮助国内AI开发者快速、稳定的下载模型、数据集。huggingface中文镜像网站
2024-02-24 13:05:36 1652 4
原创 【Storm实战】1.2 图解Storm的架构及其组件
上一章节,我们为了好理解,将storm中的抽象概念 通过画了一个水力发电系统的工作模式,相信大家一定可以直观地理解Storm中的流 (Stream)拓扑 (Topology)SpoutBolt任务(Task)和工作者 (Worker)是如何协同工作处理数据的。我们将流 (Stream)比作河流,拓扑 (Topology)想象成是一个水力发电系统,Spout可以视为水力发电系统中的水轮机,它不断从河流(外部数据源)中截取水流。Bolt就像是沿着水轮机的齿轮和发动机,它们接收从水轮机传来的动力(
2024-01-04 16:34:04 1815
原创 【Storm实战】1.1 图解Storm的抽象概念
Storm 是一个分布式实时计算系统,用于处理大规模流式数据。它基于流处理模型,可以在一个分布式集群上运行,实时地处理和分析数据。Storm 提供了高可靠性、高吞吐量的数据流处理能力,可用于构建实时大数据分析应用和实时流处理任务。在学习和使用 Storm 之前,我们需要对一些抽象概念有基本的了解。这些抽象概念包括流、拓扑、Spout、Bolt、任务和工作者。流是数据处理的基本单位,可以理解为一个无限的有序的元组序列。
2024-01-04 16:31:23 1380
原创 关于系统设计的一些思考
当我们站在系统设计的起点,面对一个新的需求,我们该如何开始呢?这是许多处于系统分析与设计领域的新手常常思考的问题。有些人可能会误以为,只要掌握了诸如面向对象统一建模语言设计模式微服务ServerlessDDD这样的标准方法论或新潮或深奥的理论,就能顺利地进行设计了。然而,经过实践我们会发现很多系统设计都是要对具体情况进行详细的权衡分析。我要说,虽然这些工具、方法、技能很重要,但它们绝不是成为优秀设计师的充分或是必要条件。无数的实践告诉我,没有捷径可走,唯有在实践中不断地学习、总结、反思,我们才能真正地成长。
2024-01-03 18:42:16 1486
原创 【Spring Cloud Alibaba】1.4 Nacos服务注册流程和原理解析
本章我们来聊聊nacos 服务注册流程和原理解析。在微服务架构中,服务之间需要相互通信,因此服务如何发现彼此变得非常重要。这就需要使用到服务注册中心,在 Spring Cloud Alibaba 中,Nacos 就充当了这个角色。Nacos 提供了服务发现、服务配置和服务元数据等服务治理功能。作为服务注册中心,Nacos 可以实现服务的自动注册、发现和健康检查等功能。
2023-12-04 17:55:06 826 1
原创 【Spring Cloud Alibaba】1.3 Nacos与Spring Cloud整合入门示例
Spring Cloud为微服务应用提供了一套完整的构建工具,而Nacos则是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。本节通过实现一个简单的 echo service 演示如何在您的 Spring Cloud 项目中启用 Nacos 的服务发现功能,如下图示:.基于官方示例进行完善。这使得应用程序或服务更具弹性。本文主要内容包括Nacos与Spring Cloud的基本介绍,Nacos服务注册与发现的实现,Spring Cloud与Nacos的整合操作,以及 与。
2023-12-01 11:13:48 500
原创 【nacos】实时监听nacos中的服务上下线
我们的服务和实例数比较多,有的时候部分实例可能资源竞争或者OOM问题导致服务已经假死,或者心跳已经停止,但是由于监控平台不完善,没有及时的通知到对应的应用负责人,导致服务异常,甚至导致连锁崩掉。为了解决这个问题,写了一个简易版本的,以及对简易版本进行了优化,服务上下线通知。本来想找个nacos客户端中现成的服务发现的监听类或者其他工具类进行,nacos所有服务的变化通知,发现没有找到 进行订阅。过程中也参考了一下官方的demo示例。优化了一下上下线的判断逻辑。
2023-11-28 15:26:19 4654 2
原创 关于测试驱动开发TDD(Test Driven Development)
测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法论,它强调在编写实现代码之前先编写测试代码。TDD是极限编程(XP)的一部分,但也可以单独作为一种开发方法使用。编写一个失败的测试:首先,开发者会针对一个新的功能或需求编写一个测试用例。此时,由于尚未编写实现代码,这个测试用例会失败。编写实现代码:然后,开发者会编写尽可能简单的代码,以使这个测试用例通过。重构代码:一旦测试用例通过,开发者会评估并改进这段代码的结构和效率,以保证代码的质量。
2023-11-22 21:15:00 755 1
原创 Redis从入门到精通(二)- 入门篇
入门篇专题中,探讨 Redis 客户端的不同选择和使用方法。将详细介绍使用 Lettuce 和 Jedis 客户端连接到 Redis 服务器的方法,并进行详细的比较和示例。还探讨了 Redis 的基础数据类型以及高级使用示例。
2023-11-21 22:00:00 1063
原创 Redis从入门到精通(三)-高阶篇
欢迎来到 Redis从入门到精通博客专栏索引的第三部分!在前两部分的内容中,我们一起探索了Redis的基础知识、数据结构和常用命令等。在本专栏的第三部分,我们将继续深入研究Redis的高级功能和最佳实践。为了方便大家查看,我把之前高阶部分的文章汇集成了一个索引。大家也可以根据Redis从入门到精通的思维导图进行查看。
2023-11-21 21:00:00 659
原创 Redis从入门到精通(二)-进阶篇
在进阶篇专题中,将深入探讨 Redis 中的一些高级主题和概念。这些主题包括 Redis 的内存淘汰策略、Redis HyperLogLog 数据结构、Redis 地理位置数据结构 GeoHash、Redis Lua 脚本、Redis 数据类型 Stream、Redis 事务、Redis 过期和淘汰策略、Redis 对象机制以及 Redis 缓存击穿、穿透、雪崩、污染等问题的解决方案。讨论每个主题的原理、使用方法和最佳实践。大家也可以根据Redis从入门到精通的思维导图进行查看。
2023-11-21 09:15:00 661
原创 【运维篇】5.6 Redis server 主从复制配置
在运维篇的第5.6章节中,将讨论Redis服务器的主从复制配置。在开始之前,让先来了解一下主从复制的概念和作用。主从复制是指将一个Redis服务器的数据复制到其他Redis服务器的过程。在主从复制中,一个Redis服务器充当主服务器,而其他Redis服务器则充当从服务器。主服务器负责接收写操作,并将这些写操作传播到所有从服务器。从服务器则负责接收主服务器传播的写操作,并将这些写操作应用到自己的数据集中。主从复制的主要作用是提高系统的可用性和性能。
2023-11-20 22:00:00 1058
原创 【运维篇】5.4 Redis 并发延迟检测
Redis 6.0版本之前其使用单线程模型处理所有命令。这意味着在给定的时间内,只有一个命令正在执行。虽然Redis非常快,每秒可以处理上万到十万个命令,但如果有一个命令需要大量的时间来执行,那么其他的命令就必须等待,这就是所谓的"并发延迟"。并发延迟可能会导致应用程序的整体性能下降,因此对Redis的并发延迟进行检测和优化十分重要。尤其是在并发高、数据量大的生产环境中,及时地发现并解决潜在的并发延迟问题,对于保证Redis的性能和稳定性至关重要。
2023-11-20 21:30:00 728
原创 【运维篇】Redis常见运维命令详解
作为一名Redis开发使用人员或运维人员,熟悉常用的运维命令是非常重要的。通过掌握这些命令,可以快速进行故障排查、性能优化和日常运维工作。本博文将介绍Redis运维常用命令,包括连接和认证、监控和统计、备份和恢复、集群管理、性能调优等方面。每个命令都将详细介绍其用法、参数及示例。
2023-11-19 23:47:31 1596 1
原创 【运维篇】Redis 性能测试工具实践
在评估 Redis 的性能时,使用正确的工具至关重要,因为它们可以帮助我们模拟各种场景并获取关键性能指标。和。是 Redis 官方提供的性能测试工具,它非常简单易用且直接集成在 Redis 发行版中。这个工具可以快速提供一个基准,帮助我们了解在默认设置下 Redis 实例的性能概况。通过定制其各种参数,我们可以模拟不同类型的负载并观察 Redis 如何在各种条件下表现。是另一个强大的开源测试工具,旨在用于评估 NoSQL 系统的性能,包括 Redis。
2023-11-19 23:22:29 1301
原创 【入门篇】1.4 redis 客户端 之 Lettuce 详解
Lettuce是一个高级Redis客户端,用于线程安全的同步、异步和反应式访问。它支持高级的Redis特性,如Sentinel、集群、流水线、自动重新连接和redis数据模型等。Lettuce是完全非阻塞的,基于Netty事件驱动的通信层,其方法将返回具有可观察的类型,可在流或异步编程环境中使用。连接池是一个预先创建并存储数据库连接的容器,应用程序在需要与数据库交互时,可以从连接池中获取已经建立的连接。使用完毕后,将该连接归还给连接池,而不是关闭它。
2023-11-18 22:30:00 5063
原创 【入门篇】1.5 redis 客户端Jedis和Lettuce对比详解
对于Java开发者来说,Jedis和Lettuce是两种非常常见的Redis客户端,他们可以帮助开发者更容易地在Java应用中使用Redis。然而,这两种客户端在设计和实现上有着许多不同之处,这就需要深入理解它们的差异,以便根据自己的需求做出合适的选择。在这篇博客中,将详细讲解Jedis和Lettuce这两种Redis客户端的特点和区别。首先,将介绍他们的基本特性,包括线程安全性、连接管理方式、API设计等。然后,将深入比较他们在处理Redis二进制协议时的差异。
2023-11-18 21:30:00 3302
原创 【入门篇】1.1 redis 基础数据类型详解和示例
Redis概述Redis 是一个开源的在内存中存储数据的结构化键值数据库,它支持多种类型的数据结构,如字符串、列表、集合、哈希、有序集合等。此外,Redis还支持事务、持久化、LUA脚本、LRU清除、自动故障转移等功能。Redis特点性能高效:Redis能读的速度是110000次/s,写的速度是81000次/s,因此被广泛应用于缓存场景。支持多种数据类型:Redis支持最常见的数据类型,为复杂的应用提供了广泛的可能性。数据持久化:Redis可以将数据保存在磁盘上,重启后可以再次加载进行使用。支持消息队列。
2023-11-17 21:30:00 824 1
原创 【入门篇】1.2 Redis 客户端之 Jedis 详解和示例
Jedis 是一个流行的 Java 编写的 Redis 客户端库,它提供了连接和操作 Redis 服务器的功能。Jedis具有以下特点:简单易用:Jedis 提供了简洁的 API,方便开发人员使用,减少了连接和操作 Redis 的复杂性。高性能:Jedis 是通过直接与 Redis 服务器进行通信来实现操作的,因此具有较高的性能。支持多种数据类型:Jedis 支持操作 Redis 的各种数据类型,包括字符串、哈希、列表、集合、有序集合等。
2023-11-17 21:30:00 972
原创 【入门篇】1.3 redis客户端之 jedis 高级使用示例
Jedis是Redis的Java客户端,它支持所有的Redis原生命令,使用方便,且可以与Java项目无缝集成。该库的最新版本支持Redis 5.0、6.0、6.2、7.0和7.2。最新依赖
2023-11-16 22:00:00 873
原创 【入门篇】1.7 Redis 之 codis 入门介绍
Codis是由Wandou Labs(豌豆荚团队)开发的开源工具,用于解决在大数据环境下使用Redis所面临的挑战。Codis将多个Redis实例组织起来,形成一个统一的数据访问层,从而提供了高可用和分布式的特性,使得Redis能够更好地处理大数据和高并发的场景。Codis的功能是基于Redis构建的。Redis是一种内存数据库,用于存储键值对数据。然而,当数据量或并发请求数量增长时,单个Redis实例可能会遇到性能瓶颈。Codis通过在多个Redis实例之间进行数据分片,解决了这个问题。
2023-11-16 21:30:00 1456
原创 nacos 常见问题整理包含容器环境
nacos 常见错误。nacos/conf/cluster.conf中设置域名列表,以避免ip更改影响。Nacos2.0的gRPC端口是通过主端口的偏移量计算的,所以端口转发也需要满足偏移量。8848:这是Nacos服务器的默认端口,客户端通过此端口连接到Nacos服务器获取配置信息和服务注册信息。7848:这是Nacos服务器的集群通信端口,它主要在集群模式下使用,用于节点间的状态同步。如果服务器没有问题,检查配置是否错误。
2023-11-01 15:59:42 3960
原创 【Apache Flink】Flink DataStream API的基本使用
Flink DataStream API主要用于处理无界和有界数据流。无界数据流是一个持续生成数据的数据源,它没有明确的结束点,例如实时的交易数据或传感器数据。这种类型的数据流需要使用Apache Flink的实时处理功能来连续地处理和分析。有界数据流是一个具有明确开始和结束点的数据集,例如一个文件或数据库表。这种类型的数据流通常在批处理场景中使用,其中所有数据都已经可用,并可以一次性处理。Flink的DataStream API提供了一套丰富的操作符,如等,以支持各种复杂的数据处理和分析需求。
2023-10-31 11:23:45 962
原创 【Apache Flink】流式分析的多种应用场景
Apache Flink 功能强大,支持开发和运行多种不同种类的应用程序。它的主要特性包括:批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。Flink 不仅可以运行在包括 YARN、 Mesos、Kubernetes 在内的多种资源管理框架上,还支持在裸机集群上独立部署。在启用高可用选项的情况下,它不存在单点失效问题。事实证明,Flink 已经可以扩展到数千核心,其状态可以达到 TB 级别,且仍能保持高吞吐、低延迟的特性。世界各地有很多要求严苛的流处理应用都运行在 Flink 之上。
2023-10-29 10:00:00 645
原创 【Apache Flink】基于时间和窗口的算子-配置时间特性
Apache Flink 它提供了多种类型的时间和窗口概念,使得用户能够进行准确的时间计算。在数据处理任务中,时间的概念是非常重要的,对于一些复杂的实时流处理任务,如事件按时间顺序的聚合、分割和窗口计算,时间更是关键所在。而在这类任务中,选择使用何种时间特性是决定结果准确性的非常重要的一部分。Flink提供了三种时间特性供用户选择:事件时间、处理时间和摄取时间。在使用Flink进行流处理时,时间窗口的选择也至关重要。
2023-10-28 14:00:00 1359
原创 CPU缓存一致性协议剖析
首先,我们需要了解什么是缓存一致性。多处理器系统中的每个处理器都有自己的缓存,用于存储最近使用的数据,以减少内存访问的延迟。然而,这引入了一个问题:当多个处理器修改共享数据时,其他处理器的缓存可能会变得过时。CPU缓存一致性问题主要出现在多核处理器系统中。每个核心都有它自己的缓存,当它们并行处理数据时,如果一个核心修改了它的缓存中的数据,那么其他核心的缓存可能就会变得过时或不一致。解决CPU缓存一致性问题的主要协议有以下几种:虽然这些都是硬件层面的事情,但是我们作为开发者应该要具备这些知识。
2023-10-24 22:58:29 749
原创 字节码进阶之java反射的底层实现原理
Java反射的底层实现原理主要涉及到Java的类加载机制和字节码操作。总结起来,Java反射的底层实现原理是通过类加载机制将类的字节码加载到内存中,并通过字节码操作解析和操作类的成员变量、方法和构造方法。这样就实现了在运行时动态地获取和操作类的信息。
2023-10-23 23:26:02 344
原创 字节码进阶之JVM Attach API详解
总的来说,JVM的Attach API是一种强大的工具,它为我们提供了许多可能性,使我们能够深入到Java应用程序的运行内部。然而,同时也需要注意其带来的安全和性能问题。希望本篇文章能帮助大家更深入的理解和正确使用JVM Attach API,最大限度地发挥其潜力。
2023-10-22 23:57:56 807
原创 字节码进阶之javassist字节码操作类库详解
Javassist(Java programming assistant)是一个开源的分析、编辑和创建Java字节码的库。它是Java反射API的一个替代品,用于动态创建和操纵Java类。本章我们聊聊如何使用Javassist字节码操作类库。
2023-10-22 23:49:09 678
原创 字节码进阶之JSR269详解
在Java的世界中,我们经常会听到JSR(Java Specification Requests)的名字。JSR是Java社区的一种提案,它定义了Java平台的各种标准和规范。其中,JSR269(Pluggable Annotation Processing API)是Java 6引入的一项关于注解处理的规范。注解在Java中是一种常见的元数据形式,它可以提供编译时或运行时的额外信息。通过JSR269,开发者可以创建处理器来处理这些注解,并可在编译时生成额外的源代码或做其他处理。
2023-10-21 23:58:16 723
原创 字节码进阶之java Instrumentation原理详解
Java Instrumentation是Java API的一部分,它允许开发人员在运行时修改类的字节码。使用此功能,可以实现许多高级操作,例如性能监控、代码覆盖率分析等。通过Java提供的Instrumentation接口,我们能够在运行时改变和监控Java程序,这种能力在许多场景中都非常有用,比如性能调优、故障排查、代码覆盖率分析等。然而,Instrumentation接口的使用和字节码操作本身都是高级主题,需要深入理解JVM和字节码的工作原理。
2023-10-21 23:53:20 1253
原创 字节码进阶之ASM字节码操作类库详解
在Java的世界里,一切都围绕着字节码进行。字节码,作为Java源代码到Java虚拟机(JVM)的中间表示,扮演了重要的角色。然而,直接操作字节码并非易事,需要深入理解JVM的工作原理以及字节码的细节。这就是ASM类库登场的地方。ASM是一个在Java中广泛使用的字节码操作和分析框架。它提供了直接操作字节码的能力,从而可以实现一些Java语言本身无法实现或者难以实现的功能。通过使用ASM,开发者可以动态生成类,修改已存在的类,优化代码性能,以及进行深度的代码分析。
2023-10-20 23:55:17 816 4
原创 4.从字节码分析synchronized的实现原理
前几个章节我们了解到Class文件的结构剖析,以及字节码的场景语句的底层原理,以及字节码中的指令的基本含义。本章节我们学以致用,来从字节码层面分析synchronized的实现原理。
2023-10-20 10:39:24 258
原创 字节码进阶之Lombok底层原理
例如,我们经常在Java代码中为类的属性生成getter和setter方法,这是一种重复且繁琐的工作。使用Lombok可以极大地简化这个过程。在传统的做法中,我们需要手动为name和age属性生成getter和setter方法,这样的代码既冗长又容易出错。但是,如果我们使用Lombok的@Getter和@SetterGetter;Setter;@Getter@Setter源代码解析:Java编译器首先会解析这段源代码,并生成对应的AST。注解处理:编译器检测到@Getter和。
2023-10-16 23:34:58 633
原创 字节码进阶之方法调用指令详解
Java字节码是Java虚拟机(JVM)执行的代码,它是由Java编译器编译Java源代码生成的。字节码可以在任何安装了JVM的平台上运行,这也是Java“一次编写,到处运行”的基础。在字节码中,方法调用指令是一类重要的指令,它用于调用Java方法。方法调用指令主要包括五种:invokevirtual、invokespecial、invokestatic、invokeinterface和invokedynamic。每种指令对应一种特定的方法调用场景。
2023-10-16 10:30:00 898
原创 JVM之class文件结构剖析
在Java编译过程中,源代码首先会被编译器编译成为字节码文件,这些文件的后缀名为.class。然而,尽管.class文件在Java编程中占有重要地位,但是大多数Java开发者对其内部的结构和工作原理并不是非常了解。所以抽时间我整理一下,和大家一起学习进步。本文旨在对Java的.class文件结构进行详细的剖析,让我们一起了解其内部的工作机制。希望大家在阅读本文后, 对Java虚拟机有更多的了解,并在日后的编程工作中更加得心应手。
2023-10-15 21:12:00 386
原创 字节码之 Lambda 表达式底层原理
前两章我们了解了JVM之所以夸平台的一个重要特性,字节码指令、并且通过javap反编译了一些常见的java 语句的字节码指令,了解了之所以这些语句举报那样的特性。今天我们从字节码指令层面聊聊Lambda表达式的底层原理。首先我们写一个简单的lambda表达式,并用javap命令反编译成字节码指令。(动态方法调用)是Java 7引入的一个新的字节码指令,目的是为了支持动态类型语言在Java平台上的执行。这个指令特别适用于执行那些在编译时类型未知的方法调用。在Lambda表达式中,
2023-10-15 09:39:39 450
myeclipse 10 ,2013 ,2014 破解工具 注册机 内附破解工具源码
2015-10-22
CAJViewer_V7.2.111.0_setup.1425885540.exe
2015-03-23
Smarty Uninstaller
2015-03-23
windows installer clean up 官方版本
2015-03-23
JMF 的CaptureDeviceManager.getDeviceList(null)获取不到设备列表,返回值为空
2014-03-08
gaussDB5.0 企业版安装包 Linux版本
2023-08-27
gaussDB5.0版本轻量级安装包 Linux版本
2023-08-27
SimpleImage 阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。
2017-02-27
Norse 黑客大战实时地图 源码
2016-07-09
springmvc+angularjs springmvc 整合angularjs demo
2015-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人