- 博客(153)
- 收藏
- 关注
原创 es单机安装脚本自动化
自动化部署这种做法的意义在于实现 自动化部署 和 减少人为错误,它的优势有很多,主要体现在以下几个方面:提高效率通过自动化脚本来执行部署任务,可以大大缩短部署时间。无需每次都手动执行一系列繁琐的步骤,减少了人力成本。部署脚本一旦编写完成,用户只需提供必要的参数(如变量配置),脚本便会自动化执行,极大提高了工作效率。减少人为错误手动部署容易因为疏忽或者记忆不准确导致配置错误或漏做某些步骤。自动化部署脚本可以避免这些错误,因为脚本是经过验证的,按步骤执行,不会跳过任何重要环节。
2024-12-31 21:55:00
712
5
原创 systemd设置开机自启
Systemd 是系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程。systemd被设计用来改进sysvinit的缺点,它和ubuntu的upstart是竞争对手,预计会取代它们。systemd的很多概念来源于苹果的launchd。创始人Lennart是redhat员工,但systemd不是redhat项目。systemd的目标是:尽可能启动更少进程;尽可能将更多进程并行启动。systemd尽可能减少对shell脚本的依赖。
2024-12-05 23:19:03
1418
2
原创 离线使用k8s部署项目
然后在执行目录下会生成一个tar包 ,将这个tar包下到本地,一会将此tar包放到可以离线的k8s机器上。划到最下边 在这里看到我们配置的镜像加速器地址,说明成功。执行不成功就换刚才的镜像源地址 直到能拉下来为止。docker的安装与完全卸载(亲测可用)然后需要写DockerFile 文件。使用如下命令查看镜像加速器是否起作用。将找到的镜像仓库地址写入。具体内容可以参考此网站。拉下来镜像后执行此操作。你就会得到一个tar包。
2024-10-11 19:36:13
333
原创 部署k8s1.28.2(正常网络环境即可)
k8s要求集群中节点时间必须精确一致,这里直接使用ntp服务从网络同步时间,企业中建议配置内部的时间服务器,优先使用“yum list”确认nptdate服务是否安装若已经安装,则直接配置crontab任务,若本地有ntpdate时钟同步器,则直接与其同步,若可以连接互联网,那么也可以直接与阿里时钟同步器进行时间同步,本实验与阿里时钟同步器进行同步“ntpdate time1.aliyun.com”注意,如果安装了docker就无需安装containerd,docker和containerd选一个装就行。
2024-10-10 19:33:35
1327
原创 内网离线安装k8s 1.27.0(保证安装成功)
一、集群规划及架构(node节点可以有很多个)二、系统初始化准备(所有节点都需要进行操作)1、关闭防火墙2、配置域名解析3、在指定主机上面修改主机名(每台主机上执行自己的那一行)4、禁用swap交换分区(kubernetes强制要求禁用)5、修改Linux内核参数,添加网桥过滤器和地址转发功能加载网桥过滤器模块6、配置ipvs功能。
2024-10-10 18:30:56
1088
原创 rancher创建k8s集群步骤报错:Failed to create fleet-default/master cluster.x-k8s.io/v1beta1, Kind=Cluster for
多看帮助,少走弯路,而且在执行命令的时候要知道执行的大概是什么意思,不然做这件事情毫无意义。
2024-08-31 16:18:22
2127
原创 SpringBoot中这样用ObjectMapper,才够优雅!
通过上面的测试,结论已经很清晰了。所以在Spring中如何正确的使用ObjectMapper不用我再说了吧~
2024-04-08 22:07:08
1271
原创 单体到分布式到微服务
业务驱动着技术发展是亘古不变的道理。最开始的时候,业务量少、复杂度低,采取的技术也相对简单,能够基本满足用户对功能的需求。随着 IT 信息化的普及,更多交易被放到了网络上,增加的信息量和频繁的业务访问就变成了需要解决的问题。因此,逐渐产生了缓存、集群等技术手段,同时对业务扩展性和伸缩性的要求也变得越来越高。高并发、高可用、可伸缩、可扩展、够安全一直都是架构设计所追求的目标。下面我们来看一下架构设计经历了哪些阶段,以及每个阶段分别解决了哪些问题,又引出了哪些新问题。1、访问人数有限2、基本没有高并发的特性
2024-04-05 21:36:34
880
原创 项目实战梳理,一条请求如何工作拿到数据
纵观这整个流程,我们可以知道一个请求过来以后要经过怎么样的处理,其实从底层来说,我们开发一个软件,无非就三方面,存数据,查数据,处理数据,纵观整个图,用户带着数据来了,用户带着数据走了,用户来的时候需要进行校验,验证身份,于是有了校验的一系列东西。
2024-03-29 09:29:51
893
原创 ThreadLocal和Synchronized的区别
ThreadLocal英文翻译过来就是:线程本地量,它其实是一种线程的隔离机制,保障了多线程环境下对于共享变量访问的安全性。看到上面的定义之后,那么问题就来了,ThreadLocal是如何解决共享变量访问的安全性的呢?其实ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。由于副本都归属于各自的线程,所以就不存在多线程共享的问题了。便于理解,我们看一下下图。
2024-03-28 22:00:00
938
原创 websocket
WebSocket 是一种在单个TCP连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。(维基百科)WebSocket 本质上一种计算机网络应用层的协议,用来弥补 http 协议在持久通信能力上的不足。WebSocket 协议在2008年诞生,2011年成为国际标准。现在最新版本浏览器都已经支持了。
2024-03-28 11:53:56
1470
原创 CIM搭建实现发送消息的效果
该框架是基于主流的Netty框架(Netty的强大已无需多言了),能够保证稳定高效的连接,而且断线重连机制支持的也很好。易于扩展和使用,并完美支持集群部署支持海量链接,目前支持websocket,android,ios,桌面应用,系统应用等多端接入持,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用,WEB应用即时消服务。用时7年 基于CIM的项目已经运行在全国各个地方,包括上市公司,各地政务系统,警务系统等服务于上百家客户。
2024-03-28 11:04:34
629
1
原创 跨域问题经典解决方法
当一个请求的url的协议、域名、端口三者只要有一个与当前页面的url不同则会出现跨域问题。解决跨域问题的方法有多种,以下是一些常见的解决方案:代理服务器:在前端服务和后端接口服务之间架设一个中间代理服务,该代理服务的地址与前端服务一致。这样,代理服务与前端服务之间由于协议、域名、端口三者统一,不存在跨域问题,可以直接发送请求。同时,代理服务与后端服务之间由于不经过浏览器,没有同源策略的限制,也可以直接发送请求。通过这种方式,可以通过中间代理服务器做接口转发,解决跨域问题。
2024-03-14 09:41:31
2635
原创 jvisualvm保姆级教程
这其中还有很多点解释得不够底层,后续我会继续补充,如为什么有两种方式,优势利弊都是什么,还有每一步的操作都代表了什么,版本之间的关系如何,这些问题我们都要心知肚明。我们需要注意:启动和配置:Java VisualVM通常位于JDK安装目录的bin目录下。在启动后,它会在左侧栏目列出所有运行中的Java进程。确保你选择了正确的进程进行监控。插件管理:Java VisualVM支持丰富的插件来增强其功能。你可以通过菜单栏的“工具”->“插件”来查看和管理已安装的插件。
2024-03-11 21:36:33
6194
原创 exe4j将java项目打包为exe包(无需每台机器上安装jdk)
将java项目打成exe包的好处有很多:便捷性:将Java程序打包成exe文件后,用户可以直接在Windows操作系统上双击运行,而无需通过命令行或集成开发环境(IDE)来运行。这大大简化了程序的启动和使用过程。兼容性:虽然Java本身是跨平台的,但某些计算机可能没有安装Java环境。exe文件可以在没有安装Java环境的计算机上运行,只要操作系统是Windows即可。因此,将Java程序打包成exe文件可以方便地将程序分享给其他人使用,而无需担心他们是否有适当的Java运行环境。
2024-02-23 19:50:56
3388
5
原创 两种动态代理(可以看到代理类的样子,方便理解)
自定义注解 MyTransactionAnnotationMyTransaction类@Component@Slf4j@Autowired/*** 开启事务,并配置默认的事务传播机制* @return*/log.info("事务开启成功");/*** 事务提交*/log.info("事务提交成功");/*** 事务回滚*/log.info("事务回滚成功");MyTransactionAop类@Slf4j@Aspect@Component@Autowired。
2024-02-23 00:06:19
483
原创 装饰模式学习
1、书上的超人是谁?是ConcreteComponent类的子类还是和这个类是同一层级的???2、图上的聚合关系是如何进行体现的3、哪里叫内部组装?4、实现和使用分离式如何体现的呢???
2023-11-29 20:08:57
665
原创 享元模式学习
可以极大减少内存中对象的数量,使得相同或相似对象在内存中只保存一份,从而可以节约系统资源,提高系统性能。享元模式的外部状态相对独立,而且不会影响其内部状态,从而使得享元对象可以在不同的环境中被共享。享元模式的主要缺点如下:享元模式使得系统变得复杂,需要分离出内部状态和外部状态,这使得程序的逻辑复杂化。为了使对象可以共享,享元模式需要将享元对象的部分状态外部化,而读取外部状态将使得运行时间变长。
2023-11-20 09:54:36
443
原创 桥接模式学习
这个桥接模式最深刻的一个点是:将源码定义好的关系修改为运行时在客户端中指定关系。解开源码定义好的类之间的耦合,变成运行的时候才让类之间耦合起来。这样我现在如果想要增加一个功能,比如音乐播放器,那么只有增加这个类就可以了,不会影响到其他任何类,类的个数增加也只是一个;如果是要增加S品牌,只需要增加一个品牌的子类就可以了,个数也是一个,不会影响到其他类。这显然符合开放-封闭原则。而这里用到的合成/聚合复用原则是一个很有用处的原则,即优先使用对象的合成或聚合,而不是继承。
2023-11-20 09:32:35
316
2
原创 sleuth+zipkin 使用
Sleuth 和 Zipkin 是两个与分布式系统跟踪和监控相关的工具,它们通常与Spring Cloud和微服务架构一起使用。下面是对它们的总结:Sleuth 是一个分布式系统的跟踪解决方案,特别是在微服务架构中。它是Spring Cloud生态系统的一部分,可以与Spring Boot轻松集成。Sleuth 的主要目标是为系统中的每个请求生成唯一的标识符,并记录请求在各个微服务之间的传递情况。它会生成并注入跟踪标识符,使得开发人员能够在不同的微服务之间追踪请求,并了解请求的处理时间。
2023-09-22 10:47:49
843
2
原创 打败全国百分之99.99的模板方法模式讲解
定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方法是的子类可以不改变一个算法的结构即可重定义改算法的某些特定步骤。从版本1开始,我们一步步增加灵活性,多维度思考,主要围绕复用扩充维护三方面考虑,代码越来越灵活。
2023-09-15 09:50:12
355
原创 【低代码】手写模板根据数据库表自动生成后端Controller Service Dao层增删改查相关代码
随着科技不断演进,我们正逐渐迈向一个前所未有的时代。代码的自动化正成为现实,让人们不得不重新思考其在创造和创新中的角色。过去,编写代码是实现数字化愿景的关键,但随着人工智能和自动化工具的崛起,代码编写变得更加智能、高效,甚至开始自我完善。现在要求对一个绩效平台-福分按照这种思路进行重构。以下是一些可以实现这种功能的工具:MyBatis Generator 可以根据数据库表结构生成基本的 CRUD(增删改查)操作,包括实体类、Mapper 接口和 XML 配置文件。你可以配置生成的方式以及自定义查询方法。Sp
2023-09-01 00:15:00
1008
原创 深入理解sql:进阶版
做LeetCode题目有许多好处,特别是对于准备面试、提升编程技能和深化计算机科学知识的人来说。以下是一些可能的好处:算法与数据结构掌握:LeetCode题库涵盖了各种经典的算法和数据结构问题,通过解决这些问题,你可以加深对各种常见算法和数据结构的理解和掌握。编程技能提升:LeetCode的题目要求你在一定的时间内用有效的代码解决问题,这可以帮助你提高编写高效、优雅代码的能力,培养解决问题的思维方式。
2023-08-31 08:46:09
1161
原创 设计模式之策略模式
策略模式(Strategy Pattern)是一种行为型设计模式,它允许在运行时选择算法的不同实现,并将其封装在独立的策略类中。这样可以使得算法的变化独立于使用它们的客户端。策略模式通过定义一系列算法,然后将其封装在各自的类中,使得这些算法可以相互替换,以满足不同的需求,同时不影响客户端的代码。策略模式的主要参与者包括:Context(上下文):上下文是客户端与策略之间的桥梁。它持有一个策略对象的引用,并在运行时切换不同的策略。上下文根据不同的情况或条件选择适当的策略进行调用。
2023-08-07 10:25:29
1292
1
原创 一文详解桶排序
桶排序适用于对整数或浮点数等数值型数据进行排序。它可以在特定范围内的数据排序中表现得非常高效,特别是在数据分布相对均匀的情况下。当涉及到对大量数据进行排序时,桶排序是一种高效的排序算法。它的好处包括以下几点:高效稳定:桶排序是一种稳定的排序算法,意味着在排序过程中相等元素的相对位置保持不变。这在某些应用场景中非常重要,例如按照多个属性进行排序时,需要保持其中一个属性的顺序。线性时间复杂度:在特定情况下,桶排序可以实现线性时间复杂度O(n),其中n是要排序的元素数量。
2023-08-02 11:25:28
744
原创 深入理解 SQL:从基本查询到高级聚合
LIMIT 1SQL是一种强大且灵活的语言,它能够帮助我们轻松地管理和分析数据库中的数据。了解基本查询、过滤、聚合以及联结多个表等操作,将使您在应用开发和数据分析领域更具优势。随着不断练习和深入学习SQL,我已经驾轻就熟了。你也试试吧。
2023-07-31 19:42:37
838
原创 手写openFeign
总的来说,OpenFeign简化了基于RESTful的HTTP请求的创建和使用过程,帮助你构建更加简洁、可维护、可扩展的微服务应用。与Spring Cloud集成:OpenFeign是Spring Cloud的一部分,因此与Spring Cloud的其他组件(如Eureka、Hystrix等)无缝集成,形成完整的微服务生态系统。整合服务发现:OpenFeign可以与Eureka等服务发现组件集成,使得你可以通过服务名来访问其他微服务,而无需硬编码服务的具体地址。被调用方和应用级别的被调用方一样。
2023-07-31 09:13:31
1361
3
原创 synchronized 关键字
非静态方法的同步;静态方法的同步;代码块。非静态方法的同步:非静态方法的同步是针对实例对象的,即在同一时间内只允许一个线程访问该实例对象的同步方法。静态方法的同步:静态方法的同步是针对类的,即在同一时间内只允许一个线程访问该类的静态同步方法。代码块:synchronized关键字还可以用于代码块,这时候需要指定一个对象作为锁。在同一时间内,只允许一个线程进入该代码块执行。
2023-07-26 11:03:20
189
原创 一文彻底搞懂序列化和反序列化
Redis(Remote Dictionary Server)是一种开源的高性能键值存储数据库,它也被称为数据结构服务器,因为它支持多种灵活的数据结构。Redis以内存中的数据结构为基础,提供了快速、高效的数据存储和访问能力。它可以用作数据库、缓存、消息代理和排行榜等多种用途。Redis将数据存储为键值对,其中键是唯一的标识符,而值可以是字符串、哈希、列表、集合、有序集合等各种数据结构。(因为我们是面向对象开发,所有就要使用内存数据库啦,因为要把对象存取来哦)
2023-07-23 21:20:26
7841
原创 并发 并行 同步 异步 你分清了吗
在多线程编程中,分工和同步是两种重要的策略,通过合理地分工和同步,可以最大程度地发挥多线程的并发性和并行性,提高程序的执行效率和性能。然而,分工和同步也需要谨慎使用,避免出现死锁、饥饿等并发问题。因此,在多线程编程中,需要综合考虑业务逻辑和数据访问方式,合理选择合适的分工和同步策略,从而确保多线程程序的正确性和性能。
2023-07-22 10:18:49
510
2
原创 实现异步编程的方式
在同步操作中,我们执行到 发送短信 的时候,我们必须等待这个方法彻底执行完才能执行 赠送积分 这个操作,如果 赠送积分 这个动作执行时间较长,发送短信需要等待,这就是典型的同步场景。实际上,发送短信和赠送积分没有任何的依赖关系,通过异步,我们可以实现赠送积分和发送短信这两个操作能够同时进行,比如:这就是所谓的异步,是不是非常简单,下面就说说异步的几种实现方式吧。异步编程是一种强大的编程技术,它可以在处理并发任务时显著提升性能和响应性。
2023-07-22 10:13:12
488
原创 汉诺塔问题
关于解决汉诺塔问题有很多方法,上边讲了递归算法实现。迭代方法:可以使用循环结构来代替递归,实现迭代解决汉诺塔问题。这种方法通常使用栈或队列来模拟递归调用的过程,并在每次迭代中更新状态,直到问题得到解决。位运算:汉诺塔问题还可以使用位运算来解决。通过将圆盘数量表示为二进制数,可以利用位运算来确定每个圆盘应该放置在哪个柱子上。这种方法对于大规模的汉诺塔问题尤其有效。数学公式:汉诺塔问题有一个数学上的解法。对于n个圆盘,最少需要移动2^n - 1次。
2023-07-19 10:45:50
4031
3
原创 手写反射实现读取自定义注解中的属性值
在Java中,注解(Annotation)是一种用于提供元数据的特殊标记。它可以应用于类、方法、字段等程序元素上,以提供关于这些元素的额外信息。注解本身不会直接影响程序的执行,但可以被编译器、工具和框架等处理,以实现特定的行为或功能。// 定义一个自定义注解// 使用自定义注解// 方法体 } }// 解析注解Class
2023-07-09 22:11:20
1464
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人