Apache Doris (五) :Doris分布式部署(二) FE扩缩容

news2024/11/17 20:46:11

目录

1. 通过MySQL客户端连接Doris

​​​​​​​​​​​​​​2. FE Follower扩缩容

​​​​​​​3. FE Observer 扩缩容

​​​​​​​​​​​​​​4. FE扩缩容注意点


进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容!


FE扩缩容包括FE中Follower的扩缩容和FE中Observer的扩缩容,根据节点划分,这里配置3台Follower(node1~node3)和2台Observer(node4、node5)。

​​​​​​​1. 通过MySQL客户端连接Doris

Doris 采用 MySQL 协议进行通信,用户可通过 MySQL client 或者 MySQL JDBC连接到 Doris 集群。选择 MySQL client 版本时建议采用5.1 之后的版本,因为 5.1 之前不能支持长度超过 16 个字符的用户名。

给FE进行扩容同样需要通过MySQL客户端来连接Doris FE ,可以在node1节点上下载免安装的MySQL,命令如下:

[root@node1 ~]# cd /software/
[root@node1 ~]# wget https://cdn.mysql.com//archives/mysql-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

也可以在资料中获取“mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz”文件。

下载完成免安装mysql后,进行解压,在bin/目录下可以找打mysql命令行工具,然后执行命令连接Doris即可,具体操作如下:

#解压 mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
[root@node1 software]# tar -zxvf ./mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 

#修改名称
[root@node1 software]# mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql-5.7.22-client

#连接Doris
[root@node1 bin]# ./mysql -u root -P9030 -h127.0.0.1

注意:

  1. 连接Doris使用的 root 用户是 doris 内置的默认用户,也是超级管理员用户。关于用户权限设置可以参照官网:https://doris.apache.org/zh-CN/docs/dev/admin-manual/privilege-ldap/user-privilege/
  2. -P 是连接 Doris 的查询端口,默认端口是 9030,对应的是fe.conf里的 query_port。
  3. -h 是我们连接的 FE IP地址,如果你的客户端和 FE 安装在同一个节点可以使用127.0.0.1,这种也是 Doris 提供的如果你忘记 root 密码,可以通过这种方式不需要密码直接连接登录,进行对 root 密码进行重置。
  • 给root用户设置密码,操作如下:
#给当前登录的root用户设置密码为123456
mysql> set password = password('123456');

通过以上设置密码后,再次访问http://node1:8030时,密码需要指定成设置的密码,否则登录不上。

  • 查看Doris FE运行状态:
mysql> show frontends\G
*************************** 1. row ***************************
             Name: 192.168.179.4_9010_1675512391847
               IP: 192.168.179.4
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 1228
    LastHeartbeat: 2023-02-04 21:21:23
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: Yes
1 row in set (0.02 sec)

注意:如果 IsMaster、Join 和 Alive 三列均为true,则表示节点正常。

​​​​​​​​​​​​​​2. FE Follower扩缩容

可以通过将Apache Doris FE扩容至3个以上节点来实现FE的高可用,FE节点的扩容和缩容过程中不影响当前系统的运行。根据前面集群的规划要在node1~node3节点上搭建Apache Doris FE,目前在node1搭建好了FE并启动,该启动的FE自动成为Leader,下面在node2和node3节点配置FE后加入到Apache Doris 集群中,给Doris集群扩容,详细步骤如下:

1. 准备FE 安装包

将node1节点上配置好的FE安装包发送到node2,node3节点上

[root@node1 ~]# cd /software/doris-1.2.1/
[root@node1 doris-1.2.1]# scp -r ./apache-doris-fe/ node2:/software/doris-1.2.1/
[root@node1 doris-1.2.1]# scp -r ./apache-doris-fe/ node3:/software/doris-1.2.1/

发送完成后,在node2、node3节点将“apache-doris-fe/doris-meta/”元数据清空或者重新创建该目录,否则后续启动Follower FE有问题,操作如下:

#node2节点
[root@node2 ~]# rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

#node3节点
[root@node3 ~]# rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

​​​​​​​​​​​​​​2. 在node2、node3上修改fe.conf配置文件

这里node2,node3 节点FE配置同node1配置,两台节点中只需要配置/software/doris-1.2.1/apache-doris-fe/conf/fe.conf配置文件中priority_networks 参数为当前节点的ip即可。

# vim /software/doris-1.2.1/apache-doris-fe/conf/fe.conf
...
priority_networks = 192.168.179.5/24 #node2节点
...
...
priority_networks = 192.168.179.6/24 #node3节点
...

​​​​​​​3. 在node2、node3上启动FE

node2、node3节点配置FE完成后,由于是Follower角色,已经存在node1为Leader,所以第一次启动时需要执行如下命令,指定Leader所在节点IP和端口,端口为在fe.conf中edit_log_port配置项,默认为9010。

#node2节点启动FE
[root@node2 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node2 bin]# ./start_fe.sh --helper node1:9010 --daemon

#node3节点启动FE
[root@node3 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node3 bin]# ./start_fe.sh --helper node1:9010 --daemon

注意:--helper 参数仅在follower 和observer第一次启动时才需要。

​​​​​​​​​​​​​​4. 添加FE Follower 到Doris集群

在node1中进入mysql客户端,连接到Doris集群,执行如下命令,将node2,node3启动的FE加入到集群中。

#在node1中通过mysql连接doris集群
[root@node1 bin]# ./mysql -u root -P9030 -h127.0.0.1

#执行命令,将FE Follower加入到Doris集群中
mysql> ALTER SYSTEM ADD FOLLOWER "node2:9010";
Query OK, 0 rows affected (0.05 sec)

mysql> ALTER SYSTEM ADD FOLLOWER "node3:9010";
Query OK, 0 rows affected (0.02 sec)

添加完成之后可以访问node1~node3任何一台节点的8030端口登录WebUI,查看对应的FE信息,这里登录http://node1:8030查看FE信息:

也可以通过SQL “show frontends\G”命令来查询集群信息,当加入了更多的FE后,我们可以在node1 mysql 客户端连接到node1~node3的任何一台节点来编写SQL。

#连接node3 FE 编写SQL
[root@node1 bin]# ./mysql -uroot -P9030 -h192.168.179.6 -p123456
mysql> show frontends\G;
*************************** 1. row ***************************
             Name: 192.168.179.4_9010_1675512391847
               IP: 192.168.179.4
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 3038
    LastHeartbeat: 2023-02-06 12:57:40
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: Yes
*************************** 2. row ***************************
             Name: 192.168.179.5_9010_1675659168809
               IP: 192.168.179.5
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 3037
    LastHeartbeat: 2023-02-06 12:57:40
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
*************************** 3. row ***************************
             Name: 192.168.179.6_9010_1675659173265
               IP: 192.168.179.6
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 3037
    LastHeartbeat: 2023-02-06 12:57:40
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
3 rows in set (0.05 sec)

ERROR: 
No query specified

至此,Apache Doris集群中已经完成3台FE Follower的部署(node1~node3)。

对FE Follower扩容完成后,也可以通过以下命令来进行FE Follower缩容,删除FE Follower节点,需要保证最终剩余的Follower(包括Leader)节点为奇数,这里不再演示FE缩容。

#对FE进行缩容命令
ALTER SYSTEM DROP FOLLOWER "fe_host:edit_log_port";

注意:如果缩容后再将该节点加入到集群中需要清空元数据目录:rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

​​​​​​​3. FE Observer 扩缩容

Observer的扩缩容也是基于已有一台FE Leader的前提下进行,这里node1为FE Leader,我们将要在node4,node5节点上配置Observer,Observer配置流程与FE Follower的扩缩容大体一致,步骤如下:

1. 准备FE 安装包

将node1节点上配置好的FE安装包发送到node4,node5节点上

[root@node1 ~]# cd /software/doris-1.2.1/
[root@node1 doris-1.2.1]# scp -r ./apache-doris-fe/ node4:/software/doris-1.2.1/
[root@node1 doris-1.2.1]# scp -r ./apache-doris-fe/ node5:/software/doris-1.2.1/

发送完成后,在node4、node5节点将“apache-doris-fe/doris-meta/”元数据清空或者重新创建该目录,否则后续启动Follower FE有问题,操作如下:

#node4节点清空doris-meta目录
[root@node4 ~]# rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

#node5节点清空doris-meta目录
[root@node5 ~]# rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

​​​​​​​​​​​​​​2. 在node4、node5上修改fe.conf配置文件

这里node4,node5 节点FE配置同node1配置,两台节点中只需要配置/software/doris-1.2.1/apache-doris-fe/conf/fe.conf配置文件中priority_networks 参数为当前节点的ip即可。

# vim /software/doris-1.2.1/apache-doris-fe/conf/fe.conf
...
priority_networks = 192.168.179.7/24 #node4节点
...
...
priority_networks = 192.168.179.8/24 #node5节点
...

​​​​​​​​​​​​​​3. 在node4、node5上启动FE

node4、node5节点配置FE完成后,由于是Observer角色,已经存在node1为FE Leader,与添加Follower一样,第一次启动时需要执行如下命令,指定Leader所在节点IP和端口,端口为在fe.conf中edit_log_port配置项,默认为9010。

#node4节点启动FE
[root@node4 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node4 bin]# ./start_fe.sh --helper node1:9010 --daemon

#node5节点启动FE
[root@node5 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node5 bin]# ./start_fe.sh --helper node1:9010 --daemon

注意:--helper 参数仅在follower 和observer第一次启动时才需要。

​​​​​​​​​​​​​​4. 添加FE Observer到Doris集群

在node1中进入mysql客户端,连接到Doris集群,执行如下命令,将node4,node5启动的FE加入到集群中。

#在node1中通过mysql连接doris集群
[root@node1 bin]# ./mysql -u root -P9030 -h127.0.0.1

#执行命令,将FE Observer加入到Doris集群中
mysql> ALTER SYSTEM ADD OBSERVER "node4:9010";
Query OK, 0 rows affected (0.05 sec)

mysql> ALTER SYSTEM ADD OBSERVER "node5:9010";
Query OK, 0 rows affected (0.02 sec)

注意:以上添加OBSERVER 操作与添加FOLLOWER操作命令类似,只是添加的角色不同:ALTER SYSTEM ADD FOLLOWER[OBSERVER] "fe_host:edit_log_port"。

添加完成之后可以访问node1~node5任何一台节点的8030端口登录WebUI,查看对应的FE信息,这里登录http://node1:8030查看FE信息:

 也可以通过SQL “show frontends\G”命令来查询集群信息,当加入了更多的FE后,我们可以在node1 mysql 客户端连接到node1~node5的任何一台节点来编写SQL。

#连接node5 FE 编写SQL
[root@node1 bin]# ./mysql -uroot -P9030 -h192.168.179.8 -p123456
mysql> show frontends\G;
*************************** 1. row ***************************
             Name: 192.168.179.8_9010_1675670545934
               IP: 192.168.179.8
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: OBSERVER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6430
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: false
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: Yes
*************************** 2. row ***************************
             Name: 192.168.179.4_9010_1675512391847
               IP: 192.168.179.4
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6431
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
*************************** 3. row ***************************
             Name: 192.168.179.5_9010_1675659168809
               IP: 192.168.179.5
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6430
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
*************************** 4. row ***************************
             Name: 192.168.179.6_9010_1675659173265
               IP: 192.168.179.6
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6430
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
*************************** 5. row ***************************
             Name: 192.168.179.7_9010_1675670543490
               IP: 192.168.179.7
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: OBSERVER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6430
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: false
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
5 rows in set (0.10 sec)

至此,Apache Doris集群中已经完成3台FE Follower的部署(node1~node3)、2台Observer的部署(node4、node5)。

对FE Observer扩容完成后,也可以通过以下命令来进行FE Observer缩容,删除FE Observer节点。操作如下:

#将node4、node5 FE Observer进行缩容命令
mysql> ALTER SYSTEM DROP OBSERVER "node4:9010";
mysql> ALTER SYSTEM DROP OBSERVER "node5:9010";

对Observer进行缩容后,再次将对应节点node4、node5加入到Doris FE中就可以按照扩容操作实现。这里只需要将node4、node5节点上“/software/doris-1.2.1/apache-doris-fe/doris-meta”元数据目录清空,启动node4、node5对应的FE进程,然后执行添加命令即可:

#node4节点启动FE
[root@node4 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node4 bin]# ./start_fe.sh --helper node1:9010 --daemon

#node5节点启动FE
[root@node5 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node5 bin]# ./start_fe.sh --helper node1:9010 --daemon

#将node4、node5 FE OBserver 再次加入到Doris集群命令
mysql> ALTER SYSTEM ADD OBSERVER "node4:9010";
mysql> ALTER SYSTEM ADD OBSERVER "node5:9010";

​​​​​​​​​​​​​​4. FE扩缩容注意点

FE 进行扩缩容时需要注意以下几点:

  1. Follower FE(包括 Leader)的数量必须为奇数,建议最多部署 3 个组成高可用(HA)模式即可。
  2. 当 FE 处于高可用部署时(1个 Leader,2个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力。当然也可以继续增加 Follower FE,但几乎是不必要的。
  3. 通常一个 FE 节点可以应对 10-20 台 BE 节点。建议总的 FE 节点数量在 10 个以下。而通常3个即可满足绝大部分需求。
  4. 添加FE 时需要将对应安装包中doris-meta目录清空。
  5. helper 不能指向 FE 自身,必须指向一个或多个已存在并且正常运行中的 Master/Follower FE。
  6. 删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点为奇数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/705620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超详细|粒子群优化算法及其MATLAB实现

本文主要介绍粒子群算法的背景与理论,并结合对应部分的MATLAB程序对其实现流程做了阐述,代码获取方式见文末。 00 文章目录 1 粒子群优化算法 2 问题导入 3 MATLAB程序实现 4 改进策略 5 展望 01 粒子群优化算法 1.1 粒子群优化算法背景 近年来&…

亿发软件:智慧中药房信息化建设,中医药安全煎煮解决方案

传统的中药饮片煎煮服用较为繁琐,局限了诸多人群的使用。为了优化医疗服务,并满足患者不断增长的中医药需求,智慧中药房的概念应运而生。智慧化中药房通过信息化和自动化相结合,旨在提高中药处方的管理和效率。下面就让我们了解一下中药配方颗…

创建一个nuxt项目

yarn create nuxt-app ssr 启动项目 如果使用npm run start 可能会报错,提示需要配置为开发环境 可以先执行npm run dev 看看

HPM6750系列--第三篇 搭建MACOS编译和调试环境

一、目的 在上一篇《HPM6750系列--第二篇 搭建Ubuntu开发环境》我们介绍了Ubuntu上开发HPM6750,本篇主要介绍MAC系统上的开发环境的搭建过程,整个过程和Ubuntu上基本类似。 二、准备 首先我们在Mac电脑上打开一个terminal,然后创建一个…

苹果Vision Pro手势+眼球融合交互的奥秘

毫无疑问,Vision Pro在眼球追踪手势的融合交互体验上,给AR/VR头戴设备带来了新突破,在用户体验上的提升非常明显。 ​那么,为什么Vision Pro上这一功能会被如此值得关注呢?为了弄清楚,我们先来看看主流VR设…

037:mapboxGL输入经纬度,地址坐标转换,弹出位置点地址信息

第037个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中输入经纬度,地址坐标转换,弹出位置点地址信息. 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共158行)相关API参考:专栏目标示例效果 配置方式…

配置Jenkins slave agent(通过jnlp)方式连接

上一章,使用ssh的方式添加了两个agent,并都成功完成了构建任务,这一章使用jnlp的方式配置agent,jnlp方式配置agent有个好处,就是agent是主动去找到Master请求连接的,master->agent的通道可以配置一个age…

【AUTOSAR】BMS开发实际项目讲解(二十九)----电池管理系统电池充放电功率控制与SOC

电池充放电功率控制 关联的系统需求 Sys_Req_3901、Sys_Req_3902、Sys_Req_3903、Sys_Req_3904; 功能实现描述 电池充放电功率控制主要包括以下内容: 60S可用功率 参见[CELL] 30S可用功率 参见[CELL] 10S可用功率 参见[CELL] SOP算法 ID Description ASI…

LVDS接口ADC要点数据采集流程

一:要点 1.如果两片AD,四路输出做了同步化处理之后,一定只用同步化模块读时钟(一片AD的时钟)去上传数据,到DDR3模块。 2.ADS42和LTC2208的ADC的数据伴随时钟都来源与输入的采样时钟(有些采样时…

虚拟机上用docker + nginx跑前端并支持https和http

情况是这样,我在虚拟机上,使用docker跑前端,需要这个前端支持https,原http的话自动跳转到https。另外,前端部署使用了负载均衡,即使用了3个docker跑前端:1个入口,另外2个是前端&…

Wi-Fi模块(ESP8266)详解

Wi-Fi模块——ESP8266 0. Wi-Fi模块概述1. 常见的Wi-Fi模块2. ESP8266模块2.1 概念2.2 特点 3. STM32F103C8T6使用ESP8266进行无线通信的示例代码 0. Wi-Fi模块概述 Wi-Fi模块是一种用于无线通信的设备,它能够通过Wi-Fi技术实现设备之间的无线数据传输和互联网连接…

java面试Day18

1.什么是 MySQL 执行计划?如何获取执行计划并对其进行分析? MySQL 执行计划是指 MySQL 查询优化器生成的一份详细的查询执行计划,它展示了 MySQL 在执行查询时所采取的具体执行计划,包括表的访问顺序、数据读取方式、使用的索引、…

大模型入局传统算法,LLMZip基于LLaMA-7B实现1MB文本压缩率90%!

论文链接: https://arxiv.org/abs/2306.04050 随着以ChatGPT、GPT-4为代表的AI大模型逐渐爆火进入公众视野,各行各业都开始思考如何更好的使用和发展自己的大模型,有一些评论甚至认为大模型是以人工智能为标志的第四次产业革命的核心竞争产品…

11.窗口看门狗-WWGD

1.窗口看门狗概述: (1)之所以称为窗口是因为其喂狗时间是一个有上下限的范围内(窗口),可以通过设定相关寄存器,设定其上限时间(下限时间固定)。喂狗的时间不能过早也不能过晚。而独立看门狗限制喂狗时间在0-x内&#…

Zigbee模块(CC2530)详解

Zigbee模块(CC2530) 0. Zigbee概述1. 常见的Zigbee模块2. CC2530模块3. STM32使用CC2530模块方法代码模板 0. Zigbee概述 Zigbee是一种无线通信协议,专为低功耗、低数据速率的应用而设计。它工作在2.4 GHz频段,常用于家庭自动化、…

MYSQL-SELECT语句超详解

目录 前言: SELECT语法 示例 单个字段查询 多个字段查询 查询所有字段 没有FROM的SELECT 查询系统时间 数值计算 虚拟表dual WHERE语句 示例 AND OR 比较运算符 AND OR 运算符优先级 IN NOT IN BETWEEN NOT BETWEEN LIKE EXISTS ORDER BY LIMIT …

SpringBoot(三)SpringBoot搭建简单服务端

之前的两篇文章介绍了如何使用ItelliJ社区版创建SpringBoot项目以及SpringBoot的starter。本篇,介绍下如何使用SpringBoot搭建一个简单的服务端,实现一个新用户注册的场景,供前端和移动端去使用。本篇需要你对SpringBoot的starter&#xff0c…

基于LLM构建文本生成系统

背景: 在流量存量时代,内容运营重要性不言而喻。在流量时代,内容可以不要过于多样化和差异化,只需要有足够多的人流量,按流量转化比率来看,1000个人有1%概率转化,素材不变只要增加足够多的流量…

SpringSecurity之概述

概述 是一个功能强大且高度可定制的身份验证和访问控制框架; 是一个专注于为Java应用程序提供身份验证和授权的框架 核心功能 1.认证 2.验证 3.攻击防范 原理解析 SpringSecurity 采用的是责任链的设计模式,它有一条很长的过滤器链; WebAsy…

探索分治算法:解决复杂问题的有效策略

目录 引言: 一. 基本原理: 二. 适用场景: 三. 分治算法的步骤: 四. 示例:归并排序算法 五. 优缺点: 引言: 在计算机科学中,分治算法是一种在解决复杂问题时常被使用的有效策略…