聊聊linux的文件缓存

4 月 17 日
阅读 4 分钟
40
linux使用page cache来缓存最近读取的文件,也有目录结构(dcache: Directory Entry Cache)缓存及inode缓存,它们都使用了LRU算法来管理这些page及dentries cache

聊聊docker容器的memory限制

4 月 8 日
阅读 7 分钟
76
所谓Cache,就是为了弥补高速设备和低速设备之间的矛盾而设立的一个中间层。缓冲(Buffer)是根据磁盘的读写设计的,它把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

聊聊k8s服务发现的优缺点

3 月 26 日
阅读 3 分钟
58
这里有张spring cloud与kubernetes的对比,如果将微服务部署到kubernetes上面,二者有不少功能是重复的,可否精简。这里主要是讲述一下如果不使用独立的服务发现,而是使用k8s的服务发现的优缺点

Java22的新特性

3 月 25 日
阅读 14 分钟
460
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java18的新特性Java19的新特性Java20的新特性Java21的新特性Java22的新特性Java23的新特性序本文主要讲述一下Ja...

聊聊powerjob的执行机器地址

3 月 16 日
阅读 4 分钟
75
powerjob-common/src/main/java/tech/powerjob/common/request/http/SaveJobInfoRequest.java

聊聊powerjob的failedTaskNum

3 月 15 日
阅读 19 分钟
52
powerjob-worker/src/main/java/tech/powerjob/worker/core/tracker/task/heavy/HeavyTaskTracker.java

聊聊powerjob的单机线程并发度

3 月 12 日
阅读 13 分钟
88
powerjob-worker/src/main/java/tech/powerjob/worker/pojo/model/InstanceInfo.java

聊聊spring-cloud-kubernetes-client-loadbalancer

2 月 26 日
阅读 12 分钟
208
org/springframework/cloud/loadbalancer/core/ServiceInstanceListSupplier.java

聊聊spring-cloud-kubernetes-client-discovery

2 月 23 日
阅读 8 分钟
183
spring-cloud-commons提供了DiscoveryClient接口,它定义了description、getInstances、getServices、probe、getOrder方法

聊聊arthas的HttpTermServer

2 月 21 日
阅读 8 分钟
223
序本文主要研究一下arthas的HttpTermServerTermServercom/taobao/arthas/core/shell/term/TermServer.java {代码...} TermServer是一个抽象类,它定义了termHandler、listen、actualPort、close抽象方法HttpTermServercom/taobao/arthas/core/shell/term/impl/HttpTermServer.java {代码...} HttpTermServer继承了TermSe...

聊聊arthas的ArthasBootstrap

2 月 20 日
阅读 17 分钟
208
ArthasBootstrap的构造器执行initFastjson、initSpy、initArthasEnvironment、LogUtil.initLogger(arthasEnvironment)、enhanceClassLoader、initBeans、bind,最后注册shutdownHook来执行destroy方法

聊聊arthas的spring-boot-starter

2 月 19 日
阅读 7 分钟
228
arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasConfiguration.java

聊聊如何停止某个pod的流量

2 月 18 日
阅读 4 分钟
342
org/springframework/boot/actuate/availability/ReadinessStateHealthIndicator.java

聊聊如何变更pod的流量路由

2 月 13 日
阅读 5 分钟
372
可以看到原来10.244.0.8:8080的pod由于label被更新了,所以被移除了,但因为需要保持3个副本,因而点多生成了一个pod(10.244.0.11:8080)

聊聊PowerJob的CleanService

2 月 11 日
阅读 5 分钟
318
timingClean先执行WorkerClusterManagerService.cleanUp()释放本地缓存,之后通过cleanLocal释放本地磁盘空间,最后执行cleanByOneServer删除历史数据

聊聊PowerJob的InstanceStatusCheckService

2 月 10 日
阅读 15 分钟
330
InstanceStatus定义了任务实例的状态,广义运行中的状态为WAITING_DISPATCH、WAITING_WORKER_RECEIVE、RUNNING;终态为FAILED、SUCCEED、CANCELED、STOPPED

聊聊PowerJob的任务调度

2 月 9 日
阅读 13 分钟
304
CoreScheduleTaskManager在afterPropertiesSet的时候会启动一系列的线程,它们都是LoopRunnable类型的,分别调度powerScheduleService.scheduleNormalJob(TimeExpressionType.CRON)、powerScheduleService.scheduleNormalJob(TimeExpressionType.DAILY_TIME_INTERVAL)、powerScheduleService::scheduleCronWorkflow、pow...

聊聊PowerJob Server的高可用

2 月 8 日
阅读 15 分钟
296
PowerJobSpringWorker实现了InitializingBean接口,其afterPropertiesSet会创建powerJobWorker,然后执行其init方法

聊聊PowerJob Worker的ServerAddress

2 月 7 日
阅读 6 分钟
264
PowerJobAutoConfiguration读取powerjob.worker.server-address属性,解析逗号分隔,赋值给PowerJobWorkerConfig的serverAddress

聊聊PowerJob的ServerController

2 月 6 日
阅读 9 分钟
234
ServerController实现了ServerInfoAware接口,它提供了assert、assertV2、acquire、hello接口;其中assert接口用于判断指定的appName是否存在,assertV2返回的是WorkerAppInfo;acquire委托给了serverElectionService.elect(request);hello接口返回server端的localhost、serverInfo、serverTime等信息

聊聊PowerJob的AppInfoController

2 月 5 日
阅读 4 分钟
158
序本文主要研究一下PowerJob的AppInfoControllerAppInfoControllertech/powerjob/server/web/controller/AppInfoController.java {代码...} AppInfoController提供了save、assert、delete、list方法AppInfoServicetech/powerjob/server/core/service/AppInfoService.java {代码...} AppInfoService定义了assertApp方法Ap...

聊聊PowerJob的UserInfoController

2 月 4 日
阅读 7 分钟
116
序本文主要研究一下PowerJob的UserInfoControllerUserInfoControllertech/powerjob/server/web/controller/UserInfoController.java {代码...} UserInfoController提供了save、list方法,其中save方法用到了userService.saveUserServicetech/powerjob/server/core/service/UserService.java {代码...} UserService提供了...

聊聊PowerJob日志的上报及存储

2 月 3 日
阅读 17 分钟
134
序本文主要研究一下PowerJob的日志上报及存储OmsLoggerFactory.buildtech/powerjob/worker/log/OmsLoggerFactory.java {代码...} 默认logConfig为null,cfg是new LogConfig(),其build出来的是OmsServerLoggerOmsServerLoggertech/powerjob/worker/log/impl/OmsServerLogger.java {代码...} OmsServerLogger的process方...

聊聊PowerJob的ContainerTemplateGenerator

2 月 2 日
阅读 5 分钟
98
ContainerTemplateGenerator的generate方法提供了生成外置动态加载的代码模版,它从classpath读取oms-template-origin.zip文件,然后解压到临时目录,之后按行读取pom.xml文件,替换掉group、name、javaVersion信息,接着在src/main/java下面写入包名对应的目录,然后替换src/main/resources/oms-worker-container-sprin...

聊聊PowerJob的ServerDeployContainerRequest

2 月 1 日
阅读 11 分钟
104
ServerDeployContainerRequest定义了containerId、containerName、version、downloadURL属性

聊聊PowerJob的ContainerController

1 月 31 日
阅读 19 分钟
115
ContainerController提供了downloadJar、downloadContainerTemplate、jarUpload、save、delete、list、listDeployedWorker接口,其中downloadJar、jarUpload、save、delete委托给了containerService

聊聊PowerJob的InstanceController

1 月 30 日
阅读 13 分钟
113
InstanceController提供了stop、retry、detail、log、downloadLogUrl、downloadLog、downloadLog4Console、list方法;其中stop、retry、detail委托给了instanceService;log、downloadLogUrl、downloadLog、downloadLog4Console委托给了instanceLogService;list委托给了instanceInfoRepository

聊聊PowerJob的SystemInfoController

1 月 29 日
阅读 9 分钟
123
SystemInfoController提供了listWorker、getSystemOverview方法;listWorker则是根据当前登录的appId来获取其WorkerInfo;getSystemOverview则是统计了当前appId的总任务数量、运行任务数、近期失败任务数

聊聊PowerJob的JobController

1 月 28 日
阅读 12 分钟
116
JobController提供了save、copy、export、disable、delete、run、list方法;除了list外其他均委托给了jobService

聊聊PowerJob的BroadcastProcessor

1 月 27 日
阅读 14 分钟
115
BroadcastProcessor接口继承了BasicProcessor,它定义了preProcess、postProcess、defaultResult方法,其中preProcess默认返回成功的ProcessResult,postProcess返回defaultResult,它会根据taskResults计算最终的success与否