自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

轰鸣

形而上者谓之道,形而下者谓之器

  • 博客(68)
  • 资源 (8)
  • 收藏
  • 关注

原创 10、Nacos服务订阅服务端源码分析

客户端订阅相关的源码解读

2023-10-07 14:09:43 199 1

原创 9、Nacos服务注册服务端源码分析(总结篇)

Nacos中客户端上报时,服务端逻辑汇总

2023-10-05 22:23:39 211

原创 8、Nacos服务注册服务端源码分析(七)

确定前端页面中服务列表中的数据源

2023-10-02 19:32:30 433

原创 7、Nacos服务注册服务端源码分析(六)

客户端注册时,任务处理引擎的相关逻辑梳理

2023-10-02 13:55:33 423 1

原创 6、Nacos服务注册服务端源码分析(五)

上篇文章我们看了统一的事件通知这个类,将客户端注册服务的流程梳理到了事件通知这一步,接下来我们接着看获取到之后的处理逻辑。

2023-09-25 15:57:28 157

原创 5、Nacos服务注册服务端源码分析(四)之NotifyCenter

分析统一事件处理类NotifyCenter

2023-09-22 16:45:46 200

原创 4、Nacos服务注册服务端源码分析(三)

nacos grpc服务注册源码分析

2023-09-21 13:46:34 128

原创 3、Nacos服务注册源码分析(二)

本篇算是填了第一篇客户端源码分析的坑,着重看了发起grpc请求链路上的源码,整体上还是比较清晰易懂的。

2023-09-18 07:30:05 118

原创 2、Nacos服务注册服务端源码分析(一)

分析Nacos服务注册时服务端的源码

2023-09-17 15:51:10 295

原创 SPI : ServiceLoader如何打破双亲委派

JDK的SPI是怎么打破双亲委派的?

2022-08-28 21:28:41 574 1

原创 SPI : Service Provider Interface

jdk6中引入了一个新特性,使得我们可以根据一个指定的「接口」去找到并加载指定的「实现」。本篇文章会详细介绍下SPI的用法及场景。

2022-08-26 13:45:29 330

原创 Docker部署es+kibana

一文装好kibana和es

2022-08-10 13:13:40 670 1

原创 算法常见知识点(持续更新)

常见算法解题方法

2022-08-03 10:56:17 165

原创 我的递归从不爆栈

我的递归从不爆栈

2022-08-02 17:33:15 258

原创 浅看SpringBoot的自动装配

浅看SpringBoot自动装配

2022-07-29 17:37:13 354

原创 Spring(1):BeanDefinitionRegistry

浅看BeanDefinitionRegistry

2022-07-29 11:30:17 304

原创 SpringBoot启动的时候做了什么(2)

SpringBoot启动的时候做了什么之SpringApplication.run(args)

2022-07-24 12:34:01 466

原创 SpringBoot启动的时候做了什么(1)

SpringBoot启动的时候做了什么之SpringApplication

2022-07-23 23:01:40 1097 3

原创 1、NacosClient在服务注册时做了什么

NacosClient 服务注册源码分析

2022-07-17 17:58:25 808 1

原创 SpringAOP之代理模式选择

目标类:ProxyFactoryBean目标方法:public Object getObject() throws BeansException { initializeAdvisorChain(); if (isSingleton()) { return getSingletonInstance(); } else { if (this.targetName == null) { logger.info("Using non-singleton proxies with sing

2022-05-27 10:59:56 312

原创 docker & docker compose & 云效流水线

docker 及 docker compose 的安装,配合云效流水线部署服务

2022-05-10 11:23:06 561

原创 yarn : 无法加载文件 yarn.ps1,因为在此系统上禁止运行脚本。

yarn : 无法加载文件 D:\devtool\node\node_global\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。npm install --global yarn安装yarn的时候抱这个错。同时还有这么一个提示:有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID

2022-05-06 09:50:44 4909 4

原创 备忘:玩go的时候遇到的问题【持续更新】

标题go get 或者 install一直超时go env---GOPROXY=https://goproxy.cn,direct---更换GOPROXY为国内代理go env -w GOPROXY=https://goproxy.cn,direct

2022-04-29 15:51:01 211

原创 分布式一致性协议之Raft

最近看RocketMQ的时候,了解到v4.5.0之后,broker采用遵循raft协议的复制组来实现数据一致性。虎躯一震,raft协议在现在的脑子里变的熟悉又陌生…问题不大,重新刷一遍raft。先贴官网:The Raft Consensus Algorithm再贴动画演示:Raft: Understandable Distributed Consensusps:里边的动图挺有意思😈简介ps:来自维基百科Raft是一种用于替代Paxos的共识算法。相比于Paxos,Raft的目标是提供更清晰的

2022-03-19 12:09:01 2731

转载 K8S:API设计原则

API设计原则看到了K8S的API设计原则,对日常开发还是很有借鉴意义的,特此留存。对于云计算系统,系统API实际上处于系统设计的统领地位,正如本文前面所说,K8s集群系统每支持一项新功能,引入一项新技术,一定会新引入对应的API对象,支持对该功能的管理操作,理解掌握的API,就好比抓住了K8s系统的牛鼻子。K8s系统API的设计有以下几条原则:所有API应该是声明式的。正如前文所说,声明式的操作,相对于命令式操作,对于重复操作的效果是稳定的,这对于容易出现数据丢失或重复的分布式环境来说是很

2021-09-18 16:44:26 278

原创 git rebase下的git flow

rebase基础介绍git代码合并有两种,git merge 和 git rebase 。两者目的相同,都是把不同分支的提交合并到一起,但是过程有差异。git merge作用:把源分支的提交合并到目标分支。过程中,目标分支改变,源分支不变。优点:简单易上手/保留了提交历史和时间次序/分支结构不变缺点:提交历史被大量的merge操作污染/git bisect调试困难git rebase作用:清除了历史,将一个分支完全转移到了目标分支优点:复杂的历史变成优雅的提交线缺点:分支上下文模糊了/d.

2021-08-10 18:40:02 763

原创 【线程知识点】-- 自旋锁

文章目录前言一、什么是自旋锁?二、为什么要用自旋锁?三、实例讲解AtomicInteger四、自己实现一个可重入的自旋锁五、缺点及适应场景缺点适用场景总结前言自旋锁是个比较基础的知识点了,应该很熟悉的掌握。一、什么是自旋锁?自旋”可以理解为“自我旋转”,这里的“旋转”指“循环”,比如 while 循环或者 for 循环。“自旋”就是自己在这里不停地循环,直到目标达成。而不像普通的锁那样,如果获取不到锁就进入阻塞。自旋锁并不会释放CPU的时间片,而是通过自旋的方式不断地去尝试获取锁,如果尝试获

2020-12-25 11:26:07 1016

原创 『怎么用』代理模式

阐述为一个对象提供一个占位符或者是替身,用以控制对这个对象的访问;使用代理模式创建代理对象,代理对象用以访问被代理的对象。被代理对象可以远程对象、创建时开销大的对象、需要安全控制的对象。远程代理远程代理作为另一个JVM上对象的本地代表。调用代理上方法时,远程代理通过网络将请求传输到远程,并将结果再通过网络传输到本地,后返回给调用方。虚拟代理虚拟代理作为创建时开销大的对象的代表。虚拟代理经常直到我们真正需要一个对象的时候,才会去创建这个对象。在对象创建前、创建中的时候,这个对象的访问都

2020-08-15 17:14:27 188

原创 『怎么用』装饰者模式

消除恐惧的最好办法是直面恐惧,奥利给:)阐述原理实现总结Q&A阐述利用继承设计子类的行为,是在编译时静态决定的,且所有的子类都会继承到这个行为。如果用组合的做法扩展对象的行为,就可以在运行时动态的进行扩展。装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。OO原则:对扩展开放,对修改关闭。原理Component是被装饰对象的爸爸,是个接口,定义被装饰者的行为Decorator是装饰者的爸爸,它继承了Component,保证了装饰者

2020-07-01 21:45:29 219

原创 『每日一问』LockSupport怎么实现线程等待、唤醒

wait/notify实现线程通信实现线程通信呢,比较传统的办法就是使用synchronized关键字获取对象锁之后,结合Object自带的wait/notify方法来实现。一个简单例子如下: public static void main(String[] args) throws InterruptedException { ObjectTar objectTar = new ObjectTar(); new WaitThread("WaitThread", obj

2020-06-30 22:34:56 430

原创 『怎么用』观察者模式

主题【发布者】import java.util.Observable;@Datapublic class SubjectData extends Observable { /** * 观察者订阅的主题数据 */ private String lookData; /** * 主题数据发生变化时调用此方法,同时时间订阅发布 * @param changeData :主题变化的数据 */ public void look

2020-06-29 17:22:47 846

原创 『每日一问』ReentrantLock加锁解锁

Lock接口中有六个方法void lock();void lockInterruptibly() throws InterruptedException;Condition newCondition();boolean tryLock();boolean tryLock(long time, TimeUnit unit) throws InterruptedException;void unlock();加锁ReentrantLock.lockpublic void lock() .

2020-06-29 14:44:42 240

原创 『每日一问』怎么实现一个正确的双重检查锁定

缘由我们程序里,有时候一些开销比较大的对象创建,往往不会提前创建,而是只有在实际要用到的时候才会去创建。也就是基本下边这个写法:public class UnsafeLazyInitialization { private static Instance instance; public static Instance getInstance() { if (instance == null) // 1:A线程执行 instance = new Instance();

2020-05-30 22:27:23 389

原创 『每日一问』volatile干嘛的

内存语义volatile写:当写一个volatile变量的时候,JMM会把这个线程的本地内存中的共享变量全部刷新到主内存。注意,是全部,而不是仅仅volatile变量volatile读:当读一个volatile变量的时候,JMM会将这个线程的本地内存置为无效,然后从主内存中读取共享变量。以上两步一起来看的话,读线程在读一个volatile变量的时候,写线程在写这个volatile变量之前的所有对共享变量的操作都会立即变得对读线程可见。内存语义的实现之前说到过,重排序分为编译器和处理器重排两种。为了

2020-05-27 16:22:38 240

原创 『每日一问』简单聊聊JMM/说说对JMM的了解

JMM流水线

2020-05-27 13:06:08 494

原创 瞅瞅源码之HashMap[jdk1.8]

文章目录HashMapJAVADOCNO BB , SHOW CODESTATIC AREAFieldsConstructsPublic MethodputgetremoveJDK8 新增的方法Q&AHashMap : 如何有效减少碰撞HashMap : 扩容的问题HashMap需要满足什么条件才会将链条转为红黑树为啥不直接使用hashCode做散列HashMap中为什么要求初始化容量...

2019-12-16 17:57:32 231

原创 瞅瞅源码之ConcurrentLinkedQueue

文章目录成员变量Node是啥Unsafe干嘛的构造方法新增一个元素删除一个元素其他的一些方法NOTE:参考资料基于链接节点的无界线程安全{@linkplain Queue队列}。这个队列对元素FIFO(先进先出)进行排序。队列的head是队列中存在时间最长的元素。队列的tail是队列中时间最短的元素。新元素插入到队列的尾部,队列检索操作获取队列头部的元素。当许多线程共享对公共集合的...

2019-09-17 15:10:29 293

原创 瞅瞅源码之LinkedList

文章目录成员变量Node是个啥构造方法modCount干嘛的add(E e)get(int index)indexOf(Object o)删除操作迭代器(有点意思的东西)不总结写了干嘛实现了{@code list}和{@code Deque}接口的双链表。实现所有可选列表操作,并允许所有元素(包括{@code null})。所有操作的执行都与doubly-linkedlist的预期相同。...

2019-09-10 17:56:10 323

原创 瞅瞅源码之ThreadLocal

ThreadLocal ThreadLocalMap Thread 三者之间的关系ThreadLocalMap是ThreadLocal的一个内部类/** * ThreadLocalMap是一个定制的散列映射,只适合维护线程本地值。 * 在ThreadLocal类之外不导出任何操作。 * The class is package private to allow declara...

2019-06-23 17:41:55 209

原创 Dubbo Gateway - 网关设计

背景先说结论:dubbo目前版本(2.7.1 & 3.X)无法使用开源网关组件。为什么?通过Dubbo服务与注册的设计可以看出Dubbo服务的基本特点:注册/发现对象 - Dubbo服务接口注册/发现载体 - Dubbo URL (元信息:接口、版本、分组等)一个Dubbo URL示例 ↓↓↓dubbo://192.168.50.233:20880/com.paran...

2019-06-02 21:03:27 23014 7

txc-client-2.0.69.jar

阿里分布式事务解决方案GTS jar包 -- txc-client-2.0.69.jar

2018-03-15

NIO测试代码

nio测试代码

2017-07-11

自动生成二维码

自动生成二维码

2017-06-20

阿里巴巴Java开发手册v1.2.0.pdf

阿里巴巴Java开发手册v1.2.0.pdf

2017-05-31

jackson-all-1.9.5.jar

jackson-all-1.9.5.jar

2017-04-06

热部署 HptCode2.jar

热部署 HptCode2.jar

2016-12-21

关于SoapUI的中文使用手册

SoapUI的中文调试手册,可用于项目开发

2016-09-02

空空如也

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

TA关注的人

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