nifi1.17.0的Kerberos证书安装及其使用

2023-10-31

文章目录

一、NiFi1.17.0的集群证书安装

1、环境准备

主机 服务
192.168.11.11 bigdata11 NiFi、Kerberos、nifi-toolkit
192.168.11.12 bigdata12 NiFi
192.168.11.13 bigdata13 NiFi

1.1、三台主机需要的操作

禁用selinux(三台)

vim /etc/selinux/config
SELINUX=disabled

禁用防火墙(三台)

systemctl disable firewalld
systemctl stop firewalld

jdk安装(三台)、免密(三台)以及时间同步。

2、搭建Kerberos

2.1、新建租户nifi

useradd nifi #新建一个名为nifi的用户,三台主机都要建

2.2、安装kerberos

yum -y install krb5-server krb5-libs krb5-workstation

配置krb5.conf,在实际环境中这个配置应该已经是配置完成的,可以不用详细配置。

vim /etc/krb5.conf
[libdefaults]
default_realm = MYCDH
[realms]
MYCDH = {
kdc = 192.168.11.11
admin_server = 192.168.11.11

}
[domain_realm]

# 将上面文件发送到另外两台主机
scp /etc/krb5.conf bigdata12:/etc/
scp /etc/krb5.conf bigdata13:/etc/

配置kdc.conf

vim /var/kerberos/krb5kdc/kdc.conf
[realms]
 MYCDH = {
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = des-cbc-crc:normal  des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-crc:v4 des-cbc-crc:afs3
}

配置kadm5.acl

vim /var/kerberos/krb5kdc/kadm5.acl
*/admin@MYCDH   *

创建Kerberos数据库

> kdb5_util create -r MYCDH -s
Enter KDC database master key: kerberos123
Re-enter KDC database master key to verify: kerberos123

2.3、设置用户的认证

这一步设置的密码很重要,到时候登录nifi的web界面的登陆密码就是这个。

kadmin.local -q "addprinc nifi@MYCDH" # 设置密码 admin123
kadmin.local -q "xst -norandkey -k nifi.keytab nifi@MYCDH"

进入home下的nifi

chown nifi:nifi nifi.keytab
# 测试服务:激活票据
klist -k nifi.keytab
kinit -kt nifi.keytab nifi@MYCDH

将bigdata11上的keytab文件分发
cd /home/nifi
scp nifi.keytab bigdata11:/home/nifi/
scp nifi.keytab bigdata12:/home/nifi/
scp nifi.keytab bigdata13:/home/nifi/

3、生成证书

3.1、上传并解压安装包

cd /opt
rz
nifi-1.17.0-bin.zip #nifi的安装包
nifi-toolkit-1.17.0-bin.zip #对应版本的证书生成工具

unzip nifi-1.17.0-bin.zip -d /opt
mv nifi-1.17.0 nifi #修改名字为nifi
unzip nifi-toolkit-1.17.0-bin.zip -d /opt #解压 -d表示解压路径
#如果是tar包,解压命令
cd /opt
tar -zxvf nifi-1.17.0-bin.tar.gz
tar -zxvf  nifi-toolkit-1.17.0-bin.tar.gz   

注意:nifi的安装包三台主机都要安装,nifi-toolkit只需要在主节点安装即可。

3.2、证书生成

此步骤只需要在主节点bigdata11执行

bin/tls-toolkit.sh standalone -C 'CN=nifi, OU=NIFI' -n 'bigdata11,bigdata012,bigdata13' --keyPassword admin123 --keyStorePassword admin123 --trustStorePassword admin123 -o 'bak'

在这里插入图片描述

-C 生成适合在指定 DN 的浏览器中使用的客户端证书 里面的都是一些标记配置 ,按自己需要填写,比如 CN=nifi

-n -hostnames要生成证书的主机名列表(以逗号分隔),可指定多次,支持范围和实例模式

-o 是输出的目录

3.3、证书分发

生成的主机文件需要复制到对应每个节点的nifi/conf目录下(只需要在主节点bigdata11下执行)

cd bak
cp CN* bigdata11/       cp nifi-* bigdata11/           
cd  bigdata11           scp ./*    /nifi/conf 

cp CN* bigdata12/       cp nifi-* bigdata12/           
cd  bigdata12           scp ./*    bigdata12:/nifi/conf/

cp CN* bigdata13/       cp nifi-* bigdata13/           
cd  bigdata13           scp ./*    bigdata13:/nifi/conf/

注释:把节点目录发送到各个节点,外面的文件可用可不用,都是一些 https 的 key

3.4、内置zookeeper配置

创建myid

cd  /nifi                 mkdir -p   ./state/zookeeper             echo 1 > ./state/zookeeper/myid           (bigdata11 执行)
cd  /nifi                 mkdir -p   ./state/zookeeper             echo 1 > ./state/zookeeper/myid           (bigdata12 执行)
cd  /nifi                 mkdir -p   ./state/zookeeper             echo 1 > ./state/zookeeper/myid           (bigdata13 执行)

修改nifi目录下的**/conf/state-management.xml**(三台都需执行)

 <cluster-provider>
        <id>zk-provider</id>
        <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
        <property name="Connect String">192.168.11.11:22181,192.168.11.12:22181,192.168.11.13:22181</property>
        <property name="Root Node">/nifi</property>
        <property name="Session Timeout">10 seconds</property>
        <property name="Access Control">Open</property>
 </cluster-provider>

修改每个节点的**/conf/zookeeper.properties**(三台都需执行) 末尾修改添加

server.1=192.168.11.11:22888:23888;22181
server.2=192.168.11.12:22888:23888;22181
server.3=192.168.11.13:22888:23888;22181

3.5、nifi配置

修改每台节点的nifi.properties(三台都需执行)

cd /opt/nifi/conf/
vim nifi.properties

#修改nifi.properties部分参数
nifi.state.management.embedded.zookeeper.start=true
nifi.cluster.protocol.is.secure=true
nifi.cluster.is.node=true
nifi.zookeeper.connect.string=192.168.11.11:22181,192.168.11.12:22181,192.168.11.13:22181
#三台主机端口号需要更改为11443,address分别为对应的地址bigdata11、bigdata12、bigdata13
nifi.cluster.node.protocol.port=11443
nifi.cluster.node.address=bigdata11
#三台主机web端口号为9443,host分别为对应的host
nifi.web.https.port=9443
nifi.web.https.host=bigdata11

nifi.web.proxy.context.path=/ #用于端口的https转接,当我们用nginx的时候需要在nginx里面配置。
nifi.web.proxy.host=192.168.11.14:11213  #代理服务器的ip地址:代理服务的端口

#三台主机的balance为6342
nifi.cluster.load.balance.port=6342
#配置kerberos参数
nifi.remote.input.secure=true
nifi.security.user.login.identity.provider=kerberos-provider
nifi.security.user.authorizer=file-provider #属性指示authorizers.xml文件中要使用的已
#配置授权者
nifi.sensitive.props.key=123456789012 #所有选项都需要至少 12 个字符的密码
# kerberos #
nifi.kerberos.krb5.file=/etc/krb5.conf
nifi.kerberos.service.principal=nifi@MYCDH#配置的服务主体
nifi.kerberos.service.keytab.location=/home/nifi/nifi.keytab #配置服务主体的keytab

3.6、配置nifi登录信息

将kerberos-provider的前后注释去掉,然后配置前面设置的kdc.conf中设置的realm(MYCDH)

vim login-identity-providers.xml
 <provider>
        <identifier>kerberos-provider</identifier>
        <class>org.apache.nifi.kerberos.KerberosProvider</class>
        <property name="Default Realm">MYCDH</property>
        <property name="Authentication Expiration">12 hours</property>
    </provider>

3.7、配置登录用户信息

vim authorizers.xml
 <authorizer>
        <identifier>file-provider</identifier>
        <class>org.apache.nifi.authorization.FileAuthorizer</class>
        <property name="Authorizations File">./conf/authorizations.xml</property>
        <property name="Users File">./conf/users.xml</property>
        <property name="Initial Admin Identity">nifi@MYCDH</property>
        <property name="Legacy Authorized Users File"></property>

        <property name="Node Identity 1">CN=192.168.11.11, OU=NIFI</property>
        <property name="Node Identity 2">CN=192.168.11.12, OU=NIFI</property>
        <property name="Node Identity 3">CN=192.168.11.13, OU=NIFI</property>
    </authorizer>

3.8、配置JVM

vim bootstrap.conf
java.arg.2=-Xms10240m
java.arg.3=-Xmx10240m

4、启动

4.1、更新key,设置初始密码(三台)

cd /opt/nifi/
#需要更新key
bin/nifi.sh set-sensitive-properties-key  123456789012
#设置初始用户密码
bin/nifi.sh set-single-user-credentials admin 123456789012
启动
/bin/nifi.sh start 

4.2、web端查看

在浏览器输入: https://192.168.11.11:9443/nifi/

登录:nifi密码:admin123三台登录一样。

4.3、浏览器上传证书(此步骤可以省略)

打开浏览器的设置

在这里插入图片描述

导入

在这里插入图片描述

选择证书、输入密码

在这里插入图片描述

在这里插入图片描述

证书位置与密码:

cd /opt/nifi-toolkit-1.17.0/bak
ll

在这里插入图片描述

4.4、nginx反向代理nifi

进入nginx的安装目录,进入到sbin下,输入

./nginx -v

如果出现
(configure arguments: --prefix=********* --with-http_ssl_module),则已安装可以不用安装ssl模块

在这里插入图片描述

打开nginx的conf文件

配置下面参数:

stream {
        upstream nifi232 {
             server 192.168.11.11:9443;
        }
		upstream nifi233 {
			server 192.168.11.12:9443;
		}
		upstream nifi234 {
			server 192.168.11.13:9443;
		}
		server {
               listen 16618;
               proxy_connect_timeout 300s;
               proxy_timeout 300s;
               proxy_pass nifi232;
       		}
		server {
               listen 16619;
               proxy_connect_timeout 300s;
               proxy_timeout 300s;
               proxy_pass nifi233;
        	}
		server {
               listen 16620;
               proxy_connect_timeout 300s;
               proxy_timeout 300s;
               proxy_pass nifi234;
        }
}

二、Nifi处理器

1、查看处理器

选择处理器组件

在这里插入图片描述

弹出窗口显示的就是所有处理器

在这里插入图片描述

2、常用处理器

ExecuteScript:执行脚本处理器,支持:clojure,ecmascript,groovy,lua,python,rubby

QueryDatabaseTable:数据库查询处理器,支持:mysql

ConvertAvroToJSON:avro数据格式转换为json。

SplitJson:将JSON文件拆分为多个单独的FlowFiles,用于由jsonPath表达式指定的的数组元素

EvaluateJsonPath:根据FlowFile的内容评估一个或多个JsonPath表达式。这些表达式的结果将分配给FlowFile属性,或者写入FlowFile本身的内容,具体取决于处理器的配置。

ReplaceText:文本组装与替换,支持正则表达式

PutHDFS:将FlowFile数据写入Hadoop分布式文件系统(HDFS)

PutHiveQL:执行hive ddl/dml命令,如:insert,update

PublishKafka_2_0:根据配置将消息发送到kafka topic

SelectHiveQL:执行hive select语句并获取结果

PutFile:将FlowFile数据写入文件

GetHDFS:从Hadoop分布式文件系统获取文件

CaptureChangeMySQL:从MySQL数据库中检索更改数据捕获(CDC)事件。CDC事件包括INSERT。UPDATE,DELETE,操作。事件作为单个流文件输出,这些文件按操作发生的时间排序。

ExecuteStreamCommand:一般用于执行sh脚本

3、配置处理器

添加一个处理器

[外在这里插入图片描述

处理器配置项说明:

Configure(配置):此选项允许用户建立或更改处理器的配置。

Start(启动或停止):此选项允许用户启动或停止处理器;该选项将为Start或Stop,具体取决于处理器当前状态。

Disable(启用或禁用):此选项允许用户启用或禁用处理器;该选项将为“启用”或“禁用”,具体取决于处理器当前状态。

View Data provenance(查看数据来源):此选项显示Nifi数据来源表,其中包含有关通过该处理器路由FlowFile的数据来源事件的信息。

View status history(查看状态历史记录):此选项打开处理器统计信息随时间的图形表示。

View usage(查看用法):此选项将用户带到处理器的使用文档。

View connection -->Upstream(查看连接–>上游):此选项允许用户查看和“跳转”入处理器的上游连接。当处理器连接进出其他进程组时,这尤其有用。

View connection -->Downstream(查看连接–>下游):此选项允许用户查看和“跳转”到处理器的下游连接。当处理器连接进出其他进程组时,这尤其有用。

Centered in view(视图中心):此选项将画布的视图置于给定的处理器上。

Change color(更改颜色):此选项允许用户更改处理器的颜色,这可以使大流量的可视化管理更容易。

Group(添加到组):把当前处理器添加到组

Create template(创建模板):此选项允许用户从所选处理器创建模板

Copy(复制):此选项将所选处理器的副本放在本 以便可以通过右键单击工作区并选择“粘贴”完成

Delete(删除):此选项允许从画布中删除处理器

3.1、开始配置

右键选择Configure

在这里插入图片描述

在这里插入图片描述

SETTING(设置)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接在这里插入图片描述

SCHEDULING(任务调度)

在这里插入图片描述

PROPERTIES(属性)

在这里插入图片描述

RELATIONSHIPS(终止关系)

在这里插入图片描述

COMMENTS(注释)

在这里插入图片描述

三、其他组件

1、导航栏部分

数据流传入点(input-port)

虽说时数据流输入点,但并不是整体数据流的起点。它是作为组与组之间的数据流连接的传入点与输出点。

在这里插入图片描述

数据流输出点(output-port)

它是作为组与组之间的数据流连接的传入点与输出点

在这里插入图片描述

组(process-group)

组相当于系统中的文件夹,作用就是使数据流的各个部分看起来更工整,思路更清晰,不至于从头到尾一条线阅读起来不方便。

在这里插入图片描述

远程组(remote process-group)

添加远程的组

在这里插入图片描述

聚合(funnel)

用于将来自多个Connections的数据合并到一个Connection中

在这里插入图片描述

模板(template)

可以将若干组件组合在一起形成一个更大的组,从该组创建数据流模板。这些模板也可以导出为XML并导入到另一个nifi实例中,从而可以共享这些组

在这里插入图片描述

便签(label)

可放置在画布空白处,写上备注信息

在这里插入图片描述

2、导航(Navigate)部分

Navigate是对工作区进行预览,点击放大缩小可调整视野,蓝框区域就是工作区当前的界面,可用鼠标在这部分进行移动从而调整工作区的视野。

在这里插入图片描述

3、操作区(Operate)部分

配置(Configuration)

在这里插入图片描述

启用(enable)

在这里插入图片描述

禁用(disable)

在这里插入图片描述

开始(start)

在这里插入图片描述

停止(stop)

在这里插入图片描述

创建模板(create template)

在这里插入图片描述

上传模板(upload template)

在这里插入图片描述

四、多租户授权

1、新建四个Kerberos认证

 kadmin.local -q "addprinc user1@MYCDH"  #设置密码admin123
 kadmin.local -q "addprinc user2@MYCDH"  #设置密码admin123
 kadmin.local -q "addprinc user3@MYCDH"  #设置密码admin123
 kadmin.local -q "addprinc user4@MYCDH"  #设置密码admin123

2、UI界面超级管理员进行添加用户

在这里插入图片描述

在这里插入图片描述

3、注意名称与kerberos设置的密码相同

在这里插入图片描述

4、新建用户组进行分组

在这里插入图片描述

5、全局访问策略

Policy Privilege Global Menu Selection Resource Descriptor
view the UI
查看用户界面
允许用户查看 UI N/A /flow
access the controller
访问控制器
允许用户查看/修改控制器,包括报告任务、控制器服务、参数上下文和集群中的节点 Controller Settings /controller
access parameter contexts
访问参数上下文
许用户查看/修改参数上下文。除非被覆盖,否则对参数上下文的访问从“访问控制器”策略继承。 Parameter Contexts /parameter-contexts
query provenance
查询出处
允许用户提交来源搜索并请求事件沿袭 Data Provenance /provenance
access restricted components
访问受限组件
假设其他权限足够,允许用户创建/修改受限组件。受限组件可以指示需要哪些特定权限。可以针对特定限制授予权限,也可以不考虑限制授予权限。如果不考虑限制而授予权限,则用户可以创建/修改所有受限组件 N/A /restricted-components
access all policies
访问所有政策
允许用户查看/修改所有组件的策略 Policies /policies
access users/user groups
访问用户/用户组
允许用户查看/修改用户和用户组 Users /tenants
retrieve site-to-site details
检索站点到站点的详细信息
允许其他 NiFi 实例检索站点到站点详细信息 N/A /site-to-site
view system diagnostics
查看系统诊断
允许用户查看系统诊断 Summary /system
proxy user requests
代理用户请求
允许代理机器代表其他人发送请求 N/A /proxy
access counters
访问计数器
允许用户查看/修改计数器 Counters /counters

6、组件访问策略

Policy Privilege Resource Descriptor & Action
view the component
查看组件
允许用户查看组件配置详细信息 resource="/<component-type>/<component-UUID>" action="R"
modify the component
修改组件
允许用户修改组件配置详细信息 resource="/<component-type>/<component-UUID>" action="W"
operate the component
操作组件
允许用户通过更改组件运行状态(启动/停止/启用/禁用)、远程端口传输状态或终止处理器线程来操作组件 resource="/operation/<component-type>/<component-UUID>" action="W"
view provenance
查看出处
允许用户查看此组件生成的出处事件 resource="/provenance-data/<component-type>/<component-UUID>" action="R"
view the data
查看数据
允许用户在出站连接中的流文件队列中以及通过来源事件查看此组件的元数据和内容 resource="/data/<component-type>/<component-UUID>" action="R"
modify the data
修改数据
允许用户清空出站连接中的流文件队列并通过来源事件提交重播 resource="/data/<component-type>/<component-UUID>" action="W"
view the policies
查看政策
允许用户查看可以查看/修改组件的用户列表 resource="/policies/<component-type>/<component-UUID>" action="R"
modify the policies
修改政策
允许用户修改可以查看/修改组件的用户列表 resource="/policies/<component-type>/<component-UUID>" action="W"
receive data via site-to-site
通过站点到站点接收数据
允许端口从 NiFi 实例接收数据 resource="/data-transfer/input-ports/<port-UUID>" action="W"
send data via site-to-site
通过站点到站点发送数据
允许端口从 NiFi 实例发送数据 resource="/data-transfer/output-ports/<port-UUID>" action="W"

7、势力

7.1、全局权限说明

使用管理员,编辑访问策略

在这里插入图片描述

选择你要赋予的权限

在这里插入图片描述

添加赋权的用户,或者组。

在这里插入图片描述

查看权限

在这里插入图片描述

在这里插入图片描述

7.2、组件访问权限说明

选择组件

在这里插入图片描述

选择覆盖

在这里插入图片描述

添加相应的权限和用户

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nifi1.17.0的Kerberos证书安装及其使用 的相关文章

  • 如何解决Mybatis-plus与Mybatis不兼容的问题:An attempt was made to call a method that does not exist. The attempt

    博主猫头虎的技术世界 欢迎来到 猫头虎的博客 探索技术的无限可能 专栏链接 精选专栏 面试题大全 面试准备的宝典 IDEA开发秘籍 提升你的IDEA技能 100天精通Golang Go语言学习之旅 领域矩阵 猫头虎技术领域矩阵 深入探索各技
  • Jenkins流水线怎么做?

    问CHAT Jenkins流水线怎么做 CHAT回复 Jenkins流水线是一种创建 测试和部署应用程序的方法 以下是为Jenkins创建流水线的步骤 1 安装Jenkins 首先你需要在你的服务器上安装Jenkins 这个过程可能会根据你
  • 【计算机毕业设计】病房管理系统

    当下 如果还依然使用纸质文档来记录并且管理相关信息 可能会出现很多问题 比如原始文件的丢失 因为采用纸质文档 很容易受潮或者怕火 不容易备份 需要花费大量的人员和资金来管理用纸质文档存储的信息 最重要的是数据出现问题寻找起来很麻烦 并且修改
  • Navicat 16 for MySQL:打造高效数据库开发管理工具

    随着数据的快速增长和复杂性的提升 数据库成为了现代应用开发中不可或缺的一部分 而在MySQL数据库领域 Navicat 16 for MySQL作为一款强大的数据库开发管理工具 正受到越来越多开发者的青睐 Navicat 16 for My
  • 【计算机毕业设计】个人日常事务管理系统

    进入21世纪网络和计算机得到了飞速发展 并和生活进行了紧密的结合 目前 网络的运行速度以达到了千兆 覆盖范围更是深入到生活中的角角落落 这就促使 管理系统的发展 管理系统可以实现远程处理事务 远程工作信息和随时追踪工作的状态 网上管理系统给
  • Linux终端常见用法总结

    熟悉Linux终端的基础用法和常见技巧可以极大提高运维及开发人员的工作效率 笔者结合自身学习实践 总结以下终端用法供同行交流学习 常 见 用 法 1 快捷键 1 1 Alt 在光标位置插入上一次执行命令的最后一个参数 1 2 Ctrl R
  • Jenkins 插件下载速度慢、安装失败了!我教你怎么解决!

    Jenkins部署完毕 如果不安装插件的话 那它就是一个光杆司令 啥事也做不了 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI CD必要插件 但是问题来了 jenkins下载插件速度非常慢 而且经常提示下载插件失败 真
  • messages,CentOS 7不收集日志或不存在 /var/log/messages

    var log message var log secure等都不记录了 并且都是空文件 重启机器 reboot 无效 重启日志 systemctl start rsyslog 无效 怀疑空间不足 删除 var log messages 重
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

    在 MongoDB 中 我们使用 find 和 find one 方法来在集合中查找数据 就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB的集合中选择数据 我们可以使用 find one
  • 【计算机毕业设计】北工国际健身俱乐部

    本系统为会员而设计制作北工国际健身俱乐部 旨在实现北工国际健身俱乐部智能化 现代化管理 本北工国际健身俱乐部管理自动化系统的开发和研制的最终目的是将北工国际健身俱乐部的运作模式从手工记录数据转变为网络信息查询管理 从而为现代管理人员的使用提
  • 【计算机毕业设计】二手家电管理平台

    时代在飞速进步 每个行业都在努力发展现在先进技术 通过这些先进的技术来提高自己的水平和优势 二手家电管理平台当然不能排除在外 二手家电管理平台是在实际应用和软件工程的开发原理之上 运用java语言以及前台VUE框架 后台SpringBoot
  • 【计算机毕业设计】宝鸡文理学院学生成绩动态追踪系统

    研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人 设备和场景更立体的连接在一起 能让用户以更科幻的方式使用产品 体验高科技时代带给人们的方便 同时也能让用户体会到与以往常规产品不同的体验风格 与安卓 iOS相比较起来
  • 【计算机毕业设计】springbootstone音乐播放器的设计与实现

    随着我国经济的高速发展与人们生活水平的日益提高 人们对生活质量的追求也多种多样 尤其在人们生活节奏不断加快的当下 人们更趋向于足不出户解决生活上的问题 stone音乐播放器展现了其蓬勃生命力和广阔的前景 与此同时 为解决用户需求 stone
  • 【计算机毕业设计】OA公文发文管理系统_xtv98

    近年来 人们的生活方式以网络为主题不断进化 OA公文发文管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工作效率
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

    场景 Mysql中怎样设置指定ip远程访问连接 Mysql中怎样设置指定ip远程访问连接 navicat for mysql 设置只有某个ip可以远程链接 CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式 如果通过可视
  • 温室气体排放更敏感的模型(即更高的平衡气候敏感性(ECS))在数年到数十年时间尺度上也具有更高的温度变化(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • ESP10B 锁定连接器

    ESP10B 锁定连接器 ESP10B 电机新增内容包括双极型号标准 NEMA 尺寸 17 23 和 34 的步进电机现在包括输出扭矩范围从 61 盎司英寸到 1291 盎司英寸的双极型号 该电机配有带锁定连接器的尾缆 可轻松连接 每转可步

随机推荐

  • C语言实现控制台背景闪烁

    include
  • C++的公有继承和私有继承(总结,大家可参考并指正哈)

    公有继承 1 基类的公有成员和保护成员的访问属性在派生类中不变 而基类的私有成员不可直接访问 2 能通过派生类的对象访问从基类继承的公有成员 3 无法直接访问基类的私有成员 可间接通过基类公有成员 继承过来了就是派生类的公有成员 访问基类私
  • 一台计算机英语美式发音,美式英语发音课程(视频+文本) 第69期:"Want"和"Won't"的发音对比...

    视频文本 In this American English pronunciation video we re going to go over the pronunciation of two words WANT and WON T T
  • 操作系统复习知识点(第六章)

    1 I O软件的层次结构 通常把 I O 软件组织成四个层次 用户层 I O 软件 实现与用户交互的接口 用户可直接调用该层所提供的 与 I O 操作有关的库函数对设备进行操作 设备独立性软件 用于实现用户程序与设备驱动器的统一接口 设备命
  • SpringBoot添加自定义HttpMessageConverter

    为什么需要自定义MessageConverter 当我们想要让一些数据以我们自定义的格式返回 而不是普通的json或xml格式的数据 并且底层的最终是遍历MessageConverter 然后再进行数据转换的 首先需要创建一个自己的Http
  • C++智能指针以及我们为什么要使用智能指针

    C 智能指针以及我们为什么要使用智能指针 前言 对象生命周期的管理问题 智能指针 shared ptr shared ptr所带来的问题 weak ptr 举例 观察者模式 小结 前言 智能指针我也是看过了很多文章 也自己尝试了自己去设计和
  • Swagger2使用教程

    Swagger 学习目标 了解Swagger的作用和概念 了解前后端分离 在SpringBoot中集成Swagger Swagger简介 前后端分离 现在流行的Vue SpringBoot 后端时代 前端只用管理静态页面 html jsp
  • 12.基于STM32C8T6的四旋翼无人机的飞控制作----电路板焊接方法

    电路板焊接是非常考验手上功夫和经验的一个技术 当然简单的插件元件好焊 但是高级电路板上有LQFP QFP BGA等等封装 很多时候 测试阶段需要手工焊接 下面做下简单总结 后期慢慢配图补齐 1 0805 0603 0402电阻电容焊接 先将
  • 这两款腾讯研发的性能管理工具开放免费试用了

    如何实现专业的游戏性能监控与管理 如何快速定位并解决异常问题 有效降低产品崩溃率 提升产品整体用户体验 由腾讯WeTest打造的性能工具 PerfSight 游戏性能管理平台 和 CrashSight 异常崩溃管理工具 可以帮助开发者解决上
  • 认认真真推荐几个高质量人工智能方向的原创公众号

    当今人工智能方向越来越卷了 系统化学习能够让你高效的利用时间 达到事半功倍的效果 今天给大家推荐9个优质原创公众号 助你在系统化学习的路上一臂之力 机器学习算法那些事 一个百度人的技术提升之路 为您提供一系列计算机视觉 自然语言处理和推荐系
  • stm32项目工程的建立

    1 stm32学习笔记 项目工程的建立 xdearluo的博客 CSDN博客 2 STM32基础入门 一 Keil5新建STM32工程 根号五的博客 CSDN博客 keil5新建stm32工程 3 Stm32 keil5项目创建步骤 西瓜籽
  • RK3288把debug口从uart2修改为uart3步骤

    kernel arch arm mach rockchip rk fiq debugger c 搜索 static int debug port init struct platform device pdev 将该函数内容替换为以下即可
  • SimVODIS++: Neural Semantic Visual Odometry in Dynamic Environments 论文阅读

    论文信息 题目 SimVODIS Neural Semantic Visual Odometry in Dynamic Environments 作者 Ue Hwan Kim Se Ho Kim and Jong Hwan Kim Fell
  • Java线上CPU内存冲高问题排查步骤

    1 引言 作为一名从事Java开发快一年的程序员 在线上经常碰到某个模块的Pod发出CPU与内存告警的问题 而这些问题会导致系统响应缓慢甚至是服务不可用 一般情况下可以通过重启或者调高Pod的资源量或者增加Pod数量暂时解决问题 但这是治标
  • CryptoPP的 AutoSeededX917RNG算法的使用

    AutoSeededX917RNG算法是CryptoPP密码学库提供的又一系列随机数发生器 为什么说其是 一系列 而不是 一个 算法 从CryptoPP的源代码和帮助文档中可以看到 AutoSeededX917RNG是一个类模板 它的类型参
  • STM32 进阶教程 4 - 软件实现高精度延时 2

    前言 软件工程师在在实际项目开发过程中 软件延时想必或多或少都有接触过 诸如delay s x delay ms x delay us x 等类型的延时函数大家也一定见过或自已曾经实现过 本节给大家介绍一种在STM32 MCU平台上实现高精
  • 电子招标采购商城系统:优化传统采购业务,提速企业数字化升级

    后疫情时代 电子元器件供应链发生了巨大的变化 缺货已经影响了大多数企业 电子元器件采购人员每天被 缺货 涨价 的字眼包围着 对电子元器件企业的发展带来了极大的限制 当前 借助数字化技术对电子元器件采购管理业务进行优化升级已是迫在眉睫 企业亟
  • Candies POJ - 3159(差分约束模板题,优先队列优化Dijkstra模板)

    题意 给n个人派糖果 给出m组数据 每组数据包含A B c 三个数 意思是A的糖果数比B少的个数不多于c 即B的糖果数 A的糖果数 lt c 最后求n 比 1 最多多多少糖果 AC代码 include
  • PSOM

    Message type 1 Record message message type message body Close message type 0x00 SetChannel 0x04 Break 0x06 RpcMessage 0x
  • nifi1.17.0的Kerberos证书安装及其使用

    文章目录 一 NiFi1 17 0的集群证书安装 1 环境准备 1 1 三台主机需要的操作 2 搭建Kerberos 2 1 新建租户nifi 2 2 安装kerberos 2 3 设置用户的认证 3 生成证书 3 1 上传并解压安装包 3