友链朋友圈

闪电入职vs光速离职

记一次短暂的工作经历

avatar Akilarの糖果屋 发表于 2023年09月21日 03:08:00

全网最全🚩软路由系统镜像下载导航🏳️‍🌈

一、刷机工具 1、BalenaEtcher官网下载:【点击直达】 2、Rufus官网下载:【点击直达】 3、Ventoy官网下载:【点击直达】 二、软路由镜像 1、Openwrt官网:【点击直达】 2、LEDE固件:【点击直达】 3、骷髅头DHDAXCW固件:【点击直达】 4、iStoreOS固件:【点击直达】 5、恩山论坛sirpdboy固件:【点击直达】 6、友善nanopi固件:【点击直达】 7、QiuSimons(YAOF)固件:【点击直达】 8、X-WRT固件:【点击直达】 9、SuLingGG固件:【点击直达】 10、Lidrive固件:【点击直达】 11、Bleach OpenWrt固件:【点击直达】 12、SuLingGG固件:【点击直达】 13、OpenWrt固件下载与在线定制编译:【点击直达】 14、Haiibo固件:【点击直达】 15、esirPG固件:【点击直达】 16、ImmortalWrt固件:【点击直达】 17、OpenWrt-BuildBot固件:【点击直达】 18、flippyN1固件:【点击直达】 19、kiddin9全固件(GITHUB):【点击直达】 20、kiddin9全固件(恩山):【点击直达】 21、FROS固件:【点击直达】

avatar 杨杨得亿 发表于 2023年09月17日 21:33:50

全网最全🚩软路由系统镜像下载导航🏳️‍🌈

一、刷机工具 1、BalenaEtcher官网下载:【点击直达】 2、Rufus官网下载:【点击直达】 3、Ventoy官网下载:【点击直达】 二、软路由镜像 1、Openwrt官网:【点击直达】 2、LEDE固件:【点击直达】 3、骷髅头DHDAXCW固件:【点击直达】 4、iStoreOS固件:【点击直达】 5、恩山论坛sirpdboy固件:【点击直达】 6、友善nanopi固件:【点击直达】 7、QiuSimons(YAOF)固件:【点击直达】 8、X-WRT固件:【点击直达】 9、SuLingGG固件:【点击直达】 10、Lidrive固件:【点击直达】 11、Bleach OpenWrt固件:【点击直达】 12、SuLingGG固件:【点击直达】 13、OpenWrt固件下载与在线定制编译:【点击直达】 14、Haiibo固件:【点击直达】 15、esirPG固件:【点击直达】 16、ImmortalWrt固件:【点击直达】 17、OpenWrt-BuildBot固件:【点击直达】 18、flippyN1固件:【点击直达】 19、kiddin9全固件(GITHUB):【点击直达】 20、kiddin9全固件(恩山):【点击直达】 21、FROS固件:【点击直达】

avatar 杨杨得亿 发表于 2023年09月17日 21:33:50

Spring 源码分析(六)——Bug?getBean取出的Bean居然未经初始化

Spring 是线程安全的,支持多线程并发调用。但在某种特殊情况下,使用 BeanFactory 的 getBean 方法,我成功拿到了未经初始化的 Bean(是BUG,亦或是出于某种原因考虑的特性?)。 一、获取到的 Bean 为什么未初始化? 通过 getBean 获取到未经过初始化的 Bean 需要满足如下的场景: Bean 开启了懒加载:否则调用 getBean 前 Bean 已经初始化好了; 该 Bean 与其他 Bean 产生了循环依赖:未经初始化问题来自于二级缓存 earlySingletonObjects; 有两个及以上的线程同时调用 getBean 方法获取该 Bean:并发场景出现的问题。 关键代码片段: protected Object getSingleton(String beanName, boolean allowEarlyReference) { // Quick check for existing instance without full singleton lock Object singletonObject = this.singletonObjects.get(beanName); if (singletonObject == null && isSingletonCurrentlyInCreation(beanName)) {|+ singletonObject = this.earlySingletonObjects.get(beanName); if (singletonObject == null && allowEarlyReference) { synchronized (this.singletonObjects) { // Consistent creation of ...

avatar 玖涯博客 发表于 2023年09月15日 17:49:22

20230915

上班一周了,风神保佑,今天晚上别加班

avatar Akilarの糖果屋 发表于 2023年09月15日 17:30:27

Spring 源码分析(五)——Spring三级缓存的作用分别是什么?

Spring 的三级缓存是经典面试题,也会看到一些文章讲三级缓存与循环依赖之的关系。那么,三级缓存分别存储的什么呢?他们的作用又分别是什么? 一、一、二级缓存 一级缓存是一个名为 singletonObjects 的 ConcurrentHashMap,用于存储已经创建完成的 Bean。其作用也是最明显的,获取 Bean 时最优先从一级缓存中获取。 二级缓存是一个名为 earlySingletonObjects 的 ConcurrentHashMap,用于存储还未创建完成的 Bean。在循环依赖时,可以从中预先获取未创建完成的 Bean,从而解决循环依赖问题。 二、三级缓存 三级缓存是一个名为 singletonFactories 的 ConcurrentHashMap,用于存储创建指定 Bean 的工厂。其作用是为了在 AOP 代理时解决循环依赖。 更具体可以说,是为了在 AOP 代理时,既解决循环依赖,又最大满足 Spring 制定的 Bean 生命周期流程。 是的,三级缓存一定程度上说,他提前了 Bean 生命周期的流程。 熟悉 Bean 的生命周期可知,Bean 初始化是经过了实例化(createBeanInstance)、属性注入(populateBean)、后置处理器与生命周期方法(initializeBean)三个步骤处理,最终才得到一个创建完成的 Bean。 在循环依赖时,在属性注入(populateBean)步骤就要解决依赖问题,而 AOP 代理是在后置处理器与生命周期方法(initializeBean)步骤中通过后置处理器实现的。如果严格按照 Bean 的这个生命周期执行,依赖注入是无法注入代理之后的对象的。 假设,A 和 B 互相依赖,A 经过 AOP 代理,最终的 Bean 为 Aa ,那么严格按照 Bean 的生命周期最终属性注入的结果如下: ge...

avatar 玖涯博客 发表于 2023年09月15日 14:54:10

深入了解 Cron 时间字段:定时任务的精确控制

在 Linux 和 Unix 系统中,cron 是一个强大的工具,用于执行预定时间的任务。Cron 允许用户自动化各种重复性任务,如备份、系统监控、日志清理等。在 cron 中,时间的设定是至关重要的,它使用一些特殊的时间字段来确定任务的执行时机。本文将深入探讨常见的 cron 时间字段及其用途。 1、常规 Cron 时间字段 常规 Cron 时间字段:精确控制任务执行时间 在常规 cron 时间字段中,您可以通过分钟、小时、日期等来精确控制任务的执行时间。以下是一些示例: 1.1、每天凌晨执行备份任务 0 0 * * * /usr/local/bin/backup.sh 1.2、每小时执行系统监控任务 0 * * * * /usr/local/bin/system_monitor.sh 1.3、每周执行日志清理任务: 0 2 * * 6 /usr/local/bin/clean_logs.sh 1.4、每月执行系统更新任务: 0 3 1 * * /usr/bin/apt-get update && /usr/bin/apt-get upgrade -y 1.5、每隔 15 分钟执行检查网站可用性任务: */15 * * * * /usr/local/bin/check_website.sh 这些常规的 cron 时间字段允许您按照特定的时间表来安排任务的执行,非常适用于各种自动化需求。 2、特殊 Cron 时间字段:简化时间设定 除了常规的时间字段外,还有一些特殊的时间字段,如 @reboot、@yearly、@monthly 等,它们可以更方便地设置任务的执行时间,通常用于特殊场景。示例: 2.1、@reboot:系统启动时执行任务 @reboot /usr/local/bin/startup_script.sh 2.2、@yearly 或 @annually:每年执行...

avatar 龙儿之家 发表于 2023年09月15日 11:17:56

Elastic使用Synthetics监测

前言 前置条件:已安装elasticserch、kibana、fleet、docker 没有请查看:基于ElasticStack的监控告警统一解决方案 并安装8.9.2以上版本 docker: docker、compose最新版安装 新增代理 在Fleet页面新增代理策略,复制token 使用docker安装 version: "3"services: elastic-agent: image: docker.elastic.co/beats/elastic-agent-complete:8.9.2 container_name: elastic-agent restart: always user: elastic-agent environment: - FLEET_ENROLLMENT_TOKEN=xxx - FLEET_ENROLL=1 - FLEET_URL=https://192.168.0.29:8220 - FLEET_INSECURE=true 在Synthetics创建位置并选择该代理 创建监测 设置告警

avatar 阿紫的博客网站 发表于 2023年09月13日 15:27:38

Elasticsearch 8.x升级到最新版

前言 Es升级是真快啊,几天一个版本更新,越来越好用了,8.9.2之后增加了Synthetics功能,可以直接在页面上建监测了,真香,升级起 本文只支持8.x升到8.x, 如果你是7.x,去看文档:Upgrade Elasticsearch 升级Elasticsearch 参考文档:Upgrade Elasticsearch 步骤:先升级node节点,再升级master节点 1. 停止分片分配 由于在关闭数据节点时,分配进程会等待一分钟时间,然后开始将该节点上的分片复制到群集中的其他节点,这可能会涉及大量 I/O。 但是我们的节点很快就会重新启动(升级很快),因此这种 I/O 是不必要的。因此可以在关闭数据节点前禁用复制的分配,从而避免I/O: PUT _cluster/settings{ "persistent": { "cluster.routing.allocation.enable": "primaries" }} 2. 停止不必要的索引并执行刷新(可选) POST /_flush 3. 暂时停止与活动机器学习作业和数据馈送相关联的任务(可选) 使用设置升级模式API暂时停止与你的机器学习作业和数据传输相关的任务,并防止打开新作业: POST _ml/set_upgrade_mode?enabled=true 如果没开就不用设置 4. 停止节点 如果你是用systemd命令维护es就用这个指令,如果不是,请去看官方文档 sudo systemctl stop elasticsearch.service 5. 安装新版本 用deb包或者rpm包装的可以直接安装 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.2-amd64.debwget https://...

avatar 阿紫的博客网站 发表于 2023年09月13日 15:16:53

MobaXterm配置本地端口转发使用Smartping

实操步骤 1、MobaXterm配置端口转发 7:模式选择:本地端口转发 1:转发端口:7777 (这个端口就是本地电脑的端口,127.0.0.1:7777) 2:SSH服务器:内网填内网跳板机地址,外网填外网跳板机地址 3:SSH登录名:你的3A账号 4:SSH端口:写对应的内网或者外网端口 5:Remote server:写对应CPE-wanip 6:Remote port:写对应CPE-wanip的Smartping端口:8899 保存;启用 2、CE开启Smartping 2.1、用上面隧道内的SSH服务器作为跳板机登陆CE设备 2.2、开启Smartping confset service smartping password abc12345commitsudo -ishow service smartping# 显示:runnig表示开启成功 3、浏览器访问 打开:http://127.0.0.1:7777 4、设置Smartping 4.1、系统配置 添加完节点后,输入密码保存,密码是上面设置的:abc12345 密码正确点击保存,会回显如下 5、观察状态 等五到十分钟左右,刷新一下浏览器页面就能看到数据了。 红色就是丢包,绿色正常 6、观察完关闭Smartping confdelete service smartpingcommitsa

avatar 杨杨得亿 发表于 2023年09月13日 12:35:55