- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 Service Mesh
本质:一种 “可观测、可控制、可安全通信” 的微服务通信基础设施,不侵入业务代码,是 “关注点分离” 思想的极致体现。核心组件数据平面(Data Plane):由 Sidecar 代理(如 Envoy、Istio Proxy)组成,每个微服务实例旁都部署一个,负责 “转发流量、执行通信规则”(如负载均衡、熔断、加密),是实际处理网络请求的 “干活的”。控制平面(Control Plane)
2025-10-30 22:22:17
1189
原创 Java虚拟机运维规范
再以写代码与答疑作为场景举个例子,把写代码当成业务线程执行,把答疑当成GC的STW,不停的有人来问问题,每个小时答复一次消息与每5分钟回复一次消息带来的上下文切换的损耗也是不一样的,最终写出来的代码数量和质量也不一样。与UNIX的ps命令相似,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID,该ID与操作系统进程ID一致,可以用于确定具体应用进程,众多命令的使用都要基于该命令查询到的进程ID。
2025-10-30 22:11:45
706
原创 惊人!Spring5 AOP 默认使用Cglib? 从现象到源码深度分析【转载】
【代码】惊人!Spring5 AOP 默认使用Cglib?从现象到源码深度分析【转载】
2025-10-09 19:07:29
170
原创 弄懂Kubernetes
K8S在基于容器部署的方式上,提供了一个弹性分布式的框架,支持服务发现与负载均衡、存储、自动部署回滚、自动计算与调度、自动扩缩容等等一系列操作,目的是方便开发者不再需要关注服务运行细节,K8S能够自动进行容器与Pod调度、扩缩容、自动重建等等操作,保证服务尽可能健康的运行。它提供了一系列的功能来帮助我们轻松管理和编排容器,以达到我们的预期状态简单来说,K8S解放了开发者的双手,能够最大程度的让部署的服务健康运行,同时能够接入很多第三方工具(如服务监控、数据采集等等),满足开发者的定制化需求。
2025-10-09 11:29:37
300
原创 Docker常用命令(记不住,当备忘录查询使用)
启动(新)容器:docker run -it ubuntu /bin/bash(或docker run -p80:80 -d --name nginx nginx:1.24.0,第个80宿主机端口,第二个80容器端口)将镜像加载到Docker:docker load -i打包后的文件名字.tar(例子:docker load -iminio.tar)关闭Docker服务:docker service docker stop/docker systemctl stop docker。
2025-10-09 11:13:38
443
原创 AQS(AbstractQueuedSynchronizer)抽象队列同步器
AQS(AbstractQueuedSynchronizer)是Java并发工具的核心框架,采用模板方法模式,通过state变量管理同步状态和CLH队列实现线程排队。它为ReentrantLock、ReadWriteLock、CountDownLatch、Semaphore等并发工具提供底层支持,分别实现独占和共享两种模式。AQS将通用逻辑封装,子类只需实现tryAcquire/tryRelease等方法即可定制同步语义,具有高性能、可靠性和可扩展性,是JUC包同步机制的基础。
2025-09-16 21:34:24
1015
原创 java JUC与锁
锁类型适用场景主要优势主要劣势/风险绝大多数简单同步场景,首选!简单、安全、JVM 优化好、不易出错功能单一,无法中断、超时需要tryLock、超时、中断、公平锁、Condition等高级功能时功能强大、灵活必须手动释放,易出错;代码更复杂读多写少的场景提升读并发性能写线程可能饥饿;比复杂读操作极其频繁,写操作极少,追求极致读性能乐观读性能极高不可重入;无Condition;使用复杂原子类 (无锁)简单的计数、状态更新、引用交换性能高,无阻塞仅适用于简单操作,复杂逻辑难实现。
2025-09-16 21:32:57
782
原创 数据类型、变量
yteShortIntegerLong这 4 种包装类默认创建了数值的相应类型的缓存数据,Character创建了数值在范围的缓存数据,Boolean直接返回TrueorFalse。两种浮点数类型的包装类FloatDouble并没有实现缓存机制。自动装箱与拆箱装箱 :Integer.valueOf()拆箱:n.intValue();BigDecimal可以实现对浮点数的运算,不会造成精度丢失。通常情况下,大部分需要浮点数精确运算结果的业务场景(比如涉及到钱的场景)都是通过BigDecimal来做的。
2023-08-06 20:25:30
132
原创 JVM内存模型
HotSpot 采用了惰性评估(Lazy Evaluation)的做法,根据二八定律,消耗大部分系统资源的只有那一小部分的代码(热点代码),而这也就是 JIT 所需要编译的部分。在JVM中,主要有以下几个存储内存的区域: 1. 方法区(Method Area):用于存储类的结构信息、静态变量、常量池等。4. 本地方法栈(Native Method Stack):用于存储Java程序调用本地方法(使用其他语言编写的方法)时的数据和状态。每个线程都有自己的栈,栈的大小可以在JVM启动时设置。
2023-08-06 20:24:20
125
原创 正则表查询(多查询几次,慢慢就记住了)
123/,匹配 "123"。匹配除了 "a"、"b"、"c"、"d"、"1"、"2"、"3"、"4" 之外的任何一个字符。把 "ab" 当成一个整体,比如 (ab)+ 表示 "ab" 至少连续出现一次。匹配 "a"、"b"、"c"、"d"、"1"、"2"、"3"、"4" 其中任何一个字符。匹配开头的位置,当正则有修饰符 m 时(多行文本),表示匹配行开头位置。匹配 "good" 或 "nice"。匹配除了 "a"、"b"、"c" 之外的任何一个字符。匹配 "a"、"b"、"c" 其中任何一个字符。
2023-07-13 10:56:56
151
1
原创 RocketMQ
RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。
2023-07-13 10:52:35
192
1
原创 java 并发编程(待修改)
一 并发的概念首先能用一个线程完成的事就不要用多线程做。分工并发编程 本质上是将原来一个线程做的事分给多个线程做(分工)常⻅的 Executor,⽣产者-消费者模式,Fork/Join 等,这都是分⼯思想 的体现同步/协作 将一个整体的任务分为几个任务段之前 要进行通信,讨论怎么完成一个整体的任务,比如当一个线程执行完后,如何通知后续其他线程执行。线程之间的协作可能是主线程与⼦线程的协作,可能是⼦线程与 ⼦线程的合作, Java SDK 中 CountDownLat...
2023-07-13 10:47:27
158
1
原创 算法练习一
找到两行输入中较短的哪一行,然后用双重for循环遍历从最小的子字符串判断,存入结果后,继续如果有更长的子字符串,替换,循环结束玩输入。
2023-07-06 19:13:45
170
1
原创 各大视频网站下载神器
先说介绍工具,后说使用方法(其实不难)you-get是GitHub上的一个项目,其实就是通过几个命令行下载各大网站视频的,这对于做视频的爱好者及一些司机都是很奈斯的选择。地址:https://github.com/soimort/you-get支持的网站还挺多的,选一些国内的常用网站:163 网易视频 网易云音乐 http://v.163.com/http://music.163.com/ ✓ ✓ 56网 http://www.56.com/.
2021-06-25 22:03:37
2202
2
原创 设计模式(非原创)
一直想写一篇介绍设计模式的文章,让读者可以很快看完,而且一看就懂,看懂就会用,同时不会将各个模式搞混。自认为本文还是写得不错的????????????,花了不少心思来写这文章和做图,力求让读者真的能看着简单同时有所收获。设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。有一些重要的设计原则在开篇和大家分享下,这些
2021-06-01 09:57:09
293
原创 HashMap的实现原理
HashMap是数组 + 链表 + 红黑树(JDK1.8新增红黑树部分)实现的数据底层具体存储的是什么?这样存储方式的优点是什么?1) 一个重要的字段 -- Node[] table 哈希桶数组,Node 是HashMap的一个内部类,实现了Map.Entry 接口,本质上是一个键值对,上图中的每一个黑色原点就代表一个Node对象2)HashMap就是使用哈希表来存储的,Java中采用链地址法(数组加链表的组合)来解决哈希冲突。 链地址法: 在每个数组元素上都有一个链表结构..
2021-03-29 19:23:09
361
原创 2021-03-09
提到数据结构+算法的学习,有两个问题是不可避免的,一个是时间复杂度,可以理解为算法的运行时间,如果算法运行时间太长,那这个算法就没法用;另一个是算法的空间复杂度,可以理解为把算法存储在计算机中需要多大的空间,如果需要空间太大,那这个算法也没法用。因此,需要对一个算法的时间复杂度和空间复杂度进行分析,来确定该算法的可行性。时间复杂度的分析,一般有两种方法: 事后统计法 事前分析法 事后统计法是用测试程序和数据来运行已编写好的算法,对其执行时间进行比较。这种方法看似可以精确的计算算.
2021-03-09 10:57:35
302
原创 理解算法中的时间复杂度,O(1),O(n),O(log2n),O(n^2)
算法复杂度分为时间复杂度和空间复杂度,二者也是衡量代码的好坏两个重要指标:时间复杂度:指执行算法所需要的计算工作量; 间复杂度:指执行这个算法所需要的内存空间。算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度。1. 概念理解1.1 基本执行次数:T(n)由于运行环境和输入规模的影响,代码的绝对执行时间是无法估计的,但我们可以估算出代码的基本执行次数。一般情况下,算法中基本操作重复执行的次数是问题规模
2021-03-04 11:00:32
2706
1
原创 中间件--Zookeeper
11.1 Zookeeper 概念Zookeeper 是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等。 Zookeeper 提供了一个类似于 Linux 文件系统的树形结构(可认为是轻量级的内存文件系统,但 只适合存少量信息,完全不适合存储大量文件或者大文件),同时提供了对于每个节点的监控与 通知机制。11.2Zookeeper 角色Zookeeper 集群是一个基于主从复制的高可用集群,每个服务器承担如下三种角色中的一种 11.2.1Leader...
2021-01-26 10:45:47
1148
1
原创 2.0.4.RELEASE 无法引入最新的spring web jar包 ,改为2.0.0就解决了
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version&
2018-09-13 22:46:02
1271
原创 The type org.springframework.context.ConfigurableApplicationContext cannot be resolved
今天第一次使用STS进行Spring boot的学习,按照教程创建第一个Spring starter project就出现了错误“The type org.springframework.context.ConfigurableApplicationContext cannot be resolved. It is indirectly referenced from required .clas...
2018-09-13 21:02:44
702
NoteHighlight2016.msi
2021-06-09
xmind zen 64 补丁
2019-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅