在Spring Boot中,"bean" 是一个非常重要的概念,它代表了一个由Spring容器管理的对象实例。这些对象通常用于组成应用程序的各个部分,并且可以在整个应用程序中共享和重用。Spring Boot的Bean管理是基于Spring框架的IoC(控制反转)和DI(依赖注入)原理构建的。
以下是Spring Boot中Bean的一些关键特性和用途:
总之,Spring Boot中的Bean是一种灵活且强大的机制,用于组织和管理应用程序的各个组件,使应用程序更易于维护、测试和扩展。通过Spring容器的帮助,Bean可以以一种高度可配置的方式进行管理,从而实现了松散耦合、可维护性和可测试性。
DruidDataSource dataSource = new DruidDataSource()
: 在这里,创建了一个 Druid 数据源对象。Druid 是一个流行的数据库连接池,用于管理数据库连接。
kubectl kubelet kubeadm版本: 1.23.1 操作系统版本: CentOS 8.2 64位
外网放开30000
端口,后续浏览器登陆k8s dashboard看板使用。并检查ssh服务端口22是否正常开启。
安装常用工具:
yum install -y yum-utils device-mapper-persistent-data lvm2 iproute-tc
国内存在墙的问题,添加阿里源加速:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
要创建一个定时任务,你可以使用@Scheduled
注解来标记一个方法,并指定任务的触发时间。以下是一个示例:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTask {
@Scheduled(fixedRate = 5000) // 每隔5秒执行一次
public void performScheduledTask() {
// 执行定时任务的逻辑
// 这里可以是任何你需要定期执行的代码
}
}
在上面的示例中,performScheduledTask
方法使用@Scheduled
注解标记为定时任务,fixedRate
参数指定了任务的触发时间,这里是每隔5秒执行一次。
4. 配置异步任务和定时任务
确保在你的Spring Boot应用程序的配置类上添加@EnableAsync
和@EnableScheduling
注解,以启用异步任务和定时任务的支持。例如:
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@Configuration
@EnableAsync
@EnableScheduling
public class TaskConfig {
// 配置类
}
对文本搜索一般可以分为三种类型:模糊搜索、精确搜索、分词搜索。
- 模糊搜索:如sql中的like查询语句,匹配包含搜索关键字的内容。
- 精确搜索:文本内容与搜索关键字一致。
- 分词搜索:将文本先进行分词,包括搜索关键字分词和搜索内容进行分词,再匹配相关内容。
#!/bin/bash
# 定义要关闭的应用程序的名称
APP_NAME=""
# 查找应用程序的进程ID(PID)
PID=$(ps -ef | grep "$APP_NAME" | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]; then
echo "应用程序已经停止"
else
echo "正在关闭应用程序 $APP_NAME (PID: $PID) ..."
kill -9 "$PID"
echo "应用程序已成功关闭"
fi
/ect/profile 用来设置环境变量,内容样例如下
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
export JAVA_HOME=/usr/share/jdk1.8.0_14
export PATH=$JAVA_HOME/bin:.....
MySQL 索引是一种用于提高数据库查询性能的数据结构。它们通过创建存储在表中数据的副本,以加速检索和查询操作。索引的主要目的是减少数据库系统需要扫描的数据量,从而加快数据检索的速度。
以下是一个示例数据库和示例代码,用于说明 MySQL 索引的作用和使用方式:
示例数据库:
假设我们有一个简单的学生信息数据库,其中包含一个名为 students
的表,用于存储学生的信息,包括学生ID、姓名、年龄和课程。这是一个示例的数据库表结构:
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
course VARCHAR(50)
);
表中包含以下示例数据:
student_id | name | age | course |
---|---|---|---|
1 | John | 20 | Math |
2 | Alice | 22 | History |
3 | Bob | 21 | Chemistry |
4 | Sarah | 23 | Biology |
5 | Michael | 22 | Math |
... | ... | ... | ... |
示例代码:
以下是一些示例代码,演示如何使用 MySQL 索引来优化查询操作。
创建索引:
在 students
表的 name
列上创建一个索引:
CREATE INDEX idx_name ON students (name);
查询优化:
查询所有年龄为 22 岁的学生:
SELECT * FROM students WHERE age = 22;
使用索引后,查询将更加高效,因为 MySQL 可以快速定位到年龄为 22 岁的学生。
覆盖索引:
如果只需要查询学生的姓名而不需要其他信息,可以使用覆盖索引:
SELECT name FROM students WHERE age = 22;
这将减少数据的读取量,因为只需要访问索引而不需要访问实际数据行。
联合索引:
创建一个联合索引,以优化多个列的查询:
CREATE INDEX idx_age_course ON students (age, course);
查询年龄为 22 岁且课程为 "Math" 的学生:
SELECT * FROM students WHERE age = 22 AND course = 'Math';
联合索引可以加速复合条件的查询。
总之,MySQL 索引是用来提高数据库查询性能的重要工具。通过创建适当的索引,可以加速常见查询操作,减少数据扫描的时间,从而提高数据库的响应速度。但是,需要谨慎使用索引,因为不当使用索引可能会导致性能下降。在设计数据库时,需要根据具体的查询需求和数据分布情况来选择创建哪些索引。
在MySQL中,有多种类型和方法的索引可供选择,每种类型和方法都有其适用的场景和特点。以下是一些常见的MySQL索引类型和方法以及如何使用它们的示例:
1. B-Tree 索引: B-Tree(平衡树)索引是最常见的索引类型,用于支持等值查询、范围查询和排序操作。
示例: 创建一个B-Tree索引来优化students
表中的student_id
列:
CREATE INDEX idx_student_id ON students (student_id);
2. 哈希索引: 哈希索引是用于等值查询的特殊索引类型,适用于只需要精确匹配的情况。
示例: 创建一个哈希索引来优化users
表中的user_id
列:
CREATE INDEX idx_user_id ON users (user_id) USING HASH;
3. 全文索引: 全文索引用于支持全文搜索,通常在文本列上使用。
示例: 创建一个全文索引来优化articles
表中的content
列:
CREATE FULLTEXT INDEX idx_content ON articles (content);
4. 空间索引: 空间索引用于地理空间数据,支持地理空间查询。
示例: 创建一个空间索引来优化locations
表中的coordinates
列:
CREATE SPATIAL INDEX idx_coordinates ON locations (coordinates);
5. 联合索引: 联合索引是在多个列上创建的索引,用于优化多条件的查询。
示例: 创建一个联合索引来优化orders
表中的customer_id
和order_date
列:
CREATE INDEX idx_customer_order ON orders (customer_id, order_date);
6. 前缀索引: 前缀索引是在列的一部分上创建的索引,用于减少索引大小。
示例: 创建一个前缀索引来优化products
表中的product_name
列的前5个字符:
CREATE INDEX idx_product_name ON products (product_name(5));
7. 自定义索引方法: MySQL允许您创建自定义索引方法,以满足特定的查询需求。
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
启动kafka之前必须启动zookeeper
zookeeper集群,查看进程
启动kafka
启动脚本
不能通过命令行的方式去修改副本
0:生产者发送过来的数据,不需要等数据落盘应答。
1:生产者发送过来的数据,Leader收到数据后应答。
-1(all):生产者发送过来的数据,Leader和ISR队列里面的所有节点收齐数据后应答。-1和all等价。
双端队列
发送流程
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime=sdf.format(new Date());
sysRole.setUpdateT(dateTime);
生产经验,数据有序
#!/bin/bash
# 定义要关闭的应用程序的名称
APP_NAME="admin-gateway-1.0-SNAPSHOT.jar"
# 查找应用程序的进程ID(PID)
PID=$(ps -ef | grep "$APP_NAME" | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]; then
echo "应用程序已经停止"
else
echo "正在关闭应用程序 $APP_NAME (PID: $PID) ..."
kill -9 "$PID"
echo "应用程序已成功关闭"
fi
加群联系作者vx:xiaoda0423
仓库地址:github.com/webVueBlog/…