自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 nacos注释配置未生效?

NacosValueAnnotationBeanPostPorcessor中有,获取key,是获取的所有注解上的值,而values是enviroment中的属性值。当我们注释掉nacos中的属性时,key依然能取到,但是因为注释的原因value无法取到,nacos直接执行continue逻辑跳过此属性的重新赋值。也就导致了最终属性在spring中没有发生变更。

2024-07-18 17:11:36 131

原创 mybatis 执行流程

二级缓存不太适合,多表连查的情况,先在A表的mapper文件中连表查询B, 当调用B表的mapper文件的更新方法是,并不会触发A表的cash清除, 这时候再去查的时候就查询到了更新前的脏数据。查找出结果以后 还有一个重要的判断就是 ,会去判断缓存的类型 如果是 STATEMENT 类型的就会去清空缓存, 这也是STATEMENT级别的一级缓存无法共享localCache的原因。在没有开启事务的情况下是不会公用一个SqlSession对象的,两次就会创建两次SqlSession对象。

2024-07-16 17:05:12 237

原创 Nacos 配置中心保姆级源码解析(01) 自动刷新

nacos 作为配置中心,其实实现分为两部分,一是位于我们自己服务的客户端, 二是服务端。

2024-07-16 16:50:04 829

原创 RocketMQ

RocketMQ是一款有阿里巴巴开源的分布式的消息中间件,支持事物消息,顺序消息,批量消息,定时消息,消息回溯。中文文档:https://github.com/apache/rocketmq/blob/master/docs/cn/concept.md文档加速:https://gitee.com/rookiestack/rocketmq/blob/master/docs/cn官网:https://rocketmq.apache.org/

2024-06-20 16:06:42 1002

原创 k8s-configMap

解耦,便于应用配置的修改,官网建议保存的数据大小不超过1MiB,超过1Mib的数据建议使用存储卷存储。ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。可以将其用作环境变量、命令行参数或者存储卷中的配置文件。也可以通过命令指定将某个文件内同容写入ConfigMap。ConfigMap 将环境配置信息和。

2024-02-06 15:20:56 759

原创 k8s-sercret

由于创建 Secret 可以独立于使用它们的 Pod, 因此在创建、查看和编辑 Pod 的工作流程中暴露 Secret(及其数据)的风险较小。Kubernetes 和在集群中运行的应用程序也可以对 Secret 采取额外的预防措施, 例如避免将敏感数据写入非易失性存储。Kubernetes 提供若干种内置的类型,用于一些常见的使用场景。针对这些类型,Kubernetes 所执行的合法性检查操作以及对其所实施的限制各不相同。Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。

2024-02-06 15:19:40 1266

原创 kubeAdmin 升级证书

【代码】kubeAdmin 升级证书。

2024-02-05 11:01:20 215

原创 k8s -ingress

k8s中的ingress 其实是指的两个部分,第一个为ingress-controller (nginx) , 另一个为Ingress resource (nginx配置)那么到现在,有了 Ingress 和 Ingress Controller,我们是不是就可以完美地管理集群的进出流量了呢?最初 Kubernetes 也是这么想的,一个集群里有一个 Ingress Controller,再给它配上许多不同的 Ingress 规则,应该就可以解决请求的路由和分发问题了。ingress重写转发路径。

2024-02-05 10:37:45 1403

原创 K8S-Service

将服务映射到 externalName 字段的内容(例如,映射到主名 api.foo.bar.example)。无需创建任何类型代理。通过集群的内部 IP 暴露服务,选择该值时服务只能够在集群内部访问。为了让节点端口可用,Kubernetes 设置了集群 IP 地址,这等同于你请求 type: ClusterIP 的服务。当创建service资源配置了selector时,endpoints 控制器会自动创建 endpoints 资源对象,该资源对象记录了 svc 和 pod 的一一对应关系。

2024-02-05 10:29:46 714

原创 K8S-NFS-StorageClass

K8S中没有内置的NFS的制备器,而定义StorageClass的时候需要指定制备器(Pervisioner),所以需要,先创建NFS的制备器,K8s内置的制备器支持矩阵如下。每个 StorageClass 都有一个制备器(Provisioner),用来决定使用哪个卷插件制备 PV。需要使用外部驱动为 NFS 创建 StorageClass。配置 :spec.template.spec.imagePullSecrets。问题:deployment部署报错从私有仓库拉取镜像报错。

2024-02-01 17:27:33 683

原创 K8S-PV 与PVC

metadata:spec:capacity:#指定访问模式#指定回收策略- hardnfs:path: /tmpmetadata:spec:#指定访问模式#卷模式 Filesystem/Blockresources:requests:metadata:#是否是默认Class,一个集群只有一个DefaultClass#指定制备器#指定回收策略。

2024-02-01 17:19:55 1137

原创 k8s-HPA

HPA可以获取每个Pod利用率,然后和HPA中定义的指标进行对比,同时计算出需要伸缩的具体值,最后实现Pod的数量的调整。PAH属于一种Kubernetes资源对象,它通过追踪分析RC控制的所有目标Pod的负载变化情况,来确定是否需要针对性地调整目标Pod的副本数。: 应用被弹性伸缩的pod对象的特定指标(例如,每个pod每秒处理的事务数)(需自己实现适配器)**两种(被弹性伸缩的pod对象中容器的requests和limits中定义的指标。4.观察deployment 的pod的变化以及PHA的变化。

2024-02-01 17:15:49 655

原创 kubesphere部署k8s-v1.23.10

with-kubesphere version 指定生成配置文件的路径和名字 [(-f | --file) path] 命令示例: 生成配置安装 kubernetes v1.23.10和 kubesphere v3.4.0版本的配置文件 配置文件名为。#创建配置文件 ./kk create config [–with-kubernetes version] [–with-kubesphere version] [(-f | --file) path]3.设置docker 镜像仓库地址。

2024-02-01 16:50:04 904

原创 kubesphere V3.4安装可插拔商店报错

1.通过编辑deoloyment 副本重启 kunectl edit deployment ks-installer -n kubesphere-system。#2.在控制台找到 ks-installer 设置副本为0 ,再设置为1重启。ping 里面的ip是否能正常ping通。

2024-01-18 17:00:19 618

原创 sharding-jdbc 与pageHelper分页报错踩坑

部分sql没报错的原因是pagehepler产生的count 不是子查询。使用pageHeple工具进行分页操作的时候,此方法执行count。

2023-04-13 20:14:45 1502

原创 mysql JSON_SET 遇到的坑

mysql ,json_set

2022-09-13 19:55:04 847

原创 Thread 指定未受检查处理器 Thread.UncaughtExceptionHandler

Thread 方式指定未受检查的异常啥叫为受检查异常呢?定义: 程序运行的时候抛出且没有被程序捕获的异常或者错误。定义自定的线程未受检查的异常处理器public class UEHlogger implements Thread.UncaughtExceptionHandler{ @Override public void uncaughtException(Thread t, Throwable e) { Logger logger = Logger.getAn

2021-12-07 16:21:59 444

原创 JAVA 线程中断之isInterrupted(),interrupt() ,interrupted()

isInterrupted()Thread 方法 :返回会boolean 值,为Thread的中断状态底层是通过调用本地方法实现 。isInterrupted()仅会返回中断状态,不会清除中断标interrupt()无返回值, 会调用nio的方法,以及本地方法...

2021-12-01 09:46:28 594

原创 Timer与ScheduledThreadPoolExecutor

/** * * 定义Timer的任务器 * @author gino * 2021-11-30 */public class TestTask extends TimerTask { private Boolean error; public TestTask(boolean error){ this.error=error; } @Override public void run() { System.out.pri

2021-11-30 13:37:31 241

原创 高并发实战2---手写计算器缓存

对于初级版本(高并发实战1)的提升一级优化不直接缓存计算结果,而是缓存计算任务(future可以阻塞线程),当没有从缓存中读到正在执行计算的任务的时候,直接阻塞等待正在执行的任务计算的结果,然后读取缓存,减少重复的计算顶层类依然不变package com.ljq.mydemo.thread.compute;/** * * 定义计算的接口 *包含一个 用户计算的函数式接口 * @author gino * 2021-11-17 */public interface Computab

2021-11-18 17:50:55 222

原创 高并发实战1---手写计算器缓存

实现思路定义一个用于计算功能的顶级接口 ,在接口类定义,计算的接口具体的计算器 ,都去实现这个接口定义个带有“记忆”功能(缓存)的计算的容器,通过构造方法传递具体的计算器通过ConcurrentHashMap 去缓存计算的入参结果每次计算的时候判断是否有结果已经缓存,有则跳过计算,直接获取上一次的计算结果顶层类:computale 接口, 定义为函数式接口package com.ljq.mydemo.thread.compute;/** * * 定义计算的接口 *包含一个 用户计

2021-11-18 17:37:34 114

原创 用信号量实现一个线程安全的Set

package com.ljq.mydemo.thread.semaphore;import java.util.Collections;import java.util.HashSet;import java.util.Set;import java.util.concurrent.Semaphore;/** * 使用Semaphore 为容器设置 边界值 * * * @author gino * 2021-11-16 */public class BoundHashSet&l

2021-11-16 17:47:36 3719 1

原创 redis之Zset 底层原理

Zset 有两种编码格式 , 一种是ziplist(双向链表的形式), skiplist(跳跃表的形式),Zset会根据相应的规则来选择编码格式,一、ziplist (压缩列表)1.条件 :元素个数小于128个元素的长度小于64ziplist采用的是双向的链表的结构实现, 且是一个特殊的双向链表,为啥特殊呢,因为链表的设计采用了连续的内存空间。2.结构:<zlbytes> <zltail> <zllen> <entry> <entr

2021-09-08 18:43:22 701

原创 ArrayList源码你真的理解了吗

问题相信不少小伙伴,在面试的时候被问过jdk中相关源码的部分, 最近就被问道了关于ArrayList的源码, 上来就是问有没有看过ArrayList的源码,怎么在遍历中移除ArrayList中的元素? ,普通的循环会抛出何种异常,为啥迭代器的方式不会报异常,答案:普通的for循环编译其实会调用Itr的next去获取元素, 会抛出ConCurrentModificationException.方式有两种:方式一: 通过迭代器的方式,ArrayList 内部有一个实现了Itereator

2021-09-07 09:46:57 67

原创 Java将List结构转成树结构

当我们需要从数据库中查出的数据放回至前端展示,而前端需要为树结构时,我们应该避免N+1查询,应该直接查出所有数据,再通过java代码基于内存的方式去将树创建好。具体代码 :案例中的集合分了层, 祖父节点, 父亲节点, 当前节点,而且每个层次的节点都有兄弟节点.public static void main(String[] args) { Person grandfather=new Person("0","1","grandfather"); Person fa.

2021-06-17 15:33:31 587

原创 最新版V1.21.1版k8s,Kubeadm 安装部署

版本以及说明本次部署安装采用的是kubeadm方式部署k8s,kubeadm为最新版本v.1.21.1,docker也是采用最新版本v20.10.7,安装过程中趟过了几个坑特此带大家闭坑。k8s部署中用的docker知识已经命令,默各位有docker基础,本文不做解释,不了解请自行百度。安装过程中最好使用root用户操作。环境准备虚拟机配置,2核2G, 内存最好不要低于1G,低于1G可能会启动不了K8s.修改主机名称(将主机名修改为master)sudo hostnamectl s

2021-06-04 14:37:38 2482 1

原创 Java 动态代理之jdk 动态代理

​ 本身就继承了Proxy 类实现了被代理类实现的接口,因为java是单继承的 ,如果被代理是继承父类而不是实现接口 那便违反了java的单继承规则`public final class $Proxy0 extends Proxy implements Interface { public $Proxy0(InvocationHandler paramInvocationHandler) {\ super(paramInvocationHandler); }Java 动态代理

2021-05-06 18:10:07 219

原创 docker 安装 elasticsearcher 拉取镜像报错

docker 安装 elasticsearcher 拉取镜像报错Head https://registry-1.docker.io/v2/library/elasticsearch/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Felasticsearch%3Apull&service=registry.docker.io: dial tcp: lookup auth.docker.i

2021-01-13 10:10:12 785

原创 将java项目部署到docker容器中运行

1.将项目打成jar包, 通过xftp 上传linux 某目录,此处在/data/app目录下2.在jar包所在的位置创建一个Dockerfile 文件 (保证jar包和Dockerfile 在同一个目录下)2.1创建Dockerfile文件3.创建镜像 4.创建并运行容器5.测试

2021-01-04 19:01:19 11090 7

原创 设计模式之工厂模式

工厂模式完整的代码可以到我的博客里下载简单工厂模式(静态工厂模式)业务实现一个加工生产冰淇淋的业务UML类图核心demopackage FactoryPattern.singelFactory;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class PizzFactory { public static Pizza g

2020-07-10 21:34:32 112

原创 设计模式之原型模式

原型模式案例绵羊的克隆现在有一只原型的羊 tom 年龄 1 颜色白色 要求克隆出和它一样的羊源代码深拷贝与浅拷贝浅拷贝浅拷贝实现package ProtoType;/** * 绵羊对象 * 调用Object.clone()实现对象的复制 * 实现Cloneable 接口 * 用此方式的实现原型模式为浅拷贝 * 即当前的对象的属性拷贝的时候 * 基本数据类型和String是进行的值的传递 * 而类对象和数组等是进行引用的传递(A克隆出B后,A里面的对象属性和B里面的对象属性是

2020-07-10 21:00:01 88

原创 设计模式之单例模式

ell

2020-07-08 20:47:15 115

原创 Linux常用指令干货

这是作者最近在Linux学习中学到的一些常用指令,在此于诸君共享,希望对各位有所帮助,也欢迎和期待和各位大佬一起交流学习。在本文的最后附上了完整的文档可以免费下载一起学习1 运行级别:0:关机 1:单用户 2 :多用户无网络 3 :多用户有网络4 :系统预留给用户的 5 :图形界面 6 :重启查看当前的运行级别 inittab案例:Linux 可以通过 开始 进入安全模式 找回root密码开机 +Enter->输入e ->选中第二个输入e -> 在指令的后面输

2020-07-04 23:19:28 190

原创 高级排序之--快速排序

初入博客,如有不当之处请诸位多多包涵,技术交流为主,如有错误欢迎支持定义快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列,算法的复杂度为O(NlogN)。步骤(1)首先设定一个分界值,通过该分界值将数组分成左右两部分。(.

2020-05-10 15:39:48 146 1

原创 希尔排序

希尔排序希尔排序是对插入排序的改进,通过减少增量的方式(分组),将数据逐步基本有序化,从而提高插入排序的效率,减少插入的次数,也是第一个将突破O(n^2)的算法,但是希尔排序不是一个稳定的算法,最坏的情况的时候算法复杂度,比直接插入排序还要差,当数据量处于中等的时候效率较高,数据量小的时候效率低,。这里采用的是Knuth的间隔序列 h=(h-1)/3package com.yc.Pljq....

2020-05-07 16:33:24 129

原创 java实现huffmanTree以及编码--基础版本

先从思路入手 ,如何构造一颗haffmantree ?首先就要先了解哈夫曼树是怎么构建的,哈夫曼树的构建不是从顶向下的而是自下而上的,即先确定叶子结点最后才生成根节点。第一步:将所有的结点按照权值的大小先排好序如下图所示(可以用优先级队列来实现这个排序的结点,这样每次要取最小的两个结点的时候只要出队就行,插入结点的时候就一个入队的操作)第二步:依次取两个最小权值的结点生成一颗树他们的父节点...

2020-04-27 14:50:22 303

原创 动态规划解决0-1背包问题

先上代码package com.yc.AlgorithmAndAnalyze;/** * 动态规划解决0-1背包问题 * @author 29226 * */public class Knapsack0And1 { public static int []flag=new int [5];//标记数组 /** * f[i,j]=max{f[i-1,j-weght[i]...

2020-04-22 11:22:19 109

原创 有序链表

有序链表的java实现分析话不多说直接上代码分析在大多数的有序数组的使用情况下都可以使用有序链表,且有序列表的性能要优于有序数组主要表现在连个方面1:有序的链表插入速度快 (链表不要移动)2:链表可以拓展到全部有效内存,而数组只能限于一个固定的大小中话不多说直接上代码package com.yc.Link;//节点类public class Link { private in...

2020-04-14 13:04:52 361

原创 spring事务

事务属性的种类: 传播行为、隔离级别、只读和事务超时a) 传播行为定义了被调用方法的事务边界。传播行为意义PROPERGATION_MANDATORY表示方法必须运行在一个事务中,如果当前事务不存在,就抛出异常PROPAGATION_NESTED表示如果当前事务存在,则方法应该运行在一个嵌套事务中。否则,它看起来和 PROPAGATION_REQUIRED 看起来没什么俩样...

2020-04-02 09:27:52 79

原创 关于jvm

什么是JVM?JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码...

2020-04-02 09:14:07 87

DesignPattern.rar

关于我博客里面讲到的一些设计模式的demo,

2020-07-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除