springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起

在Spring Boot中,"bean" 是一个非常重要的概念,它代表了一个由Spring容器管理的对象实例。这些对象通常用于组成应用程序的各个部分,并且可以在整个应用程序中共享和重用。Spring Boot的Bean管理是基于Spring框架的IoC(控制反转)和DI(依赖注入)原理构建的。

以下是Spring Boot中Bean的一些关键特性和用途:

  1. 组件管理: Bean管理允许您创建、配置和管理应用程序中的各种组件,例如服务、数据访问对象(DAO)、控制器等。这些组件可以通过Spring容器进行实例化和初始化,然后在需要的地方进行注入。

  2. 依赖注入: Spring Boot容器负责管理Bean之间的依赖关系。通过依赖注入,一个Bean可以将它所依赖的其他Bean注入到它自己的属性或构造函数中,从而实现了组件之间的解耦和松散耦合。

  3. 单例管理: 默认情况下,Spring Boot将Bean配置为单例(Singleton)。这意味着容器只会创建一个Bean实例,并在需要时重用它。这有助于减少资源消耗和提高性能。

  4. 配置管理: Spring Boot允许您使用注解或XML配置文件来定义Bean及其依赖关系。您可以在应用程序的配置文件中声明哪些类应该被实例化为Bean,并且可以配置它们的属性和行为。

  5. 生命周期管理: Spring容器管理Bean的生命周期,包括实例化、初始化、使用和销毁。您可以定义初始化和销毁方法,以便在Bean的生命周期中执行自定义逻辑。

  6. AOP(面向切面编程) : Spring Boot支持AOP,允许您定义横切关注点,如日志记录、性能监控等,并将它们应用于Bean的方法。

  7. 测试: Spring Boot的Bean管理使单元测试和集成测试变得更容易,因为您可以轻松地模拟或替换Bean的依赖关系。

总之,Spring Boot中的Bean是一种灵活且强大的机制,用于组织和管理应用程序的各个组件,使应用程序更易于维护、测试和扩展。通过Spring容器的帮助,Bean可以以一种高度可配置的方式进行管理,从而实现了松散耦合、可维护性和可测试性。

DruidDataSource dataSource = new DruidDataSource(): 在这里,创建了一个 Druid 数据源对象。Druid 是一个流行的数据库连接池,用于管理数据库连接。

springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第1张图片 image.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第2张图片 image.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第3张图片 image.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第4张图片 image.png

kubectl kubelet kubeadm版本: 1.23.1 操作系统版本: CentOS 8.2 64位

外网放开30000端口,后续浏览器登陆k8s dashboard看板使用。并检查ssh服务端口22是否正常开启。

springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第5张图片

安装常用工具:

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
springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第6张图片 image.png

/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:.....
springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第7张图片 image.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第8张图片 image.png

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 索引来优化查询操作。

  1. 创建索引:

    students 表的 name 列上创建一个索引:

    CREATE INDEX idx_name ON students (name);
  2. 查询优化:

    查询所有年龄为 22 岁的学生:

    SELECT * FROM students WHERE age = 22;

    使用索引后,查询将更加高效,因为 MySQL 可以快速定位到年龄为 22 岁的学生。

  3. 覆盖索引:

    如果只需要查询学生的姓名而不需要其他信息,可以使用覆盖索引:

    SELECT name FROM students WHERE age = 22;

    这将减少数据的读取量,因为只需要访问索引而不需要访问实际数据行。

  4. 联合索引:

    创建一个联合索引,以优化多个列的查询:

    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_idorder_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.*
springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第9张图片 49d4bda6d51aa071a1948475d39ee964.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第10张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第11张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第12张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第13张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第14张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第15张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第16张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第17张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第18张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第19张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第20张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第21张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第22张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第23张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第24张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第25张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第26张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第27张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第28张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第29张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第30张图片 585decf3d1e855f9413c1875217dfe1b.png 7b31b8c418d04730cc48b96987417e71.png 0afe2dbec4dd58a7075ee2b2abd74f32.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第31张图片 515d975c8b1fdf92e9333f6d6bbb5655.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第32张图片

启动kafka之前必须启动zookeeper

zookeeper集群,查看进程

springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第33张图片

启动kafka

da8f47b14a19109a8bf9619979634829.png 69f0d9512e84b02f4dd58bc3c67b517d.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第34张图片

启动脚本

springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第35张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第36张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第37张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第38张图片 85aea72bc24f04e3393084ce1bb181c9.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第39张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第40张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第41张图片 996e529ca678adcd4db18e7ec538ba27.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第42张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第43张图片 ffcda37bc29f18e15b27d0d30830b288.png

不能通过命令行的方式去修改副本

ed09a771d2a4f88e3c7cde962a9b3532.png ced7274f709c4aa529e233a79bc47993.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第44张图片 2f381a39fd345392eecc792fd2acd406.png

0:生产者发送过来的数据,不需要等数据落盘应答。

1:生产者发送过来的数据,Leader收到数据后应答。

-1(all):生产者发送过来的数据,Leader和ISR队列里面的所有节点收齐数据后应答。-1和all等价。

springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第45张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第46张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第47张图片

双端队列

springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第48张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第49张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第50张图片

发送流程

springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第51张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第52张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第53张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第54张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第55张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第56张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第57张图片 4533fe7bbd78f42592aaa1131f50501e.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第58张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第59张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第60张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第61张图片
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime=sdf.format(new Date());
sysRole.setUpdateT(dateTime);
springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第62张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第63张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第64张图片 9da59726bc281738ffe06357548a9559.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第65张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第66张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第67张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第68张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第69张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第70张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第71张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第72张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第73张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第74张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第75张图片 19a557a085cef31784c7697ef617d904.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第76张图片

生产经验,数据有序

springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第77张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第78张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第79张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第80张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第81张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第82张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第83张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第84张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第85张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第86张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第87张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第88张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第89张图片 77f371dfcb6f931e84280ac56865e1df.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第90张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第91张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第92张图片
#!/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
springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第93张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第94张图片 af399edd8854297821ca77edcaf015ce.png springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第95张图片 springboot第43集:知道你很强但你不懂kafka,79眉笔你照样买不起_第96张图片

加群联系作者vx:xiaoda0423

仓库地址:https://github.com/webVueBlog/JavaGuideInterview

你可能感兴趣的:(spring,boot,kafka,后端,java,spring)