- 博客(77)
- 资源 (3)
- 收藏
- 关注
原创 Java线程池动态内存队列思路
[Pasted image 20240730174504.png]]第一行是调用 refresh 方法,也就是对 maxAvilable 这个参数进行重新赋值,这个参数代表的意思是当前还可以使用的 JVM 内存。这个类从命名上也看得出来,也是一个 LinkedBlockingQueue,但是它的限定词是 MemoryLimited,可以限制内存的。看方法名称你也知道了,get 这个 object 的 size,这个 object 就是方法的入参,也就是要放入到队列里面的元素。
2024-07-30 17:58:55 964
原创 MySQL基础架构详解
我们学习东西,都不应该是先去了解细节,而是应该窥其全貌,这样才能从高纬度去理解问题,同样我们学习mysql也是一样的,我们应该先了解整个mysql架构,及来龙去脉,才能更好的掌握它。下面我们开始深入浅出的方式了解mysq基础架构知识。
2023-11-08 19:04:57 863
原创 K8s集群部署最新Jenkins 2.387.1
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。在Devops时代Jenkins有着不可缺失地位,也体现了Jenkins的亮点,废话不多说,我们进入在k8s环境下安装最新的Jenkins。
2023-07-08 16:40:51 1637 1
原创 Kubernetes 1.27 版本基于(haproxy+keepalived)部署高可用集群
在两台Haproxy的主机上分别运行着一个Keepalived实例,这两个Keepalived争抢同一个虚IP地址,两个Haproxy也尝试去绑定这同一个虚IP地址上的端口。显然,同时只能有一个Keepalived抢到这个虚IP,抢到了这个虚IP的Keepalived主机上的Haproxy便是当前的MASTER。注意:如果不加最后的–cri-socket unix://var/run/cri-dockerd.sock,会报错。这里需要使用你01节点初始化成功后的命令,以下是我集群的,需要注意注意!
2023-07-02 18:56:59 1054
原创 Kubernetes集群搭建(高可用)附全自动脚本
clustercluster是 计算、存储和网络资源的集合,k8s利用这些资源运行各种基于容器的应用。mastermaster是cluster的大脑,他的主要职责是调度,即决定将应用放在那里运行。master运行linux操作系统,可以是物理机或者虚拟机。为了实现高可用,可以运行多个master。nodenode的职责是运行容器应用。node由master管理,node负责监控并汇报容器的状态,同时根据master的要求管理容器的生命周期。node运行在linux的操作系统上,可以是物理机或者是虚拟机。
2023-04-01 21:17:30 2109
原创 代码命名规范是一种责任也是一种精神(工匠精神)
代码命名规范是编程中非常重要的一个方面,它直接关系到代码的可读性、可维护性和可扩展性。下面是一些代码命名规范的美:可读性:良好的代码命名规范可以使代码更易于阅读和理解,这可以帮助其他开发人员更快地理解代码,并且减少错误和调试的时间。可维护性:良好的命名规范可以使代码更容易维护,因为更好的命名可以帮助开发人员更快地找到需要修改的代码块,同时减少了修改代码时出现的错误。可扩展性:好的命名规范可以帮助代码更容易扩展,因为它们可以使添加新功能和修改代码更加容易。
2023-03-08 17:25:17 2799 2
原创 JUC编程之锁详解
Juc简称是并发包的简写。在jdk1.5之后,并发包新增了Lock接口,以及很多Lock锁的实现类用来实现锁的功能,Lock锁提供了和Synchroized类似的功能,要手动加锁和释放锁。
2022-11-02 17:51:38 332
原创 SpringBoot服务器压测对比(jetty、tomcat、undertow)
jetty、tomcat、undertow1. 概述2. 性能指标3. 测试环境4. Tomcat NIO5. Jetty6. Undertow7.总结1. 概述在 Spring Boot 中,内置了三种 Servlet 容器:Tomcat、Jetty、Undertow ,也就是本文的三位主角。实际生产中,绝大多数情况,使用的都是 Tomcat ,可能很多人,初始学习的都是 Tomcat ,比较偶尔听到 Jetty ,非常小众知道有 Undertow 这个容器。那么,抛出他们的具体实现不说,我们来一起
2022-05-06 17:10:41 3813 1
原创 基于containerd容器部署k8s集群(v1.23.1)
基于containerd容器部署k8s集群一、简介这里使用新的容器技术替换传统的docker容器,使用containerd来安装新版的K8S。二、环境准备2.1资源规划主机名ip内核版本master10.211.55.43.10.0-693.el7.x86_64最小化centos7.4.1708node110.211.55.53.10.0-693.el7.x86_64最小化centos7.4.1708node210.211.55.63.10.0-
2022-02-10 16:29:50 3041 2
原创 快速部署高可用Kubernetes(K8s)集群
快速部署高可Kubernetes集群一、前置条件1.1 工具准备1.1.1 安装部署自动化运维工具(Ansible)1.2 环境准备二、系统架构2.1 架构需求准备2.3 架构图三、部署方式(二选一)3.1 脚本一键部署(依赖Ansible工具)3.1.1 配置ansible工具hosts3.2 手动部署四、keepalived + haproxy 搭建高用集群4.1 安装haproxy keepalived4.2 初始化k8s集群4.3 部署CNI网络插件五、部署 Dashboard UI5.1 安装Da
2022-01-09 19:36:00 806
原创 手撸设计模式之-组合模式
手撸设计模式之-组合模式一、组合模式模式介绍1.1 定义1.2 组合模式结构1.3 组合模式UML1.4 代码实现二、组合模式场景2.1 场景介绍2.2 场景描述图2.4 代码实现2.5 组合模式优点2.6 组合模式缺点三、总结一、组合模式模式介绍1.1 定义组合(Composite Pattern)模式的定义:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。
2021-12-03 15:12:19 225
原创 手撸设计模式之-建造者模式
手撸设计模式之-建造者模式一、建造者模式介绍1.1 定义1.2 建造者模式结构1.3 建造者模式UML1.4 代码实现二、建造者模式场景2.1 场景介绍2.2 场景描述图2.4 代码实现2.5 建造者模式优点2.6 建造者模式缺点三、总结一、建造者模式介绍1.1 定义建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。他是将一个复杂的对象分解为多个简单的对象,然后一步步构建成一个完整的对象,它将变与不变相分离,
2021-11-26 14:28:34 522
原创 手撸设计模式之-委派模式
手撸设计模式之-委派模式一 、委派模式介绍1.1 定义1.2 委派模式结构1.3 委派模式UML结构图1.4 委派模式代码实现二、委派模式场景2.1 场景定义2.2 场景描述图2.4 MVC委派模式核心源码截图2.3 委派模式场景UML结构图2.3 委派模式场景代码实现2.4 委派模式优点2.5 委派模式缺点三、总结一 、委派模式介绍1.1 定义在23种设计模式中不包含委派模式(delegate),但是在很多框架中都大量使用委派模式,比如Spring,Mybatis等框架。委派模式基本作用就是负责
2021-11-15 18:04:40 1486
原创 手撸设计模式之-状态模式
手撸设计模式之-状态模式一 、状态模式介绍1.1 状态模式定义1.2 状态模式结构:1.3 UML结构图1.4 状态模式代码实现二、状态模式场景2.1 场景定义2.2 场景描述图2.3 场景代码实现2.4 状态模式优点2.5 状态模式缺点三、总结一 、状态模式介绍1.1 状态模式定义状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。当一个对象内部状态发生改变时,允许改变对象的行为,这个对象看起来可以说是修改了其
2021-11-10 15:14:25 660
原创 阿里云-ECS云服务器跨地域部署k8s集群
阿里云-ECS云服务器跨地域部署k8s集群一 、背景介绍二、环境准备2.1 ECS云服务资源清单2.2 K8s软件列表三、阿里云ECS服务器网络问题3.1 问题阐述3.2 解决方案四、服务节点调整(master,node1,node2)4.1 关闭firewalld防火墙,并安装设置Iptables规则为空4.2 调整内核参数4.3 关闭 swap4.4 关闭 selinux4.3 调整服务器时区4.4 关闭邮件服务4.5 设置rsyslogd和systemd journald4.6 ipvs前置条件准备
2021-11-08 15:32:47 3854 2
原创 手撸设计模式之-模板方法模式
手撸设计模式之-模板方法模式一 、模板方法模式介绍1.1 模板方法模式定义1.2 模板方法模式结构1.3 模板方法模式UML图1.4 模板方法模式代码实现二、模板方法模式场景2.1 场景定义2.2 场景描述图2.3 场景代码实现2.4 模板方法模式优点2.5 模板方法模式缺点三、总结一 、模板方法模式介绍1.1 模板方法模式定义义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。通俗点的理解就是 :完成一件事情,有固定的数个步骤,
2021-11-05 12:02:02 449
原创 手撸设计模式之-策略模式
手撸设计模式之-策略模式模式一 、策略模式模式介绍1.1 策略模式的定义1.2 策略模式的结构1.3 策略模式UML图1.3 策略模式代码实现二、策略模式业务场景:2.1 业务场景定义2.2 业务场景描述图2.3 策略模式场景代码实现2.4 策略模式优点2.5 策略模式缺点三、总结一 、策略模式模式介绍1.1 策略模式的定义定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。可以实现委派给不同的对象对这些算法进行管理。举个场景:在我们日常出行
2021-11-04 22:31:09 400
原创 手撸设计模式之-观察者模式
手撸设计模式之-观察者模式一 、观察者模式介绍1.1 定义1.2 观察者模式结构1.3 观察者模式UML结构图1.4 观察者模式代码实现二、观察者模式场景2.1 场景描述2.2 场景模拟2.3 代码案例实现2.4 优点2.5 缺点三、总结一 、观察者模式介绍1.1 定义当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。举例:观察者一般可以看做是第三者,比如在学校上自习的时候,大家肯定都有过交头接耳
2021-11-03 14:51:20 143
原创 手撸设计模式之-责任链模式
手撸设计模式之-责任链模式一 、责任链模式介绍1.1 定义1.2 责任链模式UML结构图1.3 责任链模式结构详细1.3 用例代码实现二、责任链模式应用场景:2.1 场景概述2.2 场景模式图2.3 场景代码实现2.4 优缺点三、总结一 、责任链模式介绍1.1 定义责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对
2021-11-02 16:04:44 388
原创 手撸设计模式之-代理模式
手撸设计模式之-代理模式一 、代理模式介绍1.1 定义1.2 代理模式分类1.3 静态代理实现1.4 动态代理实现1.4.1 Jdk代理(基于接口代理)1.4.2 Cglib动态代理 (基于实现类代理)二、代理模式应用场景一 、代理模式介绍1.1 定义代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。比如给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通
2021-11-01 15:11:15 385 1
原创 手撸设计模式之-享元模式
手撸设计模式之-享元模式一 、享元模式介绍1.1 定义1.2 享元模式的原理1.2 享元模式的结构1.3 代码实现二、享元模式应用场景2.1 场景介绍2.2 使用方法2.3 代码实现2.4 享元模式优缺点三、总结四、其他一 、享元模式介绍1.1 定义享元(Flyweight)模式的定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。享元模式的主要优点是:相同对象只要保存一份,这降低了系统中对象
2021-10-27 17:48:31 173
原创 手撸设计模式之-外观模式
手撸设计模式之-外观模式一 、外观模式介绍1.1 定义1.2 原理图:1.3 模式的结构1.4 代码演示二,适配模式模式应用场景2.1 场景概述2.2 实例概况2.3 代码实战三、优缺点3.1优点3.2 缺点四、总结一 、外观模式介绍1.1 定义外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。系统
2021-10-26 18:25:19 150
原创 手撸设计模式之-适配器模式
手撸设计模式之-适配器模式一 、适配器模式介绍1.1 定义1.2 生活场景1.3 角色1.4 适配器模式UML结构图1.5 代码案例二,适配模式模式应用场景2.1 场景介绍2.3 代码实践三、优缺点3.1 适配器模式三、总结一 、适配器模式介绍1.1 定义我喜欢的样子你都有 !你喜欢的样子我有没有 !没有的话,我送你个适配器,好吗 !将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。——《设计模式:可复用面向对象软件的基础》
2021-10-25 20:15:52 371
原创 手撸设计模式之-装饰器模式
手撸设计模式之-桥接模式一 、装饰器模式介绍1.1 装饰器模式的目的1.2 优缺点1.3 应用场景1.4 原理设计1.5 UML Demo用例二,装饰器模式应用场景2.1装饰器模式模型结构2.1 案例代码实现三,总结一 、装饰器模式介绍装饰器模式主要是对现有的类和对象进行包装和封装,以期望不改变其类对象及其类定义的情况下,为对象添加额外的功能,是一种对象结构模式,需要注意的是,该过程是通过调用被包裹之后的对象完成功能添加的,而不是直接修改现有的对象的行为,相当于加了中间层,符合软件开发原则里面的开闭原
2021-10-25 11:46:27 400
原创 手撸设计模式之-桥接模式
手撸设计模式之-桥接模式一 、桥接模式介绍二、桥接模式的应用2.1 何时使用2.2 方法2.3 优点2.4 缺点2.5 使用场景2.6 应用实例2.7 注意事项三、桥接模式的实现3.1 手机品牌抽象类3.2 软件抽象类3.3 各类手机品牌3.4. 各类手机软件3.5 测试用例总结:一 、桥接模式介绍桥接模式,又叫桥梁模式,顾名思义,就是一座 “桥”,那什么是桥呢?比如我们下面会举的例子,手机又手机品牌和手机游戏等等,每个手机品牌都有多款游戏,那是不是二者之间就是聚合关系了,这是合成/和聚合复用的原则体
2021-10-22 16:16:31 185
原创 手撸设计模式之-原型模式
手撸设计模式之-原型模式原型模式场景介绍原型模式之浅度克隆原型模式之深度克隆原型模式场景介绍场景一:在我们开发过程中你一定遇见过getter和setter赋值操作。这样虽然看过去很清晰,但是背地里是一种纯属体力劳动的骚操作。那么接下来原型模式可以帮我们解决这种大幅度getter和setter的操作。原型模式(Prototype Pattern)是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式主要适用于以下场景:1、类初始化消耗资源较多。2、new 产生的一个对象需要非
2021-02-15 13:30:28 247
原创 手撸设计模式之-工厂模式
手撸设计模式之-工厂模式工厂模式的历史由来简单工厂模式工厂方法模式抽象工厂模式总结工厂模式的历史由来在现实社会上我们都知道,有一种企业叫工厂,在原始社会自给自足(没有工厂)、后来通过迭代进化到农耕文化社会(简单工厂,民间酒坊)、工业革命社会出现了流水线(工厂方法,自产自销)、现代产业链代工厂(抽象工厂,富士康)等。下面我开始由简到繁以次介绍相关工厂。简单工厂模式简单工厂(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类的实例对象。简单工厂适用于工厂类
2021-02-15 12:48:52 775 2
原创 手撸设计模式之-单例模式
手撸设计模式之-单例模式单例模式应用场景饿汉式单例懒汉式单例双重检验锁单例Java机制单例模式(性能最优)注册单例ThreadLocal 线程单例总结单例模式应用场景单例模式(Singleton Pattern)是指确保一个类在单线程和多线程情况下绝对只有一个实例,并且提供一个全局的访问点。单例模式是创建型模式。单例模式在现实生活中也很广泛。比如:公司CEO、CTO、都是单已存在的,是常见的单例模式。在J2EE标准中,ServletContext、ServletContextConfig等。在Spri
2021-02-14 21:43:18 909 3
原创 很全的Redis经典应用场景
Redis经典应用场景1、热点数据的缓存2、限时业务的运用3、计数器相关问题4、排行榜相关问题5、分布式锁6、延时操作7、分页、模糊搜索8、点赞、好友等相互关系的存储9、队列1、热点数据的缓存由于redis访问速度块、支持的数据类型比较丰富,所以redis很适合用来存储热点数据,另外结合expire,我们可以设置过期时间然后再进行缓存更新操作,这个功能最为常见,我们几乎所有的项目都有所运用。2、限时业务的运用redis中可以使用expire命令设置一个键的生存时间,到时间后redis会删除它。
2020-12-07 20:23:40 805
原创 数据解决统计10天内每一天数据量,不存在当天补0操作
引入问题mysql查询最近7天的数据,发现如果当天数据没有在根据创建数据的时间字段分组会自动忽略,这里导致前端显示非常不友好,问题效果如下图:解决方案思路一: 可以在自己的程序中做额外的补零处理思路二: 构建一个最近七天的结果集,然后和查询的结果集合做left join(本文采用第二种方式)注意:使用ifnull函数可以讲NULL的字段自动设置为0案例SQLSELECT a.click_date, ifnull( b.count, 0 ) AS count FROM (
2020-11-13 14:17:07 837
原创 SpringCloud使用(Docker)Zookeeper作为注册中心(UnknownHostException错误)
1.错误异常Thu Sep 10 10:53:41 CST 2020There was an unexpected error (type=Internal Server Error, status=500).I/O error on GET request for “http://cloud-zk-provider/payment”: cloud-zk-provider; nested exception is java.net.UnknownHostException: cloud-zk-pro
2020-09-10 11:05:34 1118
转载 JWT生成token及过期处理方案
业务场景在前后分离场景下,越来越多的项目使用token作为接口的安全机制,APP端或者WEB端(使用VUE、REACTJS等构建)使用token与后端接口交互,以达到安全的目的。本文结合stackoverflow以及本身项目实践,试图总结出一个通用的,可落地的方案。基本思路单个tokentoken(A)过期设置为15分钟 前端发起请求,后端验证token(A)是否过期;如果过期,前端发起刷新token请求,后端设置已再次授权标记为true,请求成功 前端发起请求,后端验证再次授权标记,如果
2020-08-17 10:13:14 7861
原创 SpringBoot2.x整合Redis实战应用场景(1)
SpringBoot2.x整合Redis实战应用场景(1)概述redis相信你看到我这一篇文章和demo之前,相信你对Redis也有大概的认识了,所以本demo以本文代码基于SpringBoot2.0整合Redis自定义注入模板操作Bean组件。废话不多说,下面我们开始编写相关demo案例。一导入相关依赖 <dependency> ...
2020-01-18 21:34:28 714
原创 LayUI关于radio回显问题
问题引入:在很多增删改查系统中会遇到Radio回显问题!下面提供两种解决方案一备注: 需要回显的数据不再后台系统传输对象中,需要而外查询出进行回显处理。比如:下面需要回显一个用户的角色案例:<input type="text" id="roleId" name="roleId" style="display:none;"/> <div class="layui...
2020-01-04 19:50:15 5743 5
dubbo-admin-0.1.jar
2019-10-27
Hex-Editor64.zip
2019-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人