windows安装kafka配置SASL-PLAIN安全认证

目录

1.Windows安装zookeeper:

1.1下载zookeeper

1.2 解压之后如图二

1.3创建日志文件

1.4复制 “zoo_sample.cfg” 文件

1.5更改 “zoo.cfg” 配置

1.6新建zk_server_jaas.conf

1.7修改zkEnv.cmd

1.8导入相关jar

1.9以上配置就配好啦,接下来启动。

1.10连接测试

2.Windows下安装运行kafka:

2.1下载kafka:

2.2 新建kafka_server_jaas.conf

2.3 新建kafka_client_jaas.conf

2.4 新建kafka_topic_jaas.properties

2.5 修改server.properties配置文件:

2.6 修改consumer.properties和producer.properties

2.7 修改kafka-server-start.bat

2.8 修改kafka-console-consumer.bat和kafka-console-producer.bat

2.9 启动kafka:

2.10 测试 

1)创建主题

2)生产消息

3)消费消息

4) 查看主题配置

5)查看主题消息日志

3.将kafka安装为windows服务

3.1安装NSSM

3.2 kafka安装成win服务

3.3 zookeeper安装为windows服务

3.4 BAT一键安装为Windows服务

3.5 nssm常用命令

3.6总结

4.confluent简介

4.1官网

4.2下载地址

4.3物理机安装参考

4.4 docker安装参考

4.4 Confluent的组件

4.5 Confluent的安装

4.5.1下载地址:

4.5.2下载confluent-7.2.1

4.5.3解压到指定目录下

4.5.4配置zookeeper

4.5.5配置kafka的broker

4.5.6配置rest proxy

4.5.7配置schema registry

4.5.8启动kafka-rest

4.5.9启动zookeeper

4.5.10启动kafka broker

4.5.11启动schema registry

4.6测试使用

4.6.1查看topics

4.6.2查看集群的brokers

4.6.3注册consumer group

4.6.4把topic和消费者my_consumer关联起来

4.6.5通过rest接口向bear push数据

4.6.6通过rest接口消费数据

4.6.7删除注册的consumer实例:

4.6.8更多信息参考


1.Windows安装zookeeper

1.1下载zookeeper

http://zookeeper.apache.org/releases.html,选择自己需要的版本,并解压。

坑一:我下载的是“apache-zookeeper-3.8.2”,配置完成之后启动的时候发现报错,如图一

图一

结果发现从目前的最新版本3.5.5开始,带有bin名称的包才是我们想要的下载可以直接使用的里面有编译后的二进制的包,而之前的普通的tar.gz的包里面是只是源码的包无法直接使用。如果下载3.5.5以后的版本的Zookeeper安装包,需要下载带有bin标识的包就不会有问题了。(参考:https://www.cnblogs.com/zhoading/p/11593972.html)

1.2 解压之后如图二

图二

1.3创建日志文件

在上图目录下创建文件夹 data和log,如图三

 图三

1.4复制 “zoo_sample.cfg” 文件

并重命名为 “zoo.cfg”,如图四

 图四

 

1.5更改 “zoo.cfg” 配置

为自己创建的文件夹 data 和 log 的路径,如图五。

dataDir=D:\\Java\\apache-zookeeper-3.8.2-bin\\data

dataLogDir=D:\\Java\\apache-zookeeper-3.8.2-bin\\log

配置安全认证:

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider

requireClientAuthScheme=sasl

jaasLoginRenew=3600000

                 

图五

我一开始用的单斜杠,会出现图六的一个警告。

图六

1.6新建zk_server_jaas.conf

Zookeeper安装目录conf中,新建zk_server_jaas.conf文件,添加如下内容:

Server {

     org.apache.kafka.common.security.plain.PlainLoginModule required

     username="admin"

     password="admin- secret";

};

1.7修改zkEnv.cmd

在Zookeeper安装目录bin中,打开zkEnv.cmd进行编辑,在该文件中set ZOO_LOG_DIR=%~dp0%..\logs下一行加入如下配置:注意上述配置是斜杠,不是反斜杠

set SERVER_JVMFLAGS=-Djava.security.auth.login.config=D:/Java/apache-zookeeper-3.8.2-bin/config/zk_server_jaas.conf

1.8导入相关jar

Kafka安装目录libs中分别找到如下jar,复制它们到Zookeeper安装目录的lib中即可

   kafka-clients-3.5.1.jar

   lz4-java-1.8.0.jar

   slf4j-api-1.7.36.jar

   slf4j-reload4j-1.7.36.jar

   snappy-java-1.1.10.1.jar

1.9以上配置就配好啦,接下来启动。

直接双击bin 目录下的 “zkServer.cmd",如图七

图七

 启动完成,如图八。

图八

1.10连接测试

双击bin目录下的 zkCli.cmd,如图九

图九

2.Windows下安装运行kafka:

2.1下载kafka:

http://kafka.apache.org/downloads.html  注意下载binary版本的

2.2 新建kafka_server_jaas.conf

Kafka安装目录config中,新建kafka_server_jaas.conf文件,添加如下内容:

KafkaServer {

    org.apache.kafka.common.security.plain.PlainLoginModule required

    username="admin"

    password="admin-secret"

    user_admin="admin-secret";

};

说明:在KafkaServer部分,username和password是broker用于初始化连接到其他的broker在上面配置中,admin用户为broker间的通讯。

    user_userName定义了所有连接到broker和broker验证的所有的客户端连接包括其他broker的用户密码,user_userName必须配置admin用户,否则会报错

2.3 新建kafka_client_jaas.conf

Kafka安装目录config中,新建kafka_client_jaas.conf文件,添加如下内容:

KafkaClient {

    org.apache.kafka.common.security.plain.PlainLoginModule required

    username="admin"

    password="admin-secret";

};

说明:在KafkaClient部分,usernamepassword是客户端用来配置客户端连接broker的用户

2.4 新建kafka_topic_jaas.properties

Kafka安装目录config中,新建kafka_topic_jaas.properties文件,添加如下内容:

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";

security.protocol=SASL_PLAINTEXT

sasl.mechanism=PLAIN

2.5 修改server.properties配置文件:

Kafka安装目录config中,打开server.properties进行编辑,在该文件中加入如下配置:

# 内网ip

listeners=SASL_PLAINTEXT://192.168.0.108:9092

# 外网ip

#advertised.listeners=SASL_PLAINTEXT://192.168.0.108:9092

# 使用的认证协议

security.inter.broker.protocol=SASL_PLAINTEXT

# SASL机制

sasl.enabled.mechanisms=PLAIN

sasl.mechanism.inter.broker.protocol=PLAIN

# 完成身份验证的类

#authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer

# 如果没有找到ACL(访问控制列表)配置,则允许任何操作。

allow.everyone.if.no.acl.found=false

auto.create.topics.enable=true

delete.topic.enable=true

super.users=User:admin

2.6 修改consumer.properties和producer.properties

 在Kafka安装目录config中,打开consumer.properties和producer.properties进行编辑,在该文件中加入如下配置:

security.protocol=SASL_PLAINTEXT

sasl.mechanism=PLAIN

修改consumer.propertiegroup.id=TestGroup,若有多个消费客户端需保证group.id不重复,否则无法同时消费消息

2.7 修改kafka-server-start.bat

Kafka安装目录bin\windows中,打开kafka-server-start.bat进行编辑,在该文件中SetLocal关键字下一行加入如下配置:

set KAFKA_OPTS=-Djava.security.auth.login.config=file:%~dp0../../config/kafka_server_jaas.conf

2.8 修改kafka-console-consumer.bat和kafka-console-producer.bat

在Kafka安装目录bin\windows中,打开kafka-console-consumer.bat和kafka-console-producer.bat进行编辑,在该文件中SetLocal关键字下一行加入如下配置:

set KAFKA_OPTS=-Djava.security.auth.login.config=file:%~dp0../../config/kafka_client_jaas.conf

2.9 启动kafka:

win+R 输入cmd,打开命令窗口,进入安装目录 D:\Java\kafka_2.13-3.5.1,输入以下命令 ( 成功之后不要关闭窗口)

.\bin\windows\kafka-server-start.bat config\server.properties  

2.10 测试 

1)创建主题

打开一个新的命令窗口,进入安装目录D:\Java\kafka_2.13-3.5.1,输入以下命令成功之后不要关闭窗口)

.\bin\windows\kafka-topics.bat --create --bootstrap-server 192.168.0.108:9092 --replication-factor 1 --partitions 1 --topic mdlp --command-config config\kafka_topic_jaas.properties

 查看所有主题命令:

.\bin\windows\kafka-topics.bat --list --bootstrap-server 192.168.0.108:9092 --command-config config\kafka_topic_jaas.properties

2)生产消息

打开一个新的命令窗口,进入安装目录 D:\Java\kafka_2.13-3.5.1,输入以下命令成功之后不要关闭窗口)

.\bin\windows\kafka-console-producer.bat --broker-list 192.168.0.108:9092 --topic mdlp --producer.config config\producer.properties

输入内容:hello word

3)消费消息

打开一个新的命令窗口,进入安装目录 D:\Java\kafka_2.13-3.5.1,输入以下命令成功之后不要关闭窗口)

.\bin\windows\kafka-console-consumer.bat --bootstrap-server  192.168.0.108:9092 --topic mdlp --consumer.config config\consumer.properties

这里接收生产者的消息。

4)  查看主题配置

打开一个新的命令窗口,进入安装目录 D:\Java\kafka_2.13-3.5.1,输入以下命令成功之后不要关闭窗口)

.\bin\windows\kafka-configs.bat --bootstrap-server 192.168.0.108:9092 --entity-type topics --entity-name mdlp --describe --command-config config\kafka_topic_jaas.properties

5)  查看主题消息日志

打开一个新的命令窗口,进入安装目录 D:\Java\kafka_2.13-3.5.1,输入以下命令成功之后不要关闭窗口)

.\bin\windows\kafka-run-class.bat kafka.tools.DumpLogSegments --print-data-log --files kafka-logs\mdlp-0\00000000000000000000.log

3.将kafka安装为windows服务

3.1安装NSSM

NSSM是一个服务封装程序,它可以将普通exebat、以及任何程序封装成服务,使之像windows服务一样运行,就像一个服务壳一样,将你的程序包在NSSM里面。

NSSM如何使用

  1. 下载NSSM download.
  2. 根据自己的平台,将32/64位nssm.exe文件解压至任意文件夹。
  3. cmd定位至nssm.exe所在目录。
  4. 输入 nssm install {服务名称},即注册服务的名称。注册服务弹出如下NSSM界面。

3.2 kafka安装成win服务

按照上面的步骤操作就可以了,核心就是下面的截图,也可以添加依赖服务。

Path: D:\Java\kafka_2.13-3.5.1\bin\windows\kafka-server-start.bat
Startup directory: D:\Java\kafka_2.13-3.5.1\bin\windows
Arguments: D:\Java\kafka_2.13-3.5.1\config\server.properties

Path参数为kafka的启动命令,一般在windows目录。Startup directory为启动目录,Arguments是启动参数,只有启动参数需要手工填一下,当你在Path点右边按钮选择后会自动的填上前面2个参数。自己操作体验下就明白了。完了之后点击 Install Service 就可以了。

如果有依赖服务,按下图所示填上即可。

3.3 zookeeper安装为windows服务

zookeeper也是可以安装为windows服务的,操作如下图所示:

没有参数就不用填。如果嫌界面操作比较麻烦,可以制作成批处理文件一次性安装完毕。

3.4 BAT一键安装为Windows服务

@echo off
@echo
安装zookeeper
nssm install zookeeper D:\Java\apache-zookeeper-3.8.2-bin\bin\zkServer.cmd
@echo
安装kafka
nssm install kafka D:\Java
\kafka_2.13-3.5.1\bin\windows\kafka-server-start.bat D:\Java\kafka_2.13-3.5.1\config\server.properties
@echo
启动zookeeper服务
nssm start zookeeper
@echo
启动kafka服务
nssm start kafka
pause

上面的命令是通过批处理文件一键安装为windows服务,并且启动zookeeperkafka服务。你可以直接拿过去使用,注意需要修改下参数,例如将D:\Java\apache-zookeeper-3.8.2-bin\bin\zkServer.cmd修改为你服务器上的zookeeper目录,而D:\Java\kafka_2.13-3.5.1\bin\windows\kafka-server-start.bat D:\Java\kafka_2.13-3.5.1\config\server.properties也是对应的修改为kafka的路径。

如果要卸载的话,使用下面的bat即可。

@echo off
@echo
卸载zookeeper
nssm remove zookeeper confirm
@echo
卸载kafka
nssm remove kafka confirm
pause

将以上代码复制下来,用记事本新建一个文件,粘贴进去,并将后缀改为bat即可,使用时双击运行就完事了。

3.5 nssm常用命令

  1. nssm install servername //创建servername服务
  2. nssm start servername //启动服务
  3. nssm stop servername //暂停服务
  4. nssm restart servername //重新启动服务
  5. nssm remove servername //删除创建的servername服务

3.6总结

NSSM可以将控制台程序一样的安装为服务,再配合定时任务,可以做好多事情。

4.confluent简介

        confluent是平台化的工具,封装了kafka,让我们可以更方便的安装和使用监控kafka,作用类似于CDH对于Hadoop

        confluent是由LinkedIn开发出Apache Kafka的团队成员,基于这项技术创立了新公司ConfluentConfluent的产品也是围绕着Kafka做的。

4.1官网

https://www.confluent.io

4.2下载地址

https://www.confluent.io/download/

4.3物理机安装参考

https://docs.confluent.io/platform/current/quickstart/ce-docker-quickstart.html#cos-quickstart

4.4 docker安装参考

https://docs.confluent.io/platform/current/quickstart/ce-docker-quickstart.html#cos-docker-quickstart

对比之后感觉比原生的kafka安装简单很多,容器是docker容器的版本,对于我们在k8s中使用很方便。

4.4 Confluent的组件

Confluent Platform 包括更多的工具和服务,使构建和管理数据流平台更加容易。

Confluent Control Center(闭源)。管理和监控Kafka最全面的GUI驱动系统。

Confluent Kafka Connectors(开源)。连接SQL数据库/Hadoop/Hive

Confluent Kafka Clients(开源)。对于其他编程语言,包括C/C++,Python

Confluent Kafka REST Proxy(开源)。允许一些系统通过HTTPkafka之间发送和接收消息。

Confluent Schema Registry(开源)。帮助确定每一个应用使用正确的schema当写数据或者读数据到kafka中。

4.5 Confluent的安装

4.5.1下载地址:

http://www.confluent.io/download

打开后,显示最新版本,在右边填写信息后,点击Download下载。

本次我们主要使用REST Proxy,当然底层的broker也是使用confluentkafka组件,下面简述安装步骤:

4.5.2下载confluent-7.2.1

Wget https://packages.confluent.io/archive/7.2/confluent-community-7.2.1.tar.gz

tar -xvf confluent-community-7.2.1.tar.gz

4.5.3解压到指定目录下

通过查看目录的内容,能够发现,confluent里面是含有kafka的,也就是说,如果你没有安装kafka,那么可以通过confluent直接对kafka进行安装。如果已经安装了kafka,可以使用confluent提供的插件。

自定义配置

我们可以配置自己需要的和对应配置信息

进入解压出来的confluent-7.2.1

cd confluent-7.2.1

4.5.4配置zookeeper

vi etc/kafka/zookeeper.properties

内容如下:

dataDir=/confluent-7.2.1/data/zookeeper

clientPort=2181

maxClientCnxns=0

4.5.5配置kafka的broker

vi etc/kafka/server.properties

内容如下:

broker.id=0

delete.topic.enable=true

listeners=PLAINTEXT://192.168.176.131:9092

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/confluent-7.2.1/data/kafka

num.partitions=1

num.recovery.threads.per.data.dir=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=192.168.176.131:2181

zookeeper.connection.timeout.ms=6000

confluent.support.metrics.enable=true

confluent.support.customer.id=anonymous

4.5.6配置rest proxy

vi etc/kafka-rest/kafka-rest.properties

内容如下:

id=kafka-rest-server

#zookeeper.connect=192.168.176.131:2181

bootstrap.servers=PLAINTEXT://192.168.176.131:9092

4.5.7配置schema registry

vi etc/schema-registry/schema-registry.properties

内容如下:

listeners=http://192.168.176.131:8081

kafkastore.connection.url=192.168.176.131:2181

kafkastore.bootstrap.servers=PLAINTEXT://192.168.176.131:9092

kafkastore.topic=_schemas

debug=false

启动服务

4.5.8启动kafka-rest

bin/kafka-rest-start etc/kafka-rest/kafka-rest.properties

上面的这种方式是前台启动,也可以以后台方式启动。

nohup bin/kafka-rest-start etc/kafka-rest/kafka-rest.properties &

4.5.9启动zookeeper

bin/zookeeper-server-start etc/kafka/zookeeper.properties

4.5.10启动kafka broker

bin/kafka-server-start etc/kafka/server.properties

4.5.11启动schema registry

bin/schema-registry-start etc/schema-registry/schema-registry.properties

4.6测试使用

4.6.1查看topics

浏览器访问或者curl都可以

http://192.168.176.131:8082/topics

4.6.2查看集群的brokers

curl http://192.168.176.131:8082/brokers

4.6.3注册consumer group

curl -X POST -H "Content-Type:application/vnd.kafka.v2+json" -H "Accept: application/vnd.kafka.v2+json"   --data '{"name": "my_consumer_instance", "format": "json", "auto.offset.reset": "earliest"}'   http://192.168.176.131:8082/consumers/my_test_consumer

4.6.4把topic和消费者my_consumer关联起来

curl -X POST -H "Content-Type:application/vnd.kafka.v2+json" --data '{"topics":["bear"]}'   http://192.168.176.131:8082/consumers/my_test_consumer/instances/my_consumer_instance/subscription

4.6.5通过rest接口向bear push数据

curl -X POST -H "Content-Type:application/vnd.kafka.json.v2+json" --data '{"records":[{"value":{"name": "testUser"}}]}'  "http://192.168.176.131:8082/topics/bear"

4.6.6通过rest接口消费数据

curl -X GET -H "Accept:application/vnd.kafka.json.v2+json" http://192.168.176.131:8082/consumers/my_test_consumer/instances/my_consumer_instance/records

4.6.7删除注册的consumer实例:

curl -X DELETE -H "Accept:application/vnd.kafka.v2+json"     http://192.168.176.131:8082/consumers/my_test_consumer/instances/my_consumer_instance

4.6.8更多信息参考

https://github.com/confluentinc/kafka-rest

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

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

相关文章

Atcoder 做题记录

My OI Blog A R C 155 F \mathbb{ARC \ 155 \ F} ARC 155 F E, F 先咕着,做一些多项式题,这篇题解是我人工翻译的 [1] Double Counting 双重计数 考虑从叶子节点开始,用唯一的方式(如果有的话)来构造出一棵满足条件的树…

“AI乳腺癌检测”风暴眼中的三篇论文

深度学习和医学研究界对谷歌、纽约大学和DeepHealth发表的三篇有前途的乳腺癌诊断论文引发的讨论非常热烈。 几年前,纽约大学的一组研究人员开始发表关于将深度学习应用于癌症筛查的论文。该团队的最新论文《深度神经网络改善放射科医生在癌症筛查中的表现》于2019…

mybatisplus集成geometry实现增改功能

前言 在我们工作中想要实现将空间点位信息存储到数据库时,一般使用以下语句实现 INSERT INTO test-point ( point,text ) VALUES ( st_GeomFromText ( POINT(1 1) ),第1个点);update test-point set pointst_PointFromText(POINT(5 5)) where id 10;但是这样每次都要去编写新…

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio快速构建React完成点餐H5页面还原

文章目录 一、前言二、Cloud Studio 功能介绍三、实验介绍四、实操指导打开官网注册 Cloud Studio 五、开发一个简版的点餐系统安装 antd-mobile安装 Less 六、发布仓库七、开发空间八、总结 一、前言 IDE(集成开发环境)是一种软件工具,旨在…

Mybatis引出的一系列问题-动态 SQL

动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底…

IDEA Go语言开发环境无法debug调试

现象描述 使用idea 搭建go开发环境后如果debug调试可能会遇到错误: could not launch process: decoding dwarf section info at offset 0x0: too short。 解决方法 有些回答go get -u github.com/derekparker/delve/cmd/dlv 。现在如果使用go mod方式的话这个是…

c++转换构造,拷贝构造,operator=

c转换构造,拷贝构造,operator 一.转换构造 定义一个类 class CTest { public:int m_a;CTest(int m_a):m_a(0){} };在主函数中定义对象 CTest tes1(1); CTest tes2 5;//我们发现这种定义对象的方式不符合常理,这里其实是发生了隐式类型转…

【Android】Retrofit2和RxJava2新手快速上手

写这篇博客的目的 网上关于Retrofit2和RxJava2的博客特别多,但是内容特别复杂,一上来就讲解很高级的用法 其实我们没必要像高考做题家一样,把每个API都背的滚瓜烂熟 熟悉基本用法,高阶用法需要的时候再逐个了解就行了 因为博客…

R语言linkET包绘制相关性组合网络热图

热图就是使用颜色来表示数据相关性的图。能绘制热图的R包很多,既往我们已经介绍了《R语言pheatmap包绘制热图》,今天咱们来介绍一下R语言linkET包绘制相关性组合网络热图。相关性热图的意思热图和其他数据的关联性,比较的是多数据间的内在关系…

【宝藏系列】Linux 常用磁盘管理命令详解

【宝藏系列】Linux 常用磁盘管理命令详解 文章目录 【宝藏系列】Linux 常用磁盘管理命令详解前言1️⃣ df2️⃣du3️⃣fdisk📟磁盘格式化📠磁盘检验⌨️磁盘挂载与卸除📀卸载/dev/hdc6 前言 Linux磁盘管理常用三个命令为df、du和fdisk。 df…

Stable Diffusion教程(6) - 扩展安装

打开stable diffusion webUI界面 加载插件列表 依次点击扩展->可用->加载自 搜索插件 首先在搜索框输入你要安装的插件,然后点击插件后面的安装按钮 如果你需要的插件这里面没有找到,可通过通网址安装的方式安装。 在git仓库网址输入框输入的你插件…

招投标系统简介 企业电子招投标采购系统源码之电子招投标系统 —降低企业采购成本 tbms

​功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外…

【算法第十六天7.31】654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

链接力扣654-最大二叉树 思路 class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {return getRoot(nums,0,nums.length);}public TreeNode getRoot(int[] nums,int leftIndex,int rightIndex){// 已经没有节点if(rightIndex - leftIndex < 1) ret…

强化学习分享(一) DQN算法原理及实现

摘要&#xff1a;主要讲解DQN算法的原理&#xff0c;伪代码解读&#xff0c;基于pytorch版本的DQN小游戏编程&#xff0c;同时对该代码进行详细标注&#xff0c;以及奉上原码。 &#xff08;一&#xff09;强化学习算法介绍 DQN&#xff0c;顾名思义&#xff0c;Deep Q Learni…

layui中渲染table表格

页面布局 可直接根据文档要求去写 table 组件&#xff08;这个不重要&#xff09; <table lay-filter"SyDictTable" id"SyDictTable" lay-data"{id: SyDictTable}"></table>Js 重要的是去修改JS里面的东西&#xff0c;比如&#…

LeetCode 0822. 翻转卡片游戏:双O(n)的做法

【LetMeFly】822.翻转卡片游戏&#xff1a;双O(n)的做法 力扣题目链接&#xff1a;https://leetcode.cn/problems/card-flipping-game/ 在桌子上有 N 张卡片&#xff0c;每张卡片的正面和背面都写着一个正数&#xff08;正面与背面上的数有可能不一样&#xff09;。 我们可以…

动态开点线段树

防止原来的区间太大(比如n的范围为1e9&#xff0c;询问的个数为1e5)&#xff0c;此时我们就可以动态开点&#xff0c;防止普通线段树的空间过大导致MLE。 题目链接&#xff1a;E. Physical Education Lessons 区间查询&#xff0c;区间修改&#xff1a; #include <bits/s…

飞凌嵌入式「国产」平台大盘点(二)全志系列

在上篇文章中&#xff0c;小编带大家一起盘点了飞凌嵌入式国产平台中的瑞芯微系列核心板。本篇文章&#xff0c;将继续为大家介绍的是全志系列核心板&#xff0c;话不多说&#xff0c;上干货&#xff01; 全志科技 飞凌嵌入式 飞凌嵌入式与全志科技的合作始于2019年&#xff…

Opencv C++实现yolov5部署onnx模型完成目标检测

代码分析&#xff1a; 头文件 #include <fstream> //文件 #include <sstream> //流 #include <iostream> #include <opencv2/dnn.hpp> //深度学习模块-仅提供推理功能 #include <opencv2/imgproc.hpp> //图像处理模块 #include &l…

AI 绘画Stable Diffusion 研究(四)sd文生图功能详解(上)

大家好&#xff0c;我是风雨无阻。 通过前面几篇AI 绘画Stable Diffusion 研究系列的介绍&#xff0c;我们完成了Stable Diffusion整合包的安装、模型ControlNet1.1 安装、模型种类介绍与安装&#xff0c;相信看过教程的朋友们&#xff0c;手上已经有可以操作实践的Stable Diff…