2025年SCI一区智能优化算法:混沌进化优化算法(Chaotic Evolution Optimization, CEO),提供MATLAB代码
一、混沌进化优化算法
https://github.com/ITyuanshou/MATLABCode
1. 算法简介
混沌进化优化算法(Chaotic Evolution Optimization, CEO)是2025年提出的一种受混沌动力学启发的新型元启发式算法。该算法的主要灵感来源于二维离散忆阻映射的混沌进化过程,通过利用忆阻映射的超混沌特性,为进化过程引入随机搜索方向,增强了算法的全局搜索能力和收敛速度。CEO算法在2025年3月发表在中科院1区SCI期刊《Chaos, Solitons & Fractals》。
2. 算法原理
2.1 混沌映射
CEO算法采用二维离散忆阻超混沌映射来生成混沌候选个体,具体公式如下:
{ x n + 1 = a 1 x n ( 1 − x n ) + b 1 y n y n + 1 = a 2 y n ( 1 − y n ) + b 2 x n \begin{cases} x_{n+1} = a_1 x_n (1 - x_n) + b_1 y_n \\ y_{n+1} = a_2 y_n (1 - y_n) + b_2 x_n \end{cases} {xn+1=a1xn(1−xn)+b1ynyn+1=a2yn(1−yn)+b2xn
其中, a 1 , a 2 , b 1 , b 2 a_1, a_2, b_1, b_2 a1,a2,b1,b2 是控制参数,通常取值为 a 1 = 3.8 , a 2 = 3.8 , b 1 = 0.5 , b 2 = 0.5 a_1 = 3.8, a_2 = 3.8, b_1 = 0.5, b_2 = 0.5 a1=3.8,a2=3.8,b1=0.5,b2=0.5。
2.2 变异操作
-
映射个体到混沌空间:
- 从当前种群中随机选择两个个体 x t x_t xt 和 y t y_t yt。
- 将 x t x_t xt 和 y t y_t yt 映射到 [ − 0.5 , 0.5 ] [-0.5, 0.5] [−0.5,0.5] 和 [ − 0.25 , 0.25 ] [-0.25, 0.25] [−0.25,0.25] 范围内,分别记为 x ′ x' x′ 和 y ′ y' y′:
x ′ = x t − l b u b − l b − 0.5 x' = \frac{x_t - lb}{ub - lb} - 0.5 x′=ub−lbxt−lb−0.5
y ′ = y t − l b u b − l b − 0.25 y' = \frac{y_t - lb}{ub - lb} - 0.25 y′=ub−lbyt−lb−0.25
其中, l b lb lb 和 u b ub ub 分别是当前种群变量的下界和上界。
-
生成混沌候选个体:
- 使用混沌映射生成 N N N 个混沌候选个体 x chaos x_{\text{chaos}} xchaos 和 y chaos y_{\text{chaos}} ychaos:
x chaos ( n ) = k ⋅ e − cos ( n π ) − 1 ⋅ x t x_{\text{chaos}}(n) = k \cdot e^{-\cos(n\pi)} - 1 \cdot x_t xchaos(n)=k⋅e−cos(nπ)−1⋅xt
y chaos ( n ) = y t ′ + x t y_{\text{chaos}}(n) = y'_t + x_t ychaos(n)=yt′+xt
其中, k k k 是一个常数,通常取值为 k = 1 k = 1 k=1。
- 使用混沌映射生成 N N N 个混沌候选个体 x chaos x_{\text{chaos}} xchaos 和 y chaos y_{\text{chaos}} ychaos:
-
映射回实际位置:
- 将混沌候选个体映射回实际位置:
x chaos ′ = x chaos ⋅ 0.5 ⋅ ( u b − l b ) + l b x_{\text{chaos}'} = x_{\text{chaos}} \cdot 0.5 \cdot (ub - lb) + lb xchaos′=xchaos⋅0.5⋅(ub−lb)+lb
y chaos ′ = y chaos ⋅ 0.25 ⋅ 2 ⋅ ( u b − l b ) + l b y_{\text{chaos}'} = y_{\text{chaos}} \cdot 0.25 \cdot 2 \cdot (ub - lb) + lb ychaos′=ychaos⋅0.25⋅2⋅(ub−lb)+lb
- 将混沌候选个体映射回实际位置:
-
生成进化方向:
- 计算进化方向 d x t n d_{x_t}^n dxtn 和 d y t n d_{y_t}^n dytn:
d x t n = x chaos ′ n − x t d_{x_t}^n = x_{\text{chaos}'}^n - x_t dxtn=xchaos′n−xt
d y t n = y chaos ′ n − y t d_{y_t}^n = y_{\text{chaos}'}^n - y_t dytn=ychaos′n−yt
- 计算进化方向 d x t n d_{x_t}^n dxtn 和 d y t n d_{y_t}^n dytn:
-
变异操作:
- 使用进化方向更新个体:
x t + 1 = x t + a ⋅ d x t n x_{t+1} = x_t + a \cdot d_{x_t}^n xt+1=xt+a⋅dxtn
y t + 1 = y t + a ⋅ d y t n y_{t+1} = y_t + a \cdot d_{y_t}^n yt+1=yt+a⋅dytn
其中, a a a 是搜索步长,通常取值为 a = 0.5 a = 0.5 a=0.5。
- 使用进化方向更新个体:
2.3 交叉操作
- 生成试验向量:
- 对于每个维度 j j j,生成一个随机数 r j r_j rj,如果 r j < C R r_j < CR rj<CR 或 j = j rand j = j_{\text{rand}} j=jrand,则试验向量 x trial n x_{\text{trial}}^n xtrialn 为变异个体 x t + 1 n x_{t+1}^n xt+1n,否则为当前个体 x t n x_t^n xtn:
x trial n = { x t + 1 n , if r j < C R or j = j rand x t n , otherwise x_{\text{trial}}^n = \begin{cases} x_{t+1}^n, & \text{if } r_j < CR \text{ or } j = j_{\text{rand}} \\ x_t^n, & \text{otherwise} \end{cases} xtrialn={xt+1n,xtn,if rj<CR or j=jrandotherwise
其中, C R CR CR 是交叉概率,通常取值为 C R = 0.7 CR = 0.7 CR=0.7, j rand j_{\text{rand}} jrand 是随机选择的一个维度。
- 对于每个维度 j j j,生成一个随机数 r j r_j rj,如果 r j < C R r_j < CR rj<CR 或 j = j rand j = j_{\text{rand}} j=jrand,则试验向量 x trial n x_{\text{trial}}^n xtrialn 为变异个体 x t + 1 n x_{t+1}^n xt+1n,否则为当前个体 x t n x_t^n xtn:
2.4 选择操作
- 选择操作:
- 计算当前个体 x t x_t xt 和试验向量 x trial n x_{\text{trial}}^n xtrialn 的适应度值。
- 如果 f ( x trial n ) < f ( x t ) f(x_{\text{trial}}^n) < f(x_t) f(xtrialn)<f(xt),则用 x trial n x_{\text{trial}}^n xtrialn 替换 x t x_t xt,否则保持 x t x_t xt 不变:
x t + 1 = { x trial n , if f ( x trial n ) < f ( x t ) x t , otherwise x_{t+1} = \begin{cases} x_{\text{trial}}^n, & \text{if } f(x_{\text{trial}}^n) < f(x_t) \\ x_t, & \text{otherwise} \end{cases} xt+1={xtrialn,xt,if f(xtrialn)<f(xt)otherwise
3. 算法特点
- 混沌特性:利用二维离散忆阻映射的超混沌特性,增强全局搜索能力。
- 快速收敛:通过在最优解附近进行局部搜索,加快算法的收敛速度。
- 简单易实现:算法结构简单,参数较少,易于实现和应用。
4.算法描述

输入
func:目标函数。N:混沌采样数量。Np:种群大小。MaxFES:最大函数评估次数。
输出
Best:最优变量。fBest:最优函数值。
算法步骤
-
初始化迭代计数器:
- t = 1 t = 1 t=1
-
初始化种群并评估种群:
[Population, fit, fBest, Best] = Initialization(func, Np, Dim)- F E v a l s = N p FEvals = Np FEvals=Np
-
主循环:
-
当 F E v a l s < M a x F E S FEvals < MaxFES FEvals<MaxFES 时,执行以下步骤:
-
重复:
- 从种群中选择两个不同的个体 [ x t , y t ] [x_t, y_t] [xt,yt]
- 对 x t x_t xt 和 y t y_t yt 进行区间映射,得到 [ x t ′ , y t ′ ] [x_t', y_t'] [xt′,yt′],执行公式 (4)。
- 通过执行公式 (2) 生成 N N N 个混沌个体 [ x chaos , y chaos ] [x_{\text{chaos}}, y_{\text{chaos}}] [xchaos,ychaos]
- 通过执行公式 (5) 得到实际位置 [ x chaos ′ , y chaos ′ ] [x_{\text{chaos}}', y_{\text{chaos}}'] [xchaos′,ychaos′]
- 如果 r a n d < 0.5 rand < 0.5 rand<0.5,则执行公式 (7) 进行变异操作,得到 [ x ˉ t + 1 n , y ˉ t + 1 n ] [\bar{x}_{t+1}^n, \bar{y}_{t+1}^n] [xˉt+1n,yˉt+1n]
- 否则,执行公式 (8) 进行变异操作,得到 [ x ˉ t + 1 n , y ˉ t + 1 n ] [\bar{x}_{t+1}^n, \bar{y}_{t+1}^n] [xˉt+1n,yˉt+1n]
- 生成随机数 C r = rand ( 0 , 1 ) C_r = \text{rand}(0, 1) Cr=rand(0,1)
- 通过执行公式 (9) 进行交叉操作,得到 [ x trial n , y trial n ] [x_{\text{trial}}^n, y_{\text{trial}}^n] [xtrialn,ytrialn]
- 通过执行公式 (10) 和 (11) 进行选择操作,得到 [ x t + 1 , y t + 1 ] [x_{t+1}, y_{t+1}] [xt+1,yt+1]
- 更新种群和适应度值 [ P o p u l a t i o n , f i t ] [Population, fit] [Population,fit]
- F E v a l s = F E v a l s + 2 ⋅ N FEvals = FEvals + 2 \cdot N FEvals=FEvals+2⋅N
-
直到:
- 种群中的所有个体都被选择一次。
-
更新迭代计数器:
- t = t + 1 t = t + 1 t=t+1
-
-
-
结束主循环:
-
返回结果:
- 返回最优变量 B e s t Best Best 和最优函数值 f B e s t fBest fBest
5.详细步骤说明
-
初始化:
- 初始化种群并评估每个个体的适应度值,确定当前最优解 B e s t Best Best 和最优函数值 f B e s t fBest fBest。
-
主循环:
- 在主循环中,通过混沌映射生成混沌个体,并进行变异、交叉和选择操作,逐步更新种群,直到达到最大函数评估次数 M a x F E S MaxFES MaxFES。
-
变异操作:
- 根据随机数 r a n d rand rand 的值,选择执行公式 (7) 或公式 (8) 进行变异操作,生成新的变异个体。
-
交叉操作:
- 通过公式 (9) 进行交叉操作,生成试验向量。
-
选择操作:
- 通过公式 (10) 和 (11) 进行选择操作,更新种群中的个体。
-
更新种群:
- 更新种群和适应度值,继续下一次迭代。
6. 参考文献
[1]Yingchao Dong, Shaohua Zhang, Hongli Zhang, Xiaojun Zhou, Jiading Jiang, Chaotic evolution optimization: A novel metaheuristic algorithm inspired by chaotic dynamics, Chaos, Solitons & Fractals, Volume 192, 2025, 116049, https://doi.org/10.1016/j.chaos.2025.116049.
[2]https://github.com/ITyuanshou/MATLABCode/blob/main/MATLABcode
二、核心MATLAB代码
https://github.com/ITyuanshou/MATLABCode
function [Best, fBest, history] = CEO(func, Np, Dim, Varmin, Varmax, N)
rand('state', sum(100*clock));if mod(Np,2)~=0error('Np must be set to an even number greater than 2!')
end% Search Range
if length(Varmin)== 1lu = repmat([Varmin; Varmax], 1, Dim);
elselu = [Varmin; Varmax];
end% Initialize the main population
[Population,fit,fBest,Best] = Initialization(func,lu, Np, Dim);
history(1) = fBest;% chaotic initial search domain
low_chacos = [-0.5 -0.25];
up_chacos = [0.5 0.25];t = 1; % Initialization iteration number
counter = 0;
while 1oldfBest = fBest;rand_num = randperm(Np);ub = max(Population); % Upper limit of population per iterationlb = min(Population); % Lower limit of population per iterationfor i = 1:2:Npindex = rand_num(i:i+1);xy = Population(index,:); % Randomly select two individuals% Perform interval mapping on xt and yt by executing Eq. (4).xy_dot = ((xy - lb)./(ub - lb)).*(repmat(up_chacos',1,Dim) - repmat(low_chacos',1,Dim)) + repmat(low_chacos',1,Dim);% N chaotic individuals are obtained by executing Eq. (2)[x_chaos,y_chaos] = EDM(xy_dot(1,:),xy_dot(2,:),N);chaos_total = [x_chaos;y_chaos]; % Merging particles created by chaosfor k = 1 : 2 % Evaluate each chaotic sequencexy_chaos = chaos_total((k-1)*N+1 : k*N,:);% Executing Eq. (5) yields the actual position of the corresponding optimization problem.xy_chaos_dot = (( xy_chaos - repmat(low_chacos(:,k),1,Dim) )./(repmat(up_chacos(:,k),1,Dim) - repmat(low_chacos(:,k),1,Dim) )).*(ub - lb) + lb; if rand < 0.5 % xy_hat = xy(k,:) + rand(N,1).*( xy_chaos_dot - xy(k,:) ); % Mutation Eq. (7)elsexy_hat = Best + rand(N,1).*( xy_chaos_dot - xy(k,:) ); % Mutation Eq. (8)endCR = rand ;xy_trial = Binomial_crossover(xy(k,:), xy_hat, CR); % Crossover Eq. (9)xy_trial = boundConstraint (xy_trial, lu);fit_xy_trial = fitness(func,xy_trial);[fBest_xy_trial,index_best] = min(fit_xy_trial);xy_trial_star = xy_trial(index_best,:);if fBest_xy_trial < fit(index(k)) % Selection Eq. (10)Population(index(k),:) = xy_trial_star;fit(index(k)) = fBest_xy_trial;endendend[fBest,index_best] = min(fit);Best = Population(index_best,:);t = t + 1;% termination conditionsif norm(oldfBest-fBest) < 1e-8 % can be changedcounter = counter + 1;if counter > 50 % can be changeddisp('满足停止条件');break;endelsecounter = 0;endif mod(t,100)==0fprintf('iter=%d ObjVal=%g\n',t,fBest);endhistory(t) = fBest;endendfunction [X,Y] = EDM(x0,y0,itermax)
% exponential discrete memristor (E-DM) map
k = 2.66;
x = x0; % trajectory domain [-1,1]
y = y0;% trajectory domain [-0.5,0.5]
xo = x;
yo = y;
% System iteration
for j = 1:itermaxxn = k*(exp(-cos(pi.*yo))-1).*xo;yn = yo + xo;% Stored iteration valuex =[x; xn];y =[y; yn];% Update the initial value of each iterationxo = xn;yo = yn;
end
X =x(2:end,:);
Y =y(2:end,:);
endfunction u = Binomial_crossover(p, v, CR)
% Binomial crossover
[N,dim] = size(v);
j_rand = floor(rand(N,1) * dim) + 1;
t = rand(N, dim) < CR;
t(N, j_rand) = 1;
u = t .* v + (1 - t) .* p;
endfunction fit = fitness(func,x)
% calculate fitness
SE = size(x,1);
fit = zeros(SE,1);
for i = 1:SEfit(i) = feval(func,x(i,:));
end
end相关文章:
2025年SCI一区智能优化算法:混沌进化优化算法(Chaotic Evolution Optimization, CEO),提供MATLAB代码
一、混沌进化优化算法 https://github.com/ITyuanshou/MATLABCode 1. 算法简介 混沌进化优化算法(Chaotic Evolution Optimization, CEO)是2025年提出的一种受混沌动力学启发的新型元启发式算法。该算法的主要灵感来源于二维离散忆阻映射的混沌进化过…...
普中单片机-51TFT-LCD显示屏(1.8寸 STM32)
普中官方论坛: http://www.prechin.cn/gongsixinwen/208.html 普中科技-各型号开发板资料链接:https://www.bilibili.com/read/cv23681775/?spm_id_from333.999.0.0 27-TFTLCD显示实验_哔哩哔哩_bilibili 2.程序烧录 2.1设置彩屏驱动 3.实验效果...
SGMII(Serial Gigabit Media Independent Interface)详解
一、SGMII的定义与作用 SGMII(串行千兆介质无关接口)是一种用于千兆以太网(1Gbps)的串行接口标准,旨在通过减少引脚数量和简化设计,实现MAC层与PHY芯片之间的高速通信。其核心作用包括: 引脚精…...
DeepSeek:我的AI助手之旅
★【前言】: 初次使用AI助手帮我写作,就像摸石头过河一样,一点点的前行。我在慢慢的摸索,慢慢的体会中,感悟出的一点个人心得体会现分享给大家。这也说明一个问题,网站上各种使用方法和技巧是对于已经使用过的人来说的方便和快捷,但对于刚刚接触的使用者来说,网上的各…...
图片批量去重---(均值哈希、插值哈希、感知哈希、三/单通道直方图)
一、整体步骤 本脚本中,关键步骤包括以下步骤: 1、图片加载: 脚本会遍历指定的图片目录,将所有图片加载到内存中。 2、图像预处理: 比较之前,通常需要对图片进行预处理,如调整大小、灰度化或直方…...
Linux:(3)
一:Linux和Linux互传(压缩包) scp:Linux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的,rcp 是不加密的,scp 是…...
vscode设置自动换行
vscode设置自动换行 方法 方法 点击文件->首选项->设置。搜索word wrap -> 选择 on 。 搜索Word Wrap,并把选项改为on。...
Instagram 隐私设置全面解析:如何保护你的个人数据?
Instagram 隐私设置全面解析:如何保护你的个人数据? 在这个数字化时代,社交媒体平台如 Instagram 已成为我们日常生活的一部分。然而,随着个人信息泄露和隐私侵犯事件的频发,保护个人数据变得尤为重要。本文将全面解析…...
Activiti 5 + Spring Boot全流程开发指南
目录 一、环境搭建(Spring Boot 2.x) 1.1 依赖配置 1.2 配置文件 二、流程定义与部署 2.1 创建BPMN文件(leave.bpmn) 2.2 流程部署服务 三、流程操作核心实现 3.1 启动流程实例 3.2 查询待办任务 四、审批流程处理 4.1 …...
spring结合mybatis多租户实现单库分表
实现单库分表 思路:student表数据量大,所以将其进行分表处理。一共有三个分表,分别是student0,student1,student2,在新增数据的时候,根据请求头中的meta-tenant参数决定数据存在哪张表表。 数…...
面向对象编程(OOP)基础:Java入门指南
引言 随着计算机技术的发展,软件的应用越来越复杂,单个程序的功能也逐渐增多。为了提高代码的复用性和可维护性,Java语言引入了**面向对象编程(Object-Oriented Programming, OOP)**这一设计理念。 OOP是一种设计程序…...
day7作业
编写一个如下场景: 有一个英雄Hero类,私有成员,攻击(Atx),防御(Defense),速度(Speed),生命值(Blood),以及所有的set get 方…...
图像处理之图像边缘检测算法
目录 1 图像边缘检测算法简介 2 Sobel边缘检测 3 经典的Canny边缘检测算法 4 演示Demo 4.1 开发环境 4.2 功能介绍 4.3 下载地址 参考 1 图像边缘检测算法简介 图像边缘检测是计算机视觉和图像处理中的基本问题,主要目的是提取图像中明暗变化明显的边缘细节…...
第二十五 :搭建 pinia 环境
第一步:npm install pinia 第二步:操作src/main.ts import { createApp } from vue import App from ./App.vue /* 引入createPinia,用于创建pinia */ import { createPinia } from pinia /* 创建pinia */ const pinia createPinia(…...
学习Java数组操作:从基础到高级技巧详解
在Java编程中,数组是一种非常基础且常用的非 primitives 数据结构,它用于存储一组相同类型的值。无论是数据处理、遍历还是其他操作,数组都是一个不可或缺的工具。本文将从数组的基本概念开始,逐步介绍常用的操作方法,…...
算法题(79):两个数组的交集
审题: 本题需要我们查找两个给定数组的无重复数据交集,并以数组的形式返回 思路: 方法一:set 之前我们学习过unordered_set的使用,但是unordered_set是无序的,而这里我们的比对算法需要有序数据,…...
TFChat:腾讯大模型知识引擎+飞书机器人实现AI智能助手
效果 TFChat项目地址 https://github.com/fish2018/TFChat 腾讯大模型知识引擎用的是DeepSeek R1,项目为sanic和redis实现,利用httpx异步处理流式响应,同时使用buffer来避免频繁调用飞书接口更新卡片的网络耗时。为了进一步减少网络IO消耗&…...
Linux红帽:RHCSA认证知识讲解(四)修改远程配置文件,取消root禁用,便于使用root身份远程
Linux红帽:RHCSA认证知识讲解(四)修改远程配置文件,取消root禁用,便于使用root身份远程 前言一、远程连接的用途和原因二、通过 ssh 远程登陆系统三、默认限制及解决方案(一)非常规方法一&#…...
验证码介绍及生成与验证(HTML + JavaScript实现)
验证码介绍及生成与验证(HTML JavaScript实现) 验证码 验证码(全自动区分计算机和人类的图灵测试,CAPTCHA ,Completely Automated Public Turing test to tell Computers and Humans A…...
文心一言AI创意画
介绍 文心一言是百度推出的新一代知识增强大语言模型,属于文心大模型家族的新成员。它能够与人对话互动、回答问题、协助创作,高效便捷地帮助人们获取信息、知识和灵感。 特点 文心一言基于数万亿数据和数千亿知识进行融合学习,采用预训…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
Spring AOP代理对象生成原理
代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...
