- 博客(148)
- 资源 (10)
- 收藏
- 关注
原创 全网最简单的ElasticSearch入门指引
Elasticsearch 是一个分布式的、RESTful 风格的搜索和分析引擎,基于Lucene构建。它能够存储、搜索和分析海量数据,并且提供了强大的全文搜索能力。Elasticsearch 广泛应用于日志分析、实时监控、全文搜索等领域。Elasticsearch 是一个功能强大且高度可扩展的搜索和分析引擎,它提供了实时搜索、分布式存储和丰富的查询语言等功能。通过 Elasticsearch,可以轻松地构建高性能的应用程序和服务,特别是在需要处理大量数据和实时查询的场景下。
2024-10-08 17:45:00 368
原创 每日学习一个数据结构-图
在数学中,图是描述于一组对象的结构,其中某些对象对在某种意义上是“相关的”。这些对象对应于称为顶点的数学抽象(也称为节点或点),并且每个相关的顶点对都称为边(也称为链接或线)。通常,图形以图解形式描绘为顶点的一组点或环,并通过边的线或曲线连接。图(Graph)是由顶点的有穷非空集合和顶点之间的连线(边)的集合组成,通常表示为G=(V, E),其中G表示一个图,V(G)代表图G中的顶点集合,E(G)代表图G中的边集合。
2024-10-08 12:29:23 378
原创 一篇文章讲透限流与熔断
限流,全称为流量限制,主要指的是对某一系统或网络的流量进行监控和管理,以确保其使用在预定的范围内进行。这种限制可以是针对数据流量的速率、数量或者是对特定用户的访问进行限制。在实际应用中,限流通常用于保护网络、服务器或应用免受过大流量冲击的影响,从而确保服务的稳定性和安全性。基于速率的限流:这种方式通过限制单位时间内通过的数据量或请求数来实现。例如,可以设置每秒最多允许通过一定数量的请求或数据包。基于数量的限流:这种方式通过限制在特定时间段内允许通过的总数据量或请求数来实现。
2024-10-08 06:00:00 36 2
原创 .toml配置文件说明
toml后缀的文件是一种配置文件格式,全称为Tom’s Obvious, Minimal Language,即“Tom的显然易见的最小语言”。它由前GitHub CEO Tom Preston-Werner在2013年创建,旨在成为一种易于阅读、易于编写的配置文件格式,并且可以被容易地解析成多种编程语言的数据结构。
2024-10-07 15:49:35 719
原创 弹性分布式数据集RDD详细说明
弹性分布式数据集RDD(Resilient Distributed Dataset)是Apache Spark中最基本的数据抽象,代表一个不可变、可分区、元素可以并行计算的数据集合。定义:RDD是Spark对数据集的抽象,用于存放数据,它表示一个只读的、可分区的、其中元素可进行并行计算的集合,并且是可跨越集群节点进行并行操作的有容错机制的集合。特性基于内存计算:RDD通过将数据加载到内存中,提高了数据处理的效率。相比于传统的磁盘存储,内存(RAM)的读写速度更快,因此RDD适用于需要快速迭代计算的任务。
2024-10-07 09:56:31 1484
原创 数据采集工具sqoop介绍
Sqoop是一款开源的数据采集工具,专门设计用于在Hadoop生态系统和关系型数据库之间高效传输批量数据。简介:Sqoop(SQL to Hadoop)允许用户将结构化数据从关系型数据库导入到HDFS(Hadoop分布式文件系统)或Hive表中,或者将数据从HDFS导出到关系型数据库中。架构:提供命令行工具和API,用于与Sqoop Server进行通信,并提交数据导入和导出的任务。:负责接收来自客户端的请求,并协调和管理数据导入和导出的任务。
2024-10-07 07:34:40 887
原创 数据分析之Spark框架介绍
Spark是一种快速、通用、可扩展的大数据分析引擎,它基于内存计算的大数据并行计算框架,能够显著提高大数据环境下数据处理的实时性,同时保证高容错性和高可伸缩性。上面的示例代码展示了如何使用 Java 编写 Spark 应用程序来处理不同类型的数据和任务。然而,由于 Spark 的广泛功能和 Java 语言的限制,有些任务(如图处理)可能需要额外的库或更复杂的设置。在实际应用中,你可能需要根据你的具体需求和可用资源来调整这些示例代码。
2024-10-06 19:51:33 537
原创 每日学习一个数据结构-默克尔树(Merkle Tree)
默克尔树(Merkle Tree),也称为哈希树,是一种二叉树结构,广泛应用于数据验证和完整性检查。它在区块链技术中尤为常见,但也有其他应用场景。默克尔树通过层次化的哈希结构,提供了高效、安全的数据完整性验证机制。它在区块链、分布式系统、网络安全等多个领域都有广泛的应用。理解默克尔树的工作原理和应用场景,有助于在实际开发中选择合适的工具和技术。希望这些解释对你有所帮助!如果有任何具体的问题或需要进一步的解释,请随时提问。
2024-10-06 07:30:01 967
原创 一篇文章教你学会设计模式
工厂方法模式描述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。核心:一个抽象工厂方法,由子类具体实现。应用场景:当你希望客户端代码不必关心对象的创建细节,而是通过一个统一的接口来获取对象。示例void use();@Override@Override抽象工厂模式描述:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。核心:一个抽象工厂接口,包含多个创建方法,由具体的工厂类实现。应用场景。
2024-10-05 23:37:24 972
原创 Java提升-锁相关概念以及实现
锁,作为一种并发控制机制,被广泛应用于计算机系统中,特别是在多线程或多进程环境下。它的主要功能是协调多个线程或进程对共享资源的访问,以确保数据的一致性和完整性。通过锁机制,我们可以避免多线程同时修改同一数据而导致的冲突或数据不一致问题。
2024-10-05 09:16:56 1194
原创 Java基础-单例模式的实现
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。这个模式的主要目的是控制对象的创建,确保在程序的整个生命周期中,某个类只有一个实例被创建和使用。
2024-10-05 07:38:15 957
原创 每日学习一个数据结构-Ziplist压缩表
当这些数据量较小时,使用ZipList可以显著减少内存占用,并且由于数据是连续存储的,还可以提高缓存命中率。ZipList由一系列连续的节点组成,每个节点都包含了一些元信息(如前一个节点的长度、当前节点的编码和内容)以及实际存储的数据。ZipList(压缩链表)是Redis中一种特别设计的数据结构,旨在优化内存使用和存储效率,尤其是在存储小数据集时。通过选择合适的编码方式,ZipList可以在保证数据正确性的同时,尽可能地减少内存占用。
2024-10-04 21:06:36 565
原创 kubernets资源类型service详细介绍
Kubernetes中的Service是一种抽象层,它定义了一种资源的逻辑集合和访问它们的策略。Service通过选择器(label selector)将一组Pod资源进行分组,并为它们分配一个统一的访问入口(单一接入点)。Service的主要作用包括负载均衡、服务发现和外部访问。负载均衡:Service通过各种负载均衡策略将流量分发给后端的多个Pod。服务发现:Service使应用可以解耦,Pod可以被动态创建或销毁,而不需要客户端直接连接Pod。外部访问。
2024-10-04 07:48:22 1040
原创 学会使用maven工具看这一篇文章就够了
Maven是一个功能全面且易于使用的项目管理工具,它主要用于Java项目的构建和管理。Maven是一个包含项目对象模型(POM,Project Object Model)、一组标准集合、项目生命周期、依赖管理系统以及用于运行定义在生命周期阶段中插件目标的逻辑的项目管理工具。它能够帮助开发人员更有效地管理项目、减少错误、提高代码质量和可维护性。
2024-10-04 01:22:18 578
原创 每日学习一个数据结构-AVL树
AVL树是一种自平衡的二叉查找树,由两位俄罗斯数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明。定义:AVL树是一种二叉查找树,其中每个节点的左右子树的高度差的绝对值(即平衡因子)不超过1。特性左右子树都是AVL树。左右子树高度之差(简称平衡因子)的绝对值不超过1(-1、0、1)。任意节点的左右子树的高度差不会超过1,这保证了树的高度相对较低,从而提高了搜索、插入和删除操作的效率。
2024-10-03 20:45:00 804
原创 每日学习一个数据结构-树
树是由n(n≥0)个节点组成的有限集合。当n=0时,称为空树;当n>0时,为非空树。在非空树中,有且仅有一个特定的节点被称为根(root),其余节点可分为m(m>0)个互不相交的有限集T1, T2, …, Tm,其中每一个集合本身又是一棵树,并且被称为根的子树(Subtree)。访问时机:三种遍历方式的主要区别在于访问根节点的时机不同。在前序遍历中,根节点在左、右子节点之前被访问;在中序遍历中,根节点在左、右子节点之间被访问;在后序遍历中,根节点在左、右子节点之后被访问。应用场景。
2024-10-03 17:15:49 1061
原创 kubernets资源类型ingress详细介绍
Ingress是Kubernetes中一种对集群中服务的外部访问进行管理的API对象,它典型的访问方式是HTTP和HTTPS。Ingress可以提供负载均衡、SSL和基于名称的虚拟托管等功能。不过,要实现Ingress的功能,必须部署一个Ingress控制器(如ingress-nginx)来满足Ingress资源的要求,仅创建Ingress资源本身是无效的。Ingress公开了从集群外部到集群内部服务的HTTP和HTTPS路由,这些路由由Ingress资源上定义的规则来控制。
2024-10-03 13:33:13 1106
原创 IO多路复用的演变历史以及底层原理解释
IO多路复用的发展历史及底层原理边缘触发(Edge Triggered, ET)和水平触发(Level Triggered, LT)是两种常见的事件触发模式,特别是在处理I/O事件时尤为重要。这两种模式在行为上有所不同,适用于不同的编程场景和需求。边缘触发和水平触发各有优缺点,选择哪种模式取决于具体的应用场景和需求。在需要高效处理大量并发连接、对性能要求较高的网络编程中,边缘触发模式通常是更好的选择;而在对实时性要求不高、更注重编程简单性的场景中,水平触发模式则可能更为合适。
2024-10-02 11:45:00 886
原创 分布式共识算法ZAB
ZAB协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复和原子广播的协议。基于该协议,Zookeeper实现了一种主备模式的系统架构来保持集群中各个副本之间数据一致性。Zookeeper集群中,只有Leader服务器接受写请求,即使是Follower服务器接受到客户端的请求,也会转发给Leader服务器进行处理。
2024-10-02 06:15:00 705
原创 每日学习一个数据结构-NFA非确定有限状态机
NFA(Nondeterministic Finite Automaton)是非确定有限状态自动机的缩写,是一种有限状态自动机。NFA非确定性有限状态自动机以其非确定性的状态转移函数和灵活的识别能力,在自然语言处理、编译器设计等领域具有广泛的应用价值。然而,其实现相对复杂,需要处理回溯或并行计算等问题。相比之下,DFA确定性有限状态自动机虽然表达能力较弱,但实现简单且高效,适用于需要确定性处理的场景。在实际应用中,可以根据具体需求和场景选择合适的自动机模型。
2024-10-01 07:18:55 667
原创 弄懂nginx看这一篇文章就够了
Nginx(发音为“engine x”)是一款开源的、高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。Nginx由伊戈尔·赛索耶夫(Igor Sysoev)于2004年首次公开发布,以其稳定性、丰富的功能集、简单的配置以及低资源消耗而闻名。Web服务器:Nginx可以作为独立的Web服务器,处理来自客户端的HTTP请求,并返回相应的响应,如HTML页面、图片、样式表等。反向代理。
2024-10-01 06:00:00 1295
原创 小白也能看懂的灰度发布
发布策略AB Test和金丝雀发布都采用了逐步扩大新版本覆盖范围的策略,但AB Test更侧重于对比测试不同版本的效果。滚动发布则是通过分批次逐步推送新版本,以实现平滑过渡。蓝绿发布则是直接切换流量到新版本,不进行逐步推送。资源需求AB Test和金丝雀发布对资源的需求相对较低,因为它们只需要在部分用户或流量中测试新版本。滚动发布和蓝绿发布则可能需要更多的资源来支持新版本的部署和测试。风险AB Test和金丝雀发布通过逐步扩大新版本覆盖范围来降低风险。
2024-09-30 23:19:40 293
原创 小白也能看懂的OAuth2讲解
OAuth 2是一个重要的授权框架,它通过颁发令牌的方式实现了第三方应用对用户资源的访问控制,提高了系统的安全性和用户隐私保护。然而,使用OAuth 2也需要注意其对接流程的复杂性、安全漏洞的风险以及兼容性问题。在实际应用中,应根据具体场景选择合适的授权模式,并加强令牌管理和授权控制,以确保系统的安全性和稳定性。在OAuth2中,访问令牌(access token)具有时效性,即它们会在一段时间后过期。
2024-09-30 09:27:29 1411
原创 每日学习一个数据结构-链表
链表(Linked List)是一种常见的数据结构,由一系列节点(Node)组成,每个节点包含两个部分:一部分用于存储数据(称为数据域),另一部分用于存储指向下一个节点的指针(或链接、引用)。链表是线性数据结构的一种,但与数组不同的是,链表中的元素在内存中的存储位置不必连续。单向链表(Singly Linked List)每个节点包含一个数据域和一个指向下一个节点的指针。最后一个节点的指针为null或None,表示链表的结束。双向链表(Doubly Linked List)
2024-09-30 07:25:55 1168
原创 微服务(Microservices),服务网格(Service Mesh)以及无服务器运算Serverless简单介绍
微服务(Microservices)是一种软件架构设计风格,它将应用程序构建为一套小型、自治的服务单元,这些服务单元通过轻量级的通信机制相互协作。定义:微服务架构将复杂的单体应用拆分为更小、更易管理的服务单元,每个服务都专注于单一的业务功能,并且可以独立部署、升级和扩展。特点模块化设计:系统被分解为多个独立的服务单元,每个服务单元都拥有自己的数据存储、业务逻辑和用户界面。自治性:每个微服务都是自治的,可以独立开发、部署和运行,不依赖于其他服务。松耦合。
2024-09-29 21:21:37 411
原创 kubernets资源类型介绍
Kubernetes资源配置文件是描述集群中资源的蓝图,通过这些文件可以自动化地创建和管理Kubernetes中的各种资源。理解和掌握这些配置文件的编写和管理对于高效地使用Kubernetes至关重要。
2024-09-29 07:14:00 666
原创 每日学习一个数据结构-DAG有向无环图
综上所述,有向无环图是一种强大的工具,它广泛应用于任务调度、编译优化、数据流分析、版本控制系统、静态代码分析和软件构建系统等领域。通过利用DAG的特性,我们可以有效地管理和优化复杂的任务流程和数据关系,提高系统的效率和性能。是一种特殊的图结构,在数学和计算机科学领域有广泛应用。它由顶点(vertices)和边(edges)组成,其中每条边都有明确的方向,并且整个图是无环的,即图中不存在可以从一个顶点出发,经过一系列边后又回到该顶点的路径。
2024-09-29 05:00:00 430
原创 远程过程调用RPC知识科普
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,它允许一个计算机程序通过网络调用另一个计算机程序中的子程序(即远程过程),并获取返回值。RPC是分布式计算的重要基础,它极大地简化了分布式系统之间的通信和交互过程,使得开发者可以像调用本地方法一样调用远程方法,而无需关心底层的网络通信细节。
2024-09-28 19:03:39 1470
原创 一个好用的服务治理组件Sentinel
Sentinel是阿里巴巴开源的一款分布式系统流量控制和容错解决方案,它以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel在微服务架构和分布式系统中扮演着重要角色,帮助开发者有效应对高并发、服务故障等挑战。在Sentinel中,资源是限流、熔断等保护策略的作用对象。资源可以是任何需要被保护的代码块,如接口方法。通过代码定义资源使用来定义资源,其中是资源的名称。示例代码:@RequestMapping("/getuser")// 被保护逻辑。
2024-09-28 08:22:13 426 2
原创 每日学习一个数据结构-堆
数据结构中的堆(Heap)是一类特殊的完全二叉树结构,它常被用作实现优先队列。堆在物理结构上通常是顺序存储的,即可以使用数组来表示。堆的性质:堆中的每个节点的值都满足堆的性质,即对于最大堆,父节点的值总是大于或等于其子节点的值;对于最小堆,父节点的值总是小于或等于其子节点的值。完全二叉树:堆总是一棵完全二叉树,这意味着除了最后一层外,每一层都被完全填满,并且所有节点都尽可能地向左对齐。定义:最大堆(Max Heap)是一种特殊的完全二叉树,其中每个父节点的值都大于或等于其子节点的值。性质结构性质。
2024-09-28 00:18:56 1220
原创 java提升-常见的java调试工具介绍
jmap是Java开发和系统管理中用于内存分析和问题排查的重要工具。通过合理使用jmap命令及其选项,可以深入了解Java进程的内存使用情况,帮助开发人员和系统管理员优化内存使用、排查内存泄漏等问题。
2024-09-27 18:37:30 984
原创 一文教你看懂什么是Hadoop
Hadoop是一个由Apache基金会开发的开源分布式计算框架,主要用于处理海量数据集。HDFS(Hadoop Distributed File System)是Hadoop项目中的核心组件,是一个运行在通用硬件上、提供流式数据操作、能够处理超大数据的分布式文件系统。MapReduce是一种用于大规模数据集并行运算的编程模型、框架和平台,它极大地简化了大规模数据处理的过程。
2024-09-27 15:12:28 1625
原创 大数据技术栈简要介绍
大数据(Big Data)是IT行业中的一个重要术语,它指的是那些无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。这些数据集合具有海量的数据规模、快速的数据流转、多样的数据类型以及相对较低的价值密度等特征。大数据需要新的处理模式来增强其决策力、洞察发现力和流程优化能力,从而成为具有战略意义的信息资产。数据量角度:大数据首先体现在“大”上,即数据量巨大,通常达到数十TB甚至数百PB的规模,远远超出了传统数据处理软件的能力范围。数据处理角度。
2024-09-27 14:03:30 1092
原创 kubernets镜像工具skopeo
Skopeo的安装方式取决于您的操作系统和配置。在大多数Linux发行版中,您可以使用包管理器(如yum、apt、dnf等)来安装Skopeo。在MacOS上,您可以使用Homebrew进行安装。此外,您还可以从源代码编译Skopeo以满足特定需求。Skopeo是一个轻量级的命令行工具,它专注于对容器镜像和镜像仓库进行高效、灵活和安全的操作。Skopeo由红帽工程师与开源社区共同开发,旨在提供一种无需运行完整容器守护进程即可处理容器镜像的解决方案。
2024-09-26 22:17:03 901
原创 一文让你了解常见的加密算法以及摘要算法
一种广泛使用的哈希算法,产生一个128位(16字节)的哈希值。然而,由于存在碰撞问题,MD5已不被推荐用于安全敏感的应用。:包括多个版本,如SHA-1、SHA-256等。SHA-1产生一个160位的哈希值,但近年来也发现了碰撞问题。SHA-256等更长的版本(如SHA-512)提供了更高的安全性。:基于哈希算法的消息认证码,它通过一个密钥和一个哈希函数来生成一个消息认证码,用于验证消息的完整性和认证消息的发送者。加解密算法和摘要算法在信息安全领域发挥着不可替代的作用。
2024-09-26 16:29:21 769
原创 Redis缓存淘汰算法详解
LRU(Least Recently Used,最近最少使用)缓存淘汰算法是一种常用的页面置换算法,用于管理缓存中的数据,确保最近最少使用的数据被优先淘汰。当缓存达到容量上限时,会删除链表尾部的节点,即最近最少使用的节点。为了获得更好的性能,特别是在需要频繁更新频率和根据频率进行排序时,可以考虑使用更复杂的数据结构,如平衡树或自定义的双向链表与哈希表的组合。综上所述,Redis的缓存淘汰算法为Redis的内存管理提供了灵活且强大的支持,通过合理的配置和调整,可以显著提高缓存的效率和性能。
2024-09-26 07:03:36 1489
原创 JWT(JSON Web Tokens) 详细介绍
JWT(JSON Web Tokens)是一种用于双方之间安全传输信息的简洁的、URL安全的令牌标准。JWT可以传递信息,这个信息是经过数字签名的,因此可以验证其完整性及被签发人。JWT广泛用于身份验证和信息交换,特别是在客户端和服务器之间的通信中。
2024-09-26 06:00:00 1160
原创 Google BigTable架构详解
Bigtable的元数据也是按Tablet方式分片、分级存储的。在Chubby中只记录顶级元数据的Tablet位置或文件名,然后通过级联二级元数据的Tablet,最终可以定位到用户数据的Tablet。Bigtable的数据模型是一个稀疏的、分布式的、持久化的多维有序映射表。通过分布式架构、面向列的数据模型、稀疏性设计以及元数据管理等机制,Bigtable能够高效地处理大规模数据集,满足各种复杂的应用需求。Bigtable是Google开发的一个高性能、可扩展的分布式存储系统,用于管理大规模的结构化数据。
2024-09-25 16:28:01 1079
原创 行式存储与列式存储
区别行式存储列式存储存储单位行列读取效率整行读取效率高,列读取效率低列读取效率高,整行读取效率低压缩效果差(因数据类型不同)好(同类型数据压缩)磁盘利用率低(空值也占空间)高(通过压缩减少空间)适用场景在线事务处理(OLTP),整表查询数据分析,复杂查询,数据仓库总结行式存储和列式存储各有优劣,适用于不同的场景。行式存储适合需要频繁进行整行数据操作的事务处理系统,而列式存储则更适合于数据分析、复杂查询和数据仓库等场景。
2024-09-25 09:45:39 1265
网页实时通讯socketio
2015-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人