
开发周边
文章平均质量分 90
有梦想的攻城狮
既然选择了远方,留给别人的就只能是背影
展开
-
nacos 2.x使用java语言实现自定义Loadbalance
可实现灵活且高性能的自定义负载均衡策略,满足灰度发布、同集群优先等复杂场景需求。• 确认 Spring Cloud 版本是否禁用 Ribbon(2020+ 默认使用 LoadBalancer)• Nacos 2.x 需使用 Spring Cloud Alibaba 2023.x+• 在自定义策略中添加 fallback 机制(如无同集群实例则随机选择)• 在自定义类中增加本地缓存,减少实时查询 Nacos 的频率。• 检查自定义类中权重解析逻辑(如类型转换)注解是否标注在启动类或配置类。原创 2025-03-31 21:09:39 · 801 阅读 · 0 评论 -
nacos 3.x Java SDK 使用详解
推荐结合 Spring Boot 3.x 和 Kubernetes 生态,充分发挥云原生优势。Nacos 3.x 是云原生服务治理的重要升级版本,其 Java SDK 在性能、协议和扩展性上均有显著优化。,为大规模微服务场景提供了更高性能与可靠性。Nacos 3.x Java SDK 通过。原创 2025-03-30 16:26:31 · 1286 阅读 · 0 评论 -
nacos 2.x Java SDK 使用详解
Nacos Java SDK是Nacos为Java应用提供的一个开发工具包,它封装了与Nacos服务进行交互的底层细节,为开发者提供了简洁易用的API接口。通过Nacos Java SDK,Java应用可以轻松地实现配置的动态管理、服务的注册与发现等功能。结合 Spring Cloud Alibaba,能快速实现微服务架构中的服务发现与配置管理。的Java SDK的用法,下面我们来看一下nacos2.x的Java SDK的使用。上全面升级,支持 gRPC 长连接、更灵活的配置管理和增强的服务治理能力。原创 2025-03-30 01:30:06 · 891 阅读 · 3 评论 -
nacos1.x版本Java SKD使用说明
Nacos 1.x Java SDK 虽然功能稳定,但已逐步被 2.x/3.x 取代。在引入依赖后,你需要初始化Nacos的客户端。这通常包括创建一个ConfigService实例,该实例是处理服务配置的主要接口。若需长期维护,应制定迁移计划,逐步升级到新版本 SDK,以利用更高效的 gRPC 协议和增强的治理能力。Nacos 1.x 的 Java SDK 是早期版本的核心客户端库,主要用于实现。尽管 Nacos 2.x/3.x 已推出,但部分遗留系统仍在使用 1.x 版本。Nacos 1.x 客户端。原创 2025-03-30 01:05:06 · 758 阅读 · 0 评论 -
一年又一年,万象更新
同时,我也希望拓展自己的知识面,跨领域学习一些新的技能和知识,如编程、数据分析或者一门新的语言,这些都将有助于提升我的综合竞争力。在新的一年里,我将更加注重时间的管理和目标的设定。同时,我也将努力提升自己的沟通能力,学会更好地倾听他人、表达自己的想法和感受。在未来的日子里,我将继续努力学习和成长,不断提高自己的能力和素质。同时,我也积极学习和借鉴他人的经验和智慧,不断完善自己的人生观和价值观。在这一年里,我渴望在多个方面取得显著的进步,为自己的未来奠定更加坚实的基础。我保持规律的作息时间,注重饮食和锻炼。原创 2024-01-03 23:59:47 · 1056 阅读 · 52 评论 -
敢问路在何方,路在脚下
未来,随着技术的不断更新和进步,运维工程师的需求将会继续增加,但同时也需要不断更新自己的技能和知识,以适应技术的不断变化。在国内,运维工程师是一个非常重要的职业,随着云计算和互联网技术的快速发展,运维工程师的需求也越来越高。同时,运维工程师的职业寿命也很长,因为随着经验的积累和技能的提升,运维工程师可以选择更多的职位和发展方向,比如进入IT架构师、技术总监、CTO等高级职位。未来,随着云计算和大数据技术的进一步发展,运维工程师的需求将会更加旺盛,但同时也需要不断更新自己的技能和知识,以适应技术的不断变化。原创 2023-12-25 23:33:40 · 1120 阅读 · 16 评论 -
Seata使用详解
分布式事务是指参与事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点上。这允许多个独立的事务资源参与到全局的事务中。在分布式事务中,不同开发商开发的事务参与者必须支持一种标准协议,才能实现分布式的事务。这要求在跨异类的事务中识别资源的事务,因此,分布式事务问题也叫分布式数据一致性问题,简单来说就是如何在分布式场景中保证多个节点数据的一致性。分布式事务的产生核心原因在于存储资源的分布性。原创 2023-12-19 23:58:44 · 2114 阅读 · 45 评论 -
RabbitMQ使用指南
RabbitMQ是由Erlang语言开发的,基于AMQP(高级消息队列协议)协议实现的开源消息代理软件。它是一个实现了消息队列的中间件,遵循FIFO原则,用于应用程序之间的通信。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。RabbitMQ在分布式系统开发中应用非常广泛,可以提高系统响应速度、异步处理任务、服务解耦、消除峰值等。原创 2023-12-08 23:45:00 · 742 阅读 · 0 评论 -
低代码你需要了解一下
低代码(Low-Code)是一种软件开发方法,通过最小化手动编码的需求,使开发人员能够更快速地构建和部署应用程序。低代码平台提供了一套可视化的工具和组件,使开发人员可以通过拖放、配置和设置属性来创建应用程序,从而减少从头开始编写大量的代码的工作。低代码平台的主要目标是降低开发应用程序所需的技术复杂度,从而加快开发周期并减少开发成本。这种方法适用于那些需要快速响应业务需求、构建原型、开发内部工具或简化业务流程的项目。原创 2023-12-07 22:13:09 · 997 阅读 · 0 评论 -
pip命令详解
pip是由Ian Bicking在2008年提出的,他将pyinstall重命名为pip。名称pip是首字母缩写词,全称为“Package Installer for Python”。自Python3的3.4版本以及Python2的2.7.9版本开始,pip被直接包括在Python的安装包内,成为了每一个Python用户必备的工具。pip3是Python 3的包管理工具,它用于安装、升级和卸载Python 3的包。原创 2023-12-05 00:55:08 · 2222 阅读 · 6 评论 -
设计模式-适配器模式
适配器模式是一种结构型设计模式,它的作用是将一个类的接口转换成客户端希望的另一个接口。适配器模式可以让原本不兼容的接口之间进行协作,从而让这些接口能够一起工作。目标抽象类:Target,该角色把其他类转换为我们期望的接口,可以是一个抽象类或接口,也可以是具体类。定义Client使用的与特定领域相关的接口。被适配者:Adaptee,原有的接口,也是希望被适配的接口。定义一个已经存在的接口,这个接口需要适配,需要适配别人(要适配者)。适配器:Adapter,将被适配者和目标抽象类组合到一起的类。原创 2023-12-02 15:30:49 · 1214 阅读 · 1 评论 -
Kibana使用指南
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。可以用Kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等,Kibana能够很轻易地展示高级数据分析与可视化。Kibana的简单、基于浏览器的接口可以快速创建和分享实时展现Elasticsearch查询变化的动态仪表盘。此外,安装Kibana非常快,可以在几分钟之内安装和开始探索相关数据,不需要写任何代码,没有其他基础软件依赖。原创 2023-12-01 23:57:59 · 2675 阅读 · 10 评论 -
Logstash使用指南
Logstash是一个开源数据收集引擎,具有实时管道功能。它可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。尽管Logstash的早期目标是搜集日志,现在它的功能已完全不只于此。任何事件类型都可以加入分析,通过输入、过滤器和输出插件进行转换。与此同时,还提供了很多原生编解码工具简化消息处理。Logstash通过海量数据处理和多种多样的数据格式支持延伸了我们对数据的洞察力。集中、转换和存储数据是Logstash的典型用法。输入:采集各种样式、大小和来源的数据。原创 2023-11-30 23:54:57 · 2997 阅读 · 56 评论 -
B+数你需要了解一下
B+树是一种树数据结构,通常用于数据库和操作系统的文件系统中。B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。这种数据结构能够提高数据访问的速度,并且可以有效地降低磁盘I/O操作次数。在B+树中,数据存放的更加紧密,具有更好的空间局部性。因此访问叶子节点上关联的数据也具有更好的缓存命中率。B+树的叶子结点都是相链的,因此对整棵树的遍历只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连,所以便于区间查找和搜索。原创 2023-11-27 23:55:02 · 1047 阅读 · 19 评论 -
B树你需要了解一下
B树(B-tree)是一种自平衡的树,能够保持数据有序,常被用于数据库和文件系统的实现。B树可以看作是一般化的二叉查找树,它允许拥有多于2个子节点。与自平衡二叉查找树不同,B树为系统大块数据的读写操作进行了优化。B树减少定位记录时所经历的中间过程,从而加快存取速度。这种数据结构可以用来描述外部存储,这种数据结构常被应用在数据库和文件系统的实现上。原创 2023-11-26 23:56:34 · 2303 阅读 · 8 评论 -
设计模式-单例模式
单例模式是一种常用的软件设计模式,属于创建类型的一种。单例模式的英文全称是Singleton Pattern。它提供了一种创建对象的最佳方式,该模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一对象的方式,可以直接访问,不需要实例化该类的对象。请注意,虽然单例模式在某些情况下非常有用,但它也有缺点。例如,它没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。原创 2023-11-26 23:24:49 · 1501 阅读 · 1 评论 -
设计模式-开篇
设计模式是一种被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、提高代码的可靠性。设计模式不是可直接转化为代码的完成解决方案,而是描述了如何解决一个问题的经过,可以用于指导开发人员在他们的应用程序中编写代码,从而提高代码的可读性、可维护性和可扩展性。设计模式有多种分类方式。创建型模式:主要用于创建对象。结构型模式:主要用于处理类和对象的组合。行为型模式:主要用于描述类或对象如何交互和怎样分配职责。原创 2023-11-24 23:44:16 · 1541 阅读 · 0 评论 -
二叉查找(排序)树你需要了解一下
二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树,是一种重要的数据结构。若左子树不空,则左子树上所有结点的值均小于它的根结点的值。若右子树不空,则右子树上所有结点的值均大于它的根结点的值。在一般情况下,查询效率比链表结构要高。原创 2023-11-23 00:15:46 · 447 阅读 · 7 评论 -
哈夫曼树你需要了解一下
哈夫曼树(Huffman Tree)是一种特殊的二叉树,也被称为最优二叉树。在计算机科学中,它是由权值作为叶子节点构造出来的一种二叉树。哈夫曼树的特点是,对于给定的n个权值,构造出的哈夫曼树具有最小的带权路径长度(WPL)。具体来说,哈夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码。这个变长编码表是通过评估来源符号出现机率的方法得到的。出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码。这样,编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。原创 2023-11-22 21:40:10 · 931 阅读 · 1 评论 -
完全二叉树你需要了解一下
完全二叉树(Complete Binary Tree)是一种特殊的二叉树,它的定义是:如果设二叉树的深度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。完全二叉树的性质包括:深度为k的完全二叉树,节点数在2k到2k+1−1之间。若根节点编号为1,则第i个节点的编号为i。对于任意一节点i,其左儿子的编号为2i,右儿子的编号为2i+1。如果i不是根节点,它的父节点编号为i/2(向下取整)。原创 2023-11-21 22:44:05 · 3761 阅读 · 3 评论 -
满二叉树你需要了解一下
满二叉树(Full Binary Tree)是一种特殊的二叉树,其中每个节点都有两个子节点或没有子节点。换句话说,满二叉树的每个层级都是完全填满的。这种树结构具有一定的平衡性,其深度和节点数量之间存在明确的关系。在满二叉树中,如果树的深度为d,则节点的总数为2^d - 1。例如,深度为3的满二叉树将包含7个节点(2^3 - 1 = 7)。此外,满二叉树是完全二叉树的一种特例。完全二叉树是指除了最后一层外,其他层的节点都是满的,而且最后一层的节点都靠左边排列。原创 2023-11-21 21:56:09 · 351 阅读 · 1 评论 -
AVL树你需要了解一下
AVL树是一种自平衡二叉查找树,它得名于发明者G.M.Adel’son-Vel’skii和E.M.Landis。AVL树的特点是任何节点的两个子树的高度最大差别为1,因此它也被称为高度平衡树。在AVL树中,每个节点的平衡因子只有-1、0、1三种,通过旋转操作来保持树的平衡。AVL树的平衡因子定义为每个节点的左右子树的高度之差的绝对值。在AVL树中,每个节点的左子树和右子树的高度差不会超过1。因此,AVL树在插入和删除操作时可能需要通过一次或多次旋转来重新平衡树结构。原创 2023-11-21 00:46:07 · 290 阅读 · 2 评论 -
MQTT协议详解
MQTT是一个即时通讯协议,它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。它使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。MQTT是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。在通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。原创 2023-11-21 00:12:48 · 730 阅读 · 1 评论 -
Java21新增特性
Java 21是Java平台的一个新版本,于2023年9月19日由Oracle公司正式发布。这个版本包含了数千个性能、稳定性和安全性更新,以及几十个新功能和增强。其中,15个增强被赋予了自己的JDK增强提案(JEP),涵盖了六个预览功能和一个孵化器功能。Oracle为Java 21提供了至少八年的长期支持,这使得组织能够以最小的维护成本将应用程序更长时间地保持在生产环境中,并可以按照自己的节奏进行迁移。原创 2023-11-20 00:26:18 · 817 阅读 · 0 评论 -
WebSocket协议详解
WebSocket协议是一种在单个TCP连接上进行全双工通信的应用层协议,位于OSI模型的应用层。它允许服务器主动向客户端推送信息,也可以允许客户端主动向服务器发送信息。WebSocket协议的出现主要是为了解决基于HTTP/1.x的Web应用无法实现服务端向客户端主动推送的问题。虽然WebSocket协议在建立连接时会使用HTTP协议,但这并不意味着WebSocket协议是基于HTTP协议实现的。原创 2023-11-19 16:51:30 · 2650 阅读 · 8 评论 -
Thrift协议详解
Thrift协议是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。Thrift通过一个代码生成引擎联合了一个软件栈,来创建不同程度的、无缝的跨平台高效服务,可以使用C#、C++(基于POSIX兼容系统)、Cappuccino、Cocoa、Delphi、Erlang、Go、Haskell、Java、Node.js、OCaml、Perl、PHP、Python、Ruby和Smalltalk。原创 2023-11-19 00:03:37 · 3010 阅读 · 3 评论 -
DHCP协议详解
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。DHCP的分配方式包括自动分配、手工分配和动态分配。DHCP服务器是运行有DHCP服务器端软件的特殊电脑,而普通电脑中都内置有DHCP客户端模块。原创 2023-11-19 00:02:34 · 1100 阅读 · 0 评论 -
HTTP1.0协议详解
HTTP是由蒂姆·伯纳斯·李(Tim Berners-Lee)爵士创造的。他在1989年提出了一个构想,借助多文档之间相互关联形成的超文本(HyperText),连成可参阅的 WWW(World Wide Web,万维网),以帮助远隔两地的研究者们共享知识。在这个构想中,他提出了3项WWW构建的关键技术:HTML, URI, HTTP。因此,蒂姆·伯纳斯·李(Tim Berners-Lee)被公认为是万维网的发明者,互联网之父。HTTP1.0是一种无状态、无连接的应用层协议。原创 2023-11-18 01:51:05 · 2303 阅读 · 13 评论 -
Hessian协议详解
Hessian协议是一种基于二进制的轻量级远程调用协议,用于在分布式系统中进行跨语言的通信。它使用简单的二进制格式来序列化和反序列化数据,并支持多种编程语言,如Java、C#、Python等。Hessian协议相对于其他协议的优势在于其简单性和高效性。它使用二进制进行序列化和反序列化,相对于使用XML或JSON的协议来说,Hessian的消息体更小、传输速度更快。在Java中,可以通过Hessian协议轻松地实现跨网络的方法调用。原创 2023-11-18 00:03:09 · 2058 阅读 · 0 评论 -
Dubbo协议详解
Dubbo协议是一种高性能、轻量级的开源RPC框架,主要设计目的是解决分布式系统中服务调用的一些常见问题,例如服务负载均衡、服务注册中心、服务的远程调用等。它支持多种语言,例如Java、Python、Ruby等,使得各种编程语言之间的服务调用变得更加灵活。原创 2023-11-17 02:13:18 · 1627 阅读 · 6 评论 -
QUIC协议详解
QUIC(Quick UDP Internet Connections)是一种基于 UDP 的传输层协议,由 Google 提出。从协议栈可以看出,QUIC = HTTP/2 + TLS + UDP。它使用 UDP 而不是 TCP 作为传输协议,并且在设计上考虑了提供多路复用和流控制功能。QUIC 旨在提供更快的连接建立速度、更低的延迟和更高的吞吐量,适用于需要低延迟、高吞吐特性的传输场景。原创 2023-11-17 01:12:17 · 2250 阅读 · 2 评论 -
gRPC协议详解
gRPC是一个高性能、开源和通用的RPC(远程过程调用)框架,由Google发起并开发,于2015年对外发布。它基于HTTP/2协议和Protocol Buffers设计,支持多种编程语言(如C++、Java、Python、Go、Ruby、C#、Node.js等)。gRPC的核心思想是基于接口定义语言(IDL)来定义服务,在编译期间自动生成具体的服务端和客户端代码。这种设计使得服务端和客户端可以完全专注于业务,而无需关心通信协议的细节。原创 2023-11-16 01:12:49 · 4695 阅读 · 7 评论 -
HTTP1.1协议详解
HTTP 1.1是一种基于文本的互联网实体信息交互协议,是Web上任何数据交换和客户端-服务器交互的基础。它允许获取各种类型的资源,如HTML文档,并支持在互联网上交换和传输数据。HTTP 1.1定义了客户端如何向服务器发送请求以及服务器如何向客户端返回响应。HTTP 1.1使用请求-响应模型,其中客户端发送一个请求,服务器响应请求并返回数据。请求和响应都采用相同的标准互联网消息格式,包括消息头和消息体。HTTP 1.1支持持久连接,允许在同一个TCP连接中发送多个请求和接收多个响应。原创 2023-11-16 00:02:05 · 5918 阅读 · 0 评论 -
HTTP/2.0协议详解
HTTP/2.0:互联网通信的革新标准随着互联网技术的飞速发展,HTTP协议作为互联网应用最广泛的通信协议,也在不断演进和优化。HTTP/2.0是HTTP协议的最新版本,它旨在提供更高效、更安全、更快速的互联网连接。原创 2023-11-15 00:42:15 · 6303 阅读 · 24 评论 -
IT行业变成了夕阳行业
从2010年左右开始,大众创新,万众创业变成了一个经常看到的词语,在创业潮的带动下,同时刚好赶上了互联网的高速发展,一大批互联网创业公司应运而生,在这样的背景下,IT行业成为当时最为火热的行业,大批非计算机类的专业的毕业生也纷纷加入到了IT行业,一转眼10多年过去了,受到了外部环境的变化,互联网的瓶颈等多方面的因素,IT行业也走入了寒冬,大批的互联网企业退出了市场也造成了大批的IT从业者失业。总之,选择哪个方向取决于你的兴趣、技能和市场需求,建议多了解一些不同的领域和职业发展方向,做出明智的选择。原创 2023-10-29 01:04:23 · 1241 阅读 · 2 评论 -
yum介绍与常用命令
在日常的开发与运维的过程中,yum命令是我们经常使用的一个软件安装与更新的命令,下面我们将常用的一些yum命令进行整理,希望对大家的日常使用提供帮助原创 2022-10-24 22:36:25 · 2418 阅读 · 1 评论 -
mysql中exists的用法详解
前言在日常开发中,用mysql进行查询的时候,有一个比较少见的关键词exists,我们今天来学习了解一下这个exists这个sql关键词的用法,这样在工作中遇到一些特定的业务场景就可以有更加多样化的解决方案语法解释语法SELECT column1 FROM t1 WHERE [conditions] and EXISTS (SELECT * FROM t2 );说明括号中的子查询并不会返回具体的查询到的数据,只是会返回true或者false,如果外层sql的字段在子查询中存在则返回true,原创 2022-05-08 18:19:39 · 56710 阅读 · 49 评论 -
mysql中json类型字段用法
前言mysql从5.7.8版本开始原生支持了JSON类型数据,同时可以对JSON类型字段中的特定的值进行查询和更新等操作,通过增加JSON类型的属性可以大大的提高我们在mysql表中存储的数据的拓展性,无需每次新增字段时都进行表结构的调整,下面我们不深入讲解底层的实现原理,我们主要来梳理一下我们在日常工作中使用实践基本环境mysql版本:8.0.28springboot版本: 2.2.2测试表结构:CREATE TABLE `t_json` ( `id` int unsig原创 2022-04-21 02:38:11 · 5595 阅读 · 7 评论 -
Java技能树测评-祝越来越好
前言最近准备把Java的基础知识重温一下,刚好看到了技能树这个版块,体验了一下,有收获,也有不足,下面就来聊一下我的一些感受,可能不一定对,只是个人的一些小小体验,希望可以帮助产品向着更好的方向发展产品建议建议说明:【我的笔记】可调整的空间太小啦,收到最窄依然会造成中间的内容在一行无法全部显示,在页面上方的时候,中间的内容是没有导航条的,会造成内容无法全部查看,只能借助键盘操作或者是有横向滚动的鼠标才行,整体体验非常差建议说明:练习题的出题人在出题的同时,应该给予答案必要的解释,这样对于初原创 2022-04-20 01:46:10 · 1017 阅读 · 4 评论 -
Homebrew的基本使用与常见异常
Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用关心各种依赖和文件路径的情况,十分方便快捷。Homebrew本身就是一个git仓库,使用homebrew安装软件包时,会自动先下载软件包,然后解压安装。原创 2022-04-17 17:28:13 · 8367 阅读 · 3 评论