高性能消息中间件 - Kafka3.x(一)

文章目录

    • 高性能消息中间件 - Kafka3.x(一)
      • 搭建Kafka3.2.1集群⭐
        • Kafka集群机器规划
        • 创建3台虚拟机(centos7系统)
        • 必要的环境准备(3台虚拟机都要执行如下操作)⭐
          • 分别修改每个服务器的hosts文件(将上面的ip和主机名配置上去)
          • 分别关闭每个服务器的防火墙
          • 分别为每个服务器安装jdk8
          • 分别为每个服务器安装Docker
            • 为每个节点的Docker接入阿里云镜像加速器
            • 为每个节点的docker设置开机自动启动
          • 分别为每个服务器安装zookeeper3.7.1(搭建zookeeper集群)⭐
          • 分别为每个服务器安装Kafka3.2.1(搭建Kafka集群)⭐
      • 每次重启服务器都要做的环境准备
        • 给创建的3台服务器启动zookeeper集群
        • 给创建的3台服务器启动kafka集群
      • kafka的架构图
      • kafka的基本概念
      • Linux命令行操作⭐
        • 命令行操作-topic(主题)⭐
          • 查看topic命令行参数
          • 查看指定kafka集群中的所有topic⭐
          • 创建一个名为mytopic01的topic⭐
          • 查看名为mytopic01的topic的详细描述⭐
          • 修改mytopic01的分区数(注意:分区数只能增加,不能减少)⭐
          • 删除名为mytopic01的topic⭐
        • 命令行操作-producer(生产者)⭐
          • 查看producer命令行参数
          • 发送消息给名为mytopic01的topic⭐
        • 命令行操作-consumer(消费者)⭐
          • 查看consumer命令行参数
          • 消费mytopic01主题中的数据⭐
          • 消费mytopic01主题中的数据(包括历史消息)⭐

高性能消息中间件 - Kafka3.x(一)

搭建Kafka3.2.1集群⭐

Kafka集群机器规划
IP地址主机名需要安装的资源操作系统
192.168.184.201kafka01jdk、Docker、zookeeper、Kafkacentos7.9
192.168.184.202kafka02jdk、Docker、zookeeper、Kafkacentos7.9
192.168.184.203kafka03jdk、Docker、zookeeper、Kafkacentos7.9
创建3台虚拟机(centos7系统)

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

必要的环境准备(3台虚拟机都要执行如下操作)⭐
分别修改每个服务器的hosts文件(将上面的ip和主机名配置上去)
  • 1:进入hosts文件:
vi /etc/hosts

在最后面追加内容如下:(这个需要根据你自己服务器的ip来配置)

192.168.184.201 kafka01
192.168.184.202 kafka02
192.168.184.203 kafka03
分别关闭每个服务器的防火墙
systemctl stop firewalld
systemctl disable firewalld
分别为每个服务器安装jdk8
  • 1:进入oracle官网下载jdk8的tar.gz包:

  • 2:将下载好的包上传到每个服务器上:

  • 3:查看是否上传成功:

[root@kafka01 ~]# ls
anaconda-ks.cfg  jdk-8u333-linux-x64.tar.gz
  • 4:创建文件夹:
mkdir -p /usr/java/
  • 5:解压刚刚下载好的包并输出到/usr/java目录下:
tar -zxvf jdk-8u333-linux-x64.tar.gz -C /usr/java/
[root@kafka02 ~]# ls /usr/java/
jdk1.8.0_333
  • 6:配置java环境变量:
vi /etc/profile

在文件中末尾添加如下配置:(需要更改的是JAVA_HOME,根据自己的java目录名来更改)

JAVA_HOME=/usr/java/jdk1.8.0_333
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
  • 7:让配置立即生效:
source /etc/profile
  • 8:查看JDK是否安装成功:
[root@kafka01 ~]# java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
分别为每个服务器安装Docker
  • 1:切换镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
  • 2:查看当前镜像源中支持的docker版本
yum list docker-ce --showduplicates | sort -r
  • 3:安装特定版本的docker-ce
yum -y install docker-ce-3:20.10.8-3.el7.x86_64 docker-ce-cli-3:20.10.8-3.el7.x86_64 containerd.io
为每个节点的Docker接入阿里云镜像加速器

配置镜像加速器方法。

  • 准备工作:
  • 1:首先进入阿里云容器镜像服务 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
  • 2:点击镜像工具下面的镜像加速器
  • 3:拿到你的加速器地址和下面第二步的registry-mirrors的值替换即可。

针对Docker客户端版本大于 1.10.0 的用户,可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

  • 第一步:
mkdir -p /etc/docker
  • 第二步:
cat <<EOF> /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"],	"registry-mirrors": ["https://u01jo9qv.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com"],"live-restore": true,"log-driver":"json-file","log-opts": {"max-size":"500m", "max-file":"3"},"max-concurrent-downloads": 10,"max-concurrent-uploads": 5,"storage-driver": "overlay2"
}
EOF
  • 第三步:
sudo systemctl daemon-reload
  • 第四步:
sudo systemctl restart docker

最后就接入阿里云容器镜像加速器成功啦。

为每个节点的docker设置开机自动启动
sudo systemctl enable docker
分别为每个服务器安装zookeeper3.7.1(搭建zookeeper集群)⭐
  • 1:创建zookeeper文件夹,并跳转到/usr/local/zookeeper目录:
mkdir -p /usr/local/zookeeper
cd /usr/local/zookeeper
  • 2:在zookeeper官网上面下载zookeeper稳定版(当前为3.7.1)的tar.gz包,并上传到每个服务器上:

zookeeper官网

在这里插入图片描述
在这里插入图片描述

  • 3:查看刚刚上传的zookeeper包:
[root@kafka01 zookeeper]# pwd
/usr/local/zookeeper
[root@kafka01 zookeeper]# ls
apache-zookeeper-3.7.1-bin.tar.gz
  • 4:解压我们的zookeeper包:
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local/zookeeper
[root@kafka01 zookeeper]# ls
apache-zookeeper-3.7.1-bin  apache-zookeeper-3.7.1-bin.tar.gz
  • 5:配置关于zookeeper的环境变量:
vi /etc/profile

在文件中末尾添加如下配置:(ZOOKEEPER_HOME需要根据你自己的zookeeper目录来配置)

export ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.7.1-bin
export PATH=$ZOOKEEPER_HOME/bin:$PATH
  • 6:让配置立即生效:
source /etc/profile
  • 7:创建目录:
cd /usr/local/zookeeper/apache-zookeeper-3.7.1-bin/
sudo mkdir data
  • 8;添加配置:
cd conf
sudo vi zoo.cfg

内容如下:(dataDir修改成自己的目录,kafka01/02/03是我们在hosts配置的主机名映射,相当于ip)

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/apache-zookeeper-3.7.1-bin/data
clientPort=2181
server.1=kafka01:2888:3888
server.2=kafka02:2888:3888
server.3=kafka03:2888:3888

initLimit:ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。
当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。

syncLimit:配置follower和leader之间发送消息,请求和应答的最大时间长度。

tickTime:tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。

server.id=host:port1:port2其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。

dataDir:其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。

  • 9:进入data目录:
cd /usr/local/zookeeper/apache-zookeeper-3.7.1-bin/data/
  • 10:对每个服务器(kafka01、kafka02、kafka03)配置myid文件:
  • 10(1):如果是kafka01服务器,则执行下面这个:(下面的1、2、3就是我们上面指定的server.id,每个zookeeper服务器都要有一个id,并且全局唯一)
echo "1" > myid
  • 10(2):如果是kafka02服务器,则执行下面这个:
echo "2" > myid
  • 10(3):如果是kafka03服务器,则执行下面这个
echo "3" > myid
  • 11:启动zookeeper服务命令:(必须要把全部zookeeper服务器启动之后在执行下一步status命令)
cd /usr/local/zookeeper/apache-zookeeper-3.7.1-bin/bin/
[root@kafka01 bin]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
  • 12:对全部的zookeeper服务器执行查看zookeeper集群节点状态命令:(看看哪个是leader节点、哪个是follower节点)。Mode就是某一台zookeeper的角色
[root@kafka01 bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@kafka02 data]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
[root@kafka03 data]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
分别为每个服务器安装Kafka3.2.1(搭建Kafka集群)⭐
  • 1:进入kafka官网:

Kafka官网

  • 2(下载方式1):下载当前kafka的Binary稳定版(截止到2022-08-29,稳定版本为3.2.1),下载会十分缓慢,大约要1个小时的时间(假如你的网速很慢,那么这种方式就不推荐了。):

在这里插入图片描述

  • 2(下载方式2):使用我上传kafka_2.13-3.2.1.zip包(注意这个不是tgz包,而是zip包)(推荐这种方式),下载速度很快:

kafka3.2.1快速下载地址

在这里插入图片描述

  • 3:解压kafka_2.13-3.2.1.zip包,拿到kafka的tgz包:

在这里插入图片描述

  • 4:将解压好的kafka的tgz包上传到每个服务器上。
  • 5:查看每个服务器上是否都已经成功上传了kafka_2.13-3.2.1.tgz包:
[root@kafka01 ~]# pwd
/root
[root@kafka01 ~]# ls | grep kafka
kafka_2.13-3.2.1.tgz
  • 6:解压kafka.tgz包到/usr/local下:
tar -zxvf kafka_2.13-3.2.1.tgz -C /usr/local/
  • 7:修改kafka目录:
cd /usr/local/
mv kafka_2.13-3.2.1/ kafka
  • **8:修改每个服务器的kafka配置文件:(注意:对应的机器要执行对应的命令,不是都在一台服务器执行)**⭐

    • 8(1):在kafka01服务器上修改的配置文件,将下面的内容粘贴上去:⭐
    [root@kafka01 local]# rm -f /usr/local/kafka/config/server.properties
    [root@kafka01 local]# vi /usr/local/kafka/config/server.properties
    

    内容如下:

    注意下面3个地方:

    ①每一个kafka的broker.id都不可以一样,并且要为数字(比如0、1、2都是可以的)!

    ②log.dirs为你当前机器的kafka的日志数据存储目录

    ③zookeeper.connect:配置连接Zookeeper集群地址,下面的kafka01:2181(kafka01的意思是zk所在的服务器的ip地址,因为我们配置了hosts,所以就直接用主机名更方便;2181就是zk配置文件中的clientPort)

    #broker 的全局唯一编号,不能重复,只能是数字。
    broker.id=1
    #处理网络请求的线程数量
    num.network.threads=3
    #用来处理磁盘 IO 的线程数量
    num.io.threads=8
    #发送套接字的缓冲区大小
    socket.send.buffer.bytes=102400
    #接收套接字的缓冲区大小
    socket.receive.buffer.bytes=102400
    #请求套接字的缓冲区大小
    socket.request.max.bytes=104857600
    #kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔
    log.dirs=/usr/local/kafka/datas
    #topic 在当前 broker 上的分区个数
    num.partitions=1
    #用来恢复和清理 data 下数据的线程数量
    num.recovery.threads.per.data.dir=1
    # 每个 topic 创建时的副本数,默认时 1 个副本
    offsets.topic.replication.factor=1
    #segment 文件保留的最长时间,超时将被删除
    log.retention.hours=168
    #每个 segment 文件的大小,默认最大 1G
    log.segment.bytes=1073741824
    # 检查过期数据的时间,默认 5 分钟检查一次是否数据过期
    log.retention.check.interval.ms=300000
    #配置连接Zookeeper集群地址(在zk根目录下创建/kafka,方便我们管理)
    zookeeper.connect=kafka01:2181,kafka02:2181,kafka03:2181/kafka
    
    • 8(2):在kafka02服务器上修改的配置文件,将下面的内容粘贴上去:⭐
    [root@kafka02 local]# rm -f /usr/local/kafka/config/server.properties
    [root@kafka02 local]# vi /usr/local/kafka/config/server.properties
    

    内容如下:

    #broker 的全局唯一编号,不能重复,只能是数字。
    broker.id=2
    #处理网络请求的线程数量
    num.network.threads=3
    #用来处理磁盘 IO 的线程数量
    num.io.threads=8
    #发送套接字的缓冲区大小
    socket.send.buffer.bytes=102400
    #接收套接字的缓冲区大小
    socket.receive.buffer.bytes=102400
    #请求套接字的缓冲区大小
    socket.request.max.bytes=104857600
    #kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔
    log.dirs=/usr/local/kafka/datas
    #topic 在当前 broker 上的分区个数
    num.partitions=1
    #用来恢复和清理 data 下数据的线程数量
    num.recovery.threads.per.data.dir=1
    # 每个 topic 创建时的副本数,默认时 1 个副本
    offsets.topic.replication.factor=1
    #segment 文件保留的最长时间,超时将被删除
    log.retention.hours=168
    #每个 segment 文件的大小,默认最大 1G
    log.segment.bytes=1073741824
    # 检查过期数据的时间,默认 5 分钟检查一次是否数据过期
    log.retention.check.interval.ms=300000
    #配置连接Zookeeper集群地址(在zk根目录下创建/kafka,方便我们管理)
    zookeeper.connect=kafka01:2181,kafka02:2181,kafka03:2181/kafka
    
    • 8(3):在kafka03服务器上修改的配置文件,将下面的内容粘贴上去:⭐
    [root@kafka03 local]# rm -f /usr/local/kafka/config/server.properties
    [root@kafka03 local]# vi /usr/local/kafka/config/server.properties
    

    内容如下:

    #broker 的全局唯一编号,不能重复,只能是数字。
    broker.id=3
    #处理网络请求的线程数量
    num.network.threads=3
    #用来处理磁盘 IO 的线程数量
    num.io.threads=8
    #发送套接字的缓冲区大小
    socket.send.buffer.bytes=102400
    #接收套接字的缓冲区大小
    socket.receive.buffer.bytes=102400
    #请求套接字的缓冲区大小
    socket.request.max.bytes=104857600
    #kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔
    log.dirs=/usr/local/kafka/datas
    #topic 在当前 broker 上的分区个数
    num.partitions=1
    #用来恢复和清理 data 下数据的线程数量
    num.recovery.threads.per.data.dir=1
    # 每个 topic 创建时的副本数,默认时 1 个副本
    offsets.topic.replication.factor=1
    #segment 文件保留的最长时间,超时将被删除
    log.retention.hours=168
    #每个 segment 文件的大小,默认最大 1G
    log.segment.bytes=1073741824
    # 检查过期数据的时间,默认 5 分钟检查一次是否数据过期
    log.retention.check.interval.ms=300000
    #配置连接Zookeeper集群地址(在zk根目录下创建/kafka,方便我们管理)
    zookeeper.connect=kafka01:2181,kafka02:2181,kafka03:2181/kafka
    
  • 9:给每个服务器都配置kafka的环境变量:

sudo vim /etc/profile

在最后面追加的内容如下:

export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
  • 10:让配置立即生效:
source /etc/profile
  • 11:启动zk集群。依次在 kafka01、kafka02、kafka03节点上启动zookeeper。(zk要先启动,然后再启动kafka)⭐
zkServer.sh start
  • 12:后台模式启动kafka集群。依次在 kafka01、kafka02、kafka03节点上启动kafka。
kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
  • 13:查看kafka是否启动成功:
[root@kafka01 local]# jps
3603 Kafka
3166 QuorumPeerMain
4367 Jps
  • 14:关闭kafka集群:(可以暂时不关闭,方便后面继续演示)
    • 注意:停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper
      集群。
kafka-server-stop.sh
  • 15:等kafka集群全部关闭之后再关闭zookeeper:(可以暂时不关闭,方便后面继续演示)
zkServer.sh stop

每次重启服务器都要做的环境准备

给创建的3台服务器启动zookeeper集群
zkServer.sh start
给创建的3台服务器启动kafka集群
kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

kafka的架构图

在这里插入图片描述

kafka的基本概念

  • 1:Producer:消息生产者,就是向 Kafka broker 发消息的客户端。
  • 2:Consumer:消息消费者,向 Kafka broker 取消息的客户端。
  • 3:Consumer Group(CG):消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
  • 4:Broker:一台 Kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个broker 可以容纳多个 topic。
  • 5:Topic:可以理解为一个队列,生产者和消费者面向的都是一个 topic。
  • 6:Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。
  • 7:Replica:副本。一个 topic 的每个分区都有若干个副本,一个 Leader 和若干个Follower。
  • 8:Leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader
  • 9:Follower:每个分区多个副本中的“从”,实时从 Leader 中同步数据,保持和Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader。

Linux命令行操作⭐

命令行操作-topic(主题)⭐
查看topic命令行参数
kafka-topics.sh
参数描述
–bootstrap-server <String: server toconnect to>指定连接的Kafka Broker服务器的主机名称和端口号
–topic <String: topic>指定操作的topic名称
–create创建topic
–delete删除topic
–alter修改topic
–list查看所有topic
–describe查看指定topic详细描述
–partitions <Integer: # of partitions>设置分区数
–replication-factor<Integer: replication factor>设置分区副本。
–config <String: name=value>更新系统默认的配置
查看指定kafka集群中的所有topic⭐
  • –bootstrap-server=kafka集群的ip(主机名)+端口
kafka-topics.sh --bootstrap-server=kafka01:9092 --list
创建一个名为mytopic01的topic⭐

创建一个名为mytopic01并且partitions(分区数)为2并且replication-factor(副本数之和leader+follower)为2的topic。

kafka-topics.sh --bootstrap-server=kafka01:9092 --partitions=2 --replication-factor=2 --topic=mytopic01 --create
查看名为mytopic01的topic的详细描述⭐
  • 可以看到如下信息:
    • PartitionCount(分区数):2
    • ReplicationFactor(副本数):2
    • segment.bytes(segment的大小):1073741824(默认是1G,用于存储data)
    • 分区副本的详细信息如下:
      • Partition: 0(0号分区) Leader: 2(leader副本) Replicas: 2,3(副本=leader+follower) Isr: 2,3(正常运行的副本)
      • Partition: 1(1号分区) Leader: 3(leader副本) Replicas: 3,1(副本=leader+follower) Isr: 3,1(正常运行的副本)
[root@kafka01 ~]# kafka-topics.sh --bootstrap-server=kafka01:9092 --topic=mytopic01 --describe
Topic: mytopic01	TopicId: 0dMc88CfRMyxPYsgaGIgmQ	PartitionCount: 2	ReplicationFactor: 2	Configs: segment.bytes=1073741824Topic: mytopic01	Partition: 0	Leader: 2	Replicas: 2,3	Isr: 2,3Topic: mytopic01	Partition: 1	Leader: 3	Replicas: 3,1	Isr: 3,1
修改mytopic01的分区数(注意:分区数只能增加,不能减少)⭐
kafka-topics.sh --bootstrap-server=kafka01:9092 --topic=mytopic01 --partitions=3 --alter
删除名为mytopic01的topic⭐
kafka-topics.sh --bootstrap-server=kafka01:9092 --topic=mytopic01 --delete
命令行操作-producer(生产者)⭐
查看producer命令行参数
参数描述
–bootstrap-server <String: server toconnect to>指定连接的Kafka Broker服务器的主机名称和端口号
–topic <String: topic>指定操作的topic名称
发送消息给名为mytopic01的topic⭐
  • 1:连接集群,并指定操作的topic(名为mytopic01)
kafka-console-producer.sh --bootstrap-server=kafka01:9092 --topic=mytopic01
  • 2:此时就可以发送消息了。

在这里插入图片描述

命令行操作-consumer(消费者)⭐
查看consumer命令行参数
kafka-console-consumer.sh
参数描述
–bootstrap-server <String: server toconnect to>指定连接的Kafka Broker服务器的主机名称和端口号
–-topic <String: topic>指定操作的topic名称
–from-beginning从头开始消费
–group <String: consumer group id>指定消费者组ID(可以是中文)
消费mytopic01主题中的数据⭐
kafka-console-consumer.sh --bootstrap-server=kafka01:9092 --topic=mytopic01
消费mytopic01主题中的数据(包括历史消息)⭐
kafka-console-consumer.sh --bootstrap-server=kafka01:9092 --topic=mytopic01 --from-beginning

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 重启步骤及踩坑经验

oracle 重启步骤及踩坑经验 标准重启步骤 切换到oracle用户 su - oracle关闭监听 lsnrctl stop杀掉oracle有关进程 ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCALNO|awk {print $2}|xargs kill -9#查询pid ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCALNO|awk {p…

Gateway服务网关

本篇资料&#xff1a;https://gitee.com/Allengan/cloud-demo.githttps://gitee.com/Allengan/cloud-demo.git 目录 1.为什么需要网关 2.gateway快速入门 1&#xff09;创建gateway服务&#xff0c;引入依赖 2&#xff09;编写启动类 3&#xff09;编写基础配置和路由规则…

使用 PyTorch 构建自定义 GPT

一、介绍 介绍大模型&#xff0c;首先考虑一下使用 ChatGPT、Bing Chat 或 Bard 。您是否想过拥有自己的 ChatGPT 会是什么样子&#xff1f;想象一下创建自己的 GPT 模型的兴奋程度。这确实是一种难以置信的感觉&#xff01; 为了开始构建自定义 GPT 的旅程&#xff0c;让我们仔…

SpringCloud(一) 服务架构的演变及注册RestTemplate实现服务的远程调用

目录 一, 服务架构的演变 1.1 单体架构 1.2 分布式架构 1.3 微服务 1.4 SpringCloud 二, 服务拆分和远程调用 2,1 服务拆分原则 2.2 服务拆分示例 2.3 创建相应数据库 2.4 实现远程调用示例 1, 更改需求 2, 注册RestTemplate实现远程调用 2.5 服务消费者和提供者 一…

Springboot整合Minio实现文件上传和下载

目录 1. Minio 1.1 Minio下载 2. Springboot和Minio实现文件存储 1. Minio Minio是一个灵活、高性能、开源的对象存储解决方案&#xff0c;适用于各种存储需求&#xff0c;并可以与云计算、容器化、大数据和应用程序集成。它为用户提供了自主控制和可扩展性&#xff0c;使其…

Go学习第十五章——Gin参数绑定bind与验证器

Go web框架——Gin&#xff08;参数绑定bind与验证器&#xff09; 1 bind参数绑定1.1 JSON参数1.2 Query参数1.3 Uri绑定动态参数1.4 ShouldBind自动绑定 2 验证器2.1 常用验证器2.2 gin内置验证器2.3 自定义验证的错误信息2.4 自定义验证器 1 bind参数绑定 在Gin框架中&#…

AD教程(四)排针类元件模型的创建

AD教程&#xff08;四&#xff09;排针类元件模型的创建 新建元件&#xff0c;输入排针型号作为元件命名 快捷键TC 快速创建元件 放置外框 放置管脚&#xff0c;排针管脚号在原理图上一般不显示&#xff0c;需要将管脚号隐藏&#xff0c;但一般不建议隐藏&#xff0c;如果将管…

DL Homework 5

目录 习题4-1 对于一个神经元​编辑&#xff0c;并使用梯度下降优化参数w时&#xff0c;如果输入x恒大于0&#xff0c;其收敛速度会比零均值化的输入更慢。 习题4-5 如果限制一个神经网络的总神经元数量(不考虑输入层)为N1&#xff0c;输入层大小为​编辑&#xff0c;输出层大…

PyQuery库写一个有趣的爬虫程序

PyQuery库是一个基于jQuery语法的Python库&#xff0c;它可以方便地对HTML/XML文档进行解析和操作。使用PyQuery库可以快速地获取网页中的数据&#xff0c;进行数据清洗和分析。PyQuery库的基本用法包括字符串初始化、打开网页、css属性、标签内容等获取、DOM基本操作等相关技巧…

基于吉萨金字塔建造算法的无人机航迹规划-附代码

基于吉萨金字塔建造算法的无人机航迹规划 文章目录 基于吉萨金字塔建造算法的无人机航迹规划1.吉萨金字塔建造搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用吉萨金字塔建造算法…

NLP之LSTM与BiLSTM

文章目录 代码展示代码解读双向LSTM介绍&#xff08;BiLSTM&#xff09; 代码展示 import pandas as pd import tensorflow as tf tf.random.set_seed(1) df pd.read_csv("../data/Clothing Reviews.csv") print(df.info())df[Review Text] df[Review Text].astyp…

思维训练 第四课 省略句

系列文章目录 文章目录 系列文章目录前言一、省略的十五种情况1.并列复合句中某些相同成分的省略2.在用when, while, if, as if, though, although, as ,until, whether等连词引导的状语从句中&#xff0c;如果谓语有be,而主语又跟主句的主语相同或是&#xff08;从句主语是&am…