- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
我相信有不少小伙伴已经用过eureka,那么问题来了,Nacos是个啥?
看到这个标题,MySQL数据库与Nacos搭建监控服务,它们有什么关系么?
其实是Nacos支持连接MySQL,内部已配置好数据源、连接池供我们使用。如果使用其它数据源(比如信创要求,使用达梦数据库比较多),可以通过插件形式适配,模仿MySQL实现方式。具体如何实现,可参考 Nacos 的 github issues.
MySQL是什么? 一句话概括:一款社区活跃的开源数据库(database)软件,已被Oracle公司收购.
nacos是什么?
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台.
nacos 官方文档:目前推荐2.x版本 。
https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html 。
nacos 样例 http://console.nacos.io/nacos/index.html#/login 。
默认用户名与密码均为:nacos 。
Nacos 依赖 Java 环境来运行。如果你是一名开发人员,或许需要准备如下环境:
主要以Linux平台作为演示环境 。关于nacos 的获取(发行包、源码包),可以前往github开源仓库.
nacos开源仓库: https://github.com/alibaba/nacos 。
目前nacos最新稳定版是2.2.1: https://github.com/alibaba/nacos/releases/tag/2.2.1 。
下载很缓慢,可以使用在线工具箱加速(公共免费资源请适度使用): https://tool.mintimate.cn/gh/ 。
官方推荐版本为2.1.1:
您可以在Nacos的release notes及博客中找到每个版本支持的功能的介绍,当前推荐的稳定版本为2.1.1.
解压nacos 。
unzip nacos-server-2.2.0.zip & tar -zxvf nacos-server-2.2.0.tar.gz
启动服务 。
Linux平台以单机模式启动nacos服务 :
sh startup.sh -m standalone
Windows平台以单机模式启动nacos服务 :
startup.cmd -m standalone
访问: http://127.0.0.1:8848/nacos 后,进入登录界面:
服务注册、发现以及配置管理 。
服务注册 :
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=192.168.245.132&port=8080'
参数说明:
服务发现 :
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
发布配置 :
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
参数说明:
获取配置 :
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
控制台显示输出内容:HelloWorld,代表配置成功.
关于curl命令教程,可以去curl官网(curl.se)找一找,还是很常用的.
关闭服务 。
Linux平台:
sh shutdown.sh
Windows平台:
.\shutdown.cmd
以nacos2.2.0版本为示例说明 nacos配置文件,支持配置文件存储到数据库(DB)中保存。如果没有开放mysql数据源相应设置,默认使用本地存储数据源.
配置目录: \nacos-server-2.2.0\conf ,文件清单,每个版本可能略微有所不同:
配置基本说明 以 .example 结尾,是示例配置,可供参考。以 update.sql 结尾的,则是sql更新脚本.
application.properties是nacos基本配置,例如端口、ip、数据源等等可以在此配置中修改,cluster.conf.example 是集群配置示例,nacos-logback.xml是日志相关配置.
mysql-schema.sql提供支持MySQL数据库SQL表结构,derby-schema.sql提供支持derby数据库SQL表结构.
如果和我一样使用的是MySQL数据库, 需要注意的配置文件是application.properties和mysql-schema.sql ,记住后续用得上.
导入表结构 新建数据库:库名命名为:nacos。编码最好指定为utf8mb4和utf8mb4_bin,避免导入后看到中文注释乱码.
create database nacos;
导入sql脚本到新建的库nacos中:mysql-schema.sql。库名并不是固定的,可以根据实际需求更改,比如nacos_config。如果你是从旧版本升级上来的,可能需要执行SQL脚本: 1.4.0-ipv6_support-update.sql .
上面聊到 nacos 可以在配置文件中配置数据源,当然必不可少,需要部署MySQL数据库.
找到 application.properties 配置文件,配置MySQL数据源:
### If use MySQL as datasource:
spring.datasource.platform=mysql ### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.245.132:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root db.password.0=mypwd@123
很奇怪的一个问题,第一次使用,只导入初始化sql脚本MySQL数据源:
[root@Centos9-Stream ~]# cat /usr/local/nacos-2.2.0/conf/mysql-schema.sql | mysql -uroot -p nacos
nacos以单机模式启动:sh startup.sh -m standalone,启动无异常,正常访问.
MySQL数据库已设置自启,排查数据库正常启动。第二天启动centos-stream-9,再次启动 nacos 服务,出现无法设置数据源,尝试屏蔽数据源配置文件,启动正常。猜测可能是初始化脚本出问题了,执行升级sql脚本:1.4.0-ipv6_support-update.sql,再次启动nacos服务正常.
如果你和我一样,使用的是 MySQL8.0.30 版本数据库,可以参考.
如果遇到 Public Key Retrieval is not allowed ,可能还需要加上 &allowPublicKeyRetrieval=true .
在github issues查找解决方案,提到可能是MySQL8.0.x设置时区的问题,将默认serverTimezone=UTC修改为 serverTimezone=Asia/Shanghai .
如果配置好MySQL,但还是遇到数据源无法找到,也许是数据库导入脚本没有升级,也许是数据库版本和时区问题 .
尝试重连,反复提醒 Public Key Retrieval 不被允许,反复提醒数据源没有设置.
java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. 。
Caused by: com.mysql.cj.exceptions.CJException: Public Key Retrieval is not allowed 。
Caused by: com.alibaba.nacos.api.exception.NacosException: Nacos Server did not start because dumpservice bean construction failure : No DataSource set 。
Caused by: java.lang.IllegalStateException: No DataSource set 。
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'externalDumpService': Invocation of init method failed; nested exception is ErrCode:500, ErrMsg:Nacos Server did not start because dumpservice bean construction failure : No DataSource set 。
也有可能是MySQL版本问题和设置时区问题,连接配置做如下调整:
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.245.132:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode =true&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=root
db.password.0=mypwd@123
Linux终端执行命令导入升级脚本:
cat /usr/local/nacos-2.2.0/conf/1.4.0-ipv6_support-update.sql | mysql -uroot -p nacos
问题排查 。
关于nacos大部分问题 ,可以在官方仓库的 issues 找到解决方案:
https://github.com/alibaba/nacos/issues 。
总结配置数据源相关问题 :
tips:下载注意使用带有GA(General Availability)标识,稳定版.
实际工作中,使用比较到的是下载离线安装包。安装方式主要有如下几种分类:
Windows平台 :
Linux平台 :
当然,MySQL同样支持macOS平台.
你也可以使用MySQL的妹妹MariaDB替代MySQL,是很好的选择.
由于测试使用,本人数据库使用比较新,MySQL8.0.30。说8.0新,其实也并不是很新,距离8.0第一个稳定版 Changes in MySQL 8.0.11 (2018-04-19, General Availability) 快5年了.
目前市面上主要以MySQL5.7为主,离停止维护不远了,未来应该会逐渐升级为MySQL8.0.x。看到官网将MySQL5.6文档页面转移了,已停止版本更新.
Windows 平台 。
此处省略安装过程.
请参考个人公众号里面的文章,有简易安装教程:SQL基础知识扫盲.
此处我只演示 Linux平台(CentOS-Stream-9) 其中最方便的一种部署方式.
Linux平台(CentOS-Stream-9) 。
通过RHEL系列自带的命令服务安装管理工具,yum与dnf二选一即可.
yum -y install mysql-server-8.0.30
dnf -y install mysql-server-8.0.30
安装后,查看mysql服务状态,默认服务名为mysqld.service.
systemctl status mysqld.service
默认没有启动,手动启动 mysqld 服务 。
systemctl start mysqld.service
登录mysql字符命令行界面 。
mysql -uroot -p
如需远程登录,需要关闭防火墙相关服务,或者开放相应端口,个人建议采用开放相应端口 。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
由于MySQL默认端口3306可能被黑客利用通用扫描软件攻击,建议实际工作中进行修改。或者利用隧道转发功能。 如果只是在本地使用,改与不改并不影响.
重载firewalld服务 。
firewall-cmd --reload
设置开机自启 。
systemctl enable mysqld.service
查看mysqld服务状态:看到enabled代表设置为自启 。
systemctl status mysqld.service
如果使用第三方管理工具,需要开放相应用户权限才能登录MySQL:
修改用户密码 。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypwd@123';
创建用户root,主机地址%,匹配所有;如果是localhost,则只让本地使用,也可以是指定ip地址.
CREATE USER 'root'@'%' IDENTIFIED BY 'mypwd@123';
CREATE USER 'root'@'localhost' IDENTIFIED BY 'mypwd@123';
CREATE USER 'root'@'192.168.245.132' IDENTIFIED BY 'mypwd@123';
授权root用户所有权限(ALL),即可使远程登录。同样可以指定特定权限,只给查询(select).
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'root'@'192.168.245.132' WITH GRANT OPTION;
如果遇到第三方工具连接提示密码插件规则不被支持问题:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mypwd@123';
刷新权限 。
flush privileges;
更多权限细化设置请参考MySQL8.0.x官方文档第6章节Security。关于权限控制和账号(用户)管理介绍很详细.
6.2 Access Control and Account Management 。
更多安装方式,你还可以参考个人持续更新的笔记:
https://blog.cnwangk.top/2023/03/15/MySQL8-0-x-简易安装教程 。
下面,将演示数据库创建以及 sql脚本导入 .
登录 。
mysql -uroot -p
创建数据库 。
create database nacos;
导入数据,执行sql脚本 。
关于数据导入,可以使用DB管理工具(MySQL workbench、DBeaver、SQLyog)连接导入,也可以使用cat或者zcat命令导入.
演示Linux平台使用cat命令导入sql脚本 :
[root@Centos9-Stream ~]# cat /usr/local/nacos-2.2.0/conf/mysql-schema.sql | mysql -uroot -p nacos
原本我也不知道这种用法,联想到以前使用过zabbix监控工具。灵机一动,我也可以将nacos的sql脚本这样导入数据库中.
查看nacos数据库表 :验证是否导入成功 。
mysql> use nacos;
mysql> show tables;
如果你只是想体验nacos简单用法,可以跳过springboot项目集成nacos微服务 .
如果你是软件实施、运维人员,可以关注nacos官方文档运维监控文档(运维指南).
介绍很详细,我也觉得我很啰嗦了,这已经属于开发范畴了.
目标 :项目中集成nacos服务,使用nacos监控到打包好并正常运行服务健康情况。集成spring-cloud-starter-alibaba-nacos-discovery和spring-cloud-starter-alibaba-nacos-config。nacos-discovery是服务发现组件,nacos-config则是服务配置组件.
需要准备的环境 :
Linux平台安装JDK 。
解压JDK 。
tar -zxvf jdk-17.0.4.1_linux-x64_bin.tar.gz
配置全局环境变量:vim /etc/profile 。
JAVA_HOME=/usr/java/jdk17
CLASS_PATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASS_PATH PATH
配置当前用户环境变量:vim .bash_profile 或者 .bashrc,加入配置全局变量我所列出的内容即可.
执行 source 命令立即生效 :
source /etc/profile
关于环境变量更多配置可参考个人公众号关于JDK17的介绍.
验证版本:
java -version
Linux平台安装maven 。
yum -y install maven
当然,你也可以到Maven官网下载打包好的二进制包,解压即可用.
unzip apache-maven-3.6.3-bin.zip
mv apache-maven-3.6.3 /usr/local/
加入环境变量:
# Maven Home
MAVEN_HOME=/usr/local/apache-maven-3.6.3
PATH=$PATH:$MAVEN_HOME/bin
export MAVEN_HOME PATH
执行source命令立即生效 :source /etc/profile 。
查看版本 。
[root@Centos9-Stream bin]# mvn --version
Apache Maven 3.6.3 (Red Hat 3.6.3-15)
Maven home: /usr/share/maven
Java version: 17.0.4.1, vendor: Oracle Corporation, runtime: /usr/java/jdk17
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "5.14.0-148.el9.x86_64", arch: "amd64", family: "unix"
看到以上环境,证明你的Maven环境已经部署好了.
注意 :默认Maven镜仓库地址很慢,需要更换,推荐阿里云镜像源.
修改Maven配置文件:
[root@Centos9-Stream bin]# vim /usr/share/maven/conf/settings.xml
修改默认本地仓库存放目录 :找到localRepository,将如下内容开放:
<localRepository>/local/repo</localRepository>
配置Maven阿里镜像地址 ,加入如下配置, 注意是在 加入 :
<mirrors>
<mirror>
<id>aliyunmaven</id>
<name>aliyun maven</name>
<!-- 老版本url -->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<!-- 新版本url -->
<!--<url>https://maven.aliyun.com/repository/public/</url>-->
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
注意 :如果使用IDE工具构建,注意springboot、spring cloud以及spring cloud alibaba版本对应关系。尽量使用阿里云云原生应用脚手架官网推荐的版本,有助于后期遇到问题排查。当然还有一个好处,选择组件时有中文说明,一目了然.
如果你对于IDE工具使用,实在有困难,可以在线构建.
两种在线脚手架构建方式:
个人还是比较推荐使用阿里云云原生应用脚手架构建,便于在线选择nacos 等微服务相关组件.
springboot版本可以自己调试,目前已经支持springboot2.7.6和3.0.0配置。之前建议版本为springboot2.6.11,如果使用高版本,选择nacos相关组件时灰色的.
构建完成,如何打包成jar(目前使用比较多的时候jar包形式)?少不了JDK和Maven环境,参考环境准备步骤。老项目是有不少使用war包形式.
解压下载好的springboot项目demo.zip 。
unzip demo.zip
cd demo
执行Maven安装命令,这个过程可能有点缓慢,下载jar包越多,越耗时间:
[root@Centos9-Stream demo]# mvn install
如果新建的是单体应用,在根目录找到application.properties配置文件,如果构建mvc架构应用,则在demo-start子项目找到application.properties,然后修改spring.cloud.nacos.config.server-addr与spring.cloud.nacos.discovery.server-addr的IP地址.
示例如下 :
有点纳闷,也许是我本地环境问题,之前很少使用阿里脚手架构建项目。感觉使用阿里云云原生应用脚手架构建,会出现某些jar包(openfeign)找不到,使用Maven打包出现主清单文件找不到的问题。自己一步一步构建,添加微服务组件,配置nacos则是正常的.
Maven打包遇到找不到依赖:
示例如下,引入openfeign :
如果不出意外,正常打包,可以使用 java -jar 执行jar服务 .
java -jar demo-web/target/demo-web-0.0.1-SNAPSHOT.jar
在nacos控制台服务管理可以监控到服务,比如我搭建测试环境,给应用区名称为:springboot-test.
新建配置 :springboot-test.properties 。
配置详情 :配置的比较随意,参考看看就行 。
当然,你也需要在controller层 Java 代码里加入如下匹配:
/** 使用动态配置获取测试 --BEGIN-- **/
@Value("${alibaba.config.discovery}")
private String discovery;
@Value("${alibaba.config.name}")
private String name;
@GetMapping("/getConfig")
public String getConfig() {
log.info("getConfig>>>>>>>>>>>");
return "getConfig>>>>>>>>>>>>" + "发现:" + discovery + ">>>服务名称:" + name;
}
@Value("${custom.config.find}")
private String find;
@Value("${custom.config.say}")
private String say;
@GetMapping("/meet")
public String meet() {
log.info("meet>>>>>>>>>>>");
return "meet>>>>>>>>>>>>" + "偶遇老湿:" + find + ">>>你好:" + say;
}
/** 使用动态配置获取测试 --END-- **/
提供一种思路。可以根据业务情况而定,将多个配置封装到一个类里面,如下所示,新建CustomConf类:
/**
* desc:对象配置类
* @Value
* @Component @ConfigurationProperties
*/
@Component
@ConfigurationProperties(prefix = "custom")
public class CustomConf {
private Integer one;
private Integer two;
private Integer three;
private String description;
// 此处省略掉了 get set 方法,实际需要补上
}
使用到注解:
在项目中注入:
@Autowired
private CustomConf custom;
@RequestMapping("/custom")
public String custom() {
return "[custom] " + custom;
}
准备好集成nacos服务的jar包:
[root@Centos9-Stream test]# ll springboot-nacos-cloud-0.0.1-SNAPSHOT.jar
-rw-rw-r--. 1 kart kart 77534357 2月 12 18:44 springboot-nacos-cloud-0.0.1-SNAPSHOT.jar
运行服务 : nohup 代表脱离终端运行,&代表放入后台 。
[root@Centos9-Stream test]# nohup java -jar -Dspring.profiles.active=prod /opt/workspace/test/springboot-nacos-cloud-0.0.1-SNAPSHOT.jar > /opt/
workspace/test/springboot-nacos.log 2>&1 &
[1] 4628
指定为生产环境:-Dspring.profiles.active=prod 。
测试接口:
http://192.168.245.132:8082/t/getConfig
你也可以使用curl命令请求:
curl -X GET http://192.168.245.132:8082/t/getConfig
得到输出结果:
getConfig>>>>>>>>>>>>发现:配置>>>服务名称:nacos服务 。
查看日志验证:
验证成功,getConfig日志打印出来了.
官方文档比我演示介绍要更详细,如果进一步使用,请参考官方文档(运维指南).
控制台手册 : https://nacos.io/zh-cn/docs/console-guide.html 。
nacos 功能比较丰富 :
登录mysql,切换到nacos数据库 ,查看原始users表只有一条数据,存储nacos用户.
此处只演示一下连接上MySQL数据库后,在控制台左侧菜单栏找到权限控制,新建用户.
示例如下 :
验证users表 ,发现多了一条数据,nacos_test成功存入到数据库,至此MySQL与nacos联动完成.
mysql> select * from users\G
*************************** 1. row ***************************
username: nacos
password: $2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu
enabled: 1
*************************** 2. row ***************************
username: nacos_test
password: $2a$10$5F3NOcu2TFgdrBH0Av2iUuxbV9qBDihjmRt06163y5FTvPrErkWKS
enabled: 1
2 rows in set (0.00 sec)
新增配置,对照数据库表 。
use nacos;
show tables;
监控方法可以配合prometheus以及grafana使用。关于nacos更多用法,目前还在摸索中.
下面这张流程图思路,可供参考:
参考资料 :
最后,希望对你的工作有所帮助。如果觉得写得还不错,可以点个小小的赞.
以上总结仅供参考.
——END—— 。
最后此篇关于MySQL数据库与Nacos搭建监控服务的文章就讲到这里了,如果你想了解更多关于MySQL数据库与Nacos搭建监控服务的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我已经在 ubuntu 14.0 上成功安装了 Zabbix 3.2 服务器主机上的 Z 是绿色的。不幸的是,JMX 是红色的。 Zabbix 服务器:192.168.1.112 带有 tomcat
我想制作一个仪表板,显示我们的 Azure 服务总线队列的状态,并显示“添加到队列的消息”、“队列长度”和“已处理的消息”等的历史记录。使用 Azure 管理门户,我可以看到,这些统计信息大部分是手动
我的 MYSQL 每天晚上都有事件,但我不太确定发生了什么,因为即使我将其设置得早于其他事件,它仍然在早上运行。 问题是,我如何检查运行事件的历史记录或日志,哪一个晚上锁了,哪一个是跑了没跑? 谢谢
1、监控log文件大小超过10g的server 和db 复制代码代码如下: create procedure db_sendmail_mssqllogsize as&n
本教程讨论如何使用 AspectJ 开源框架监控 Spring 应用程序在方法执行方面的性能。 传统上,监控每个 Java 方法所花费的时间的最简单方法是在方法的开头和结尾包含一些跟踪行: publi
有什么可以帮助 msmq 监控的吗?当消息出现在队列中并且在休假时相同时,我想获得一些事件/监视器。 最佳答案 查看 Windows 管理性能计数器。 如果您查看管理工具并找到“性能计数器”,您将能够
我的 Tomcat 中的一个巨大的 web 应用程序有时会开始使用过多的 DBCP 连接,从而导致问题。 为了进行调查,我想在每个时间点准确地知道什么线程/方法持有池的连接。不需要是实时的,事后分析就
在浏览器的整个页面生命周期中监视 cookie 并在 cookie 更改时触发事件的最佳 JS 或 JQuery 特定方法是什么? 最佳答案 据我所知,不可能将 change (或类似)事件直接绑定(
我想尽可能详细地报告我的笔记本的执行情况。简而言之,我想实时查看我的笔记本正在执行的每个操作。例如,我的一个函数有一个 sleep 周期为 5 秒的循环,我希望看到程序实际上正在 sleep 并且循环
Azure 容器服务是否与 Azure Monitor 集成?想知道对 kubernetes 集群进行日志记录/监控的最佳方法是什么? 最佳答案 如果您正在 Azure 上寻找监视工具,您可能需要使用
我一直在尝试使用 erlang:monitor/2 来监视 gen_server。不幸的是,每次我尝试这个时,Erlang shell 都会进入无限循环。 这是我为测试这一点而编写的测试程序。 -mo
Azure 容器服务是否与 Azure Monitor 集成?想知道对 kubernetes 集群进行日志记录/监控的最佳方法是什么? 最佳答案 如果您正在 Azure 上寻找监视工具,您可能需要使用
我想使用 编写一个 shell 脚本来监控集群中的消费者滞后 bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zkconnect
在 .NET 中,假设 thread A 锁定了一个对象。同时,线程B和线程C被阻塞,等待线程A解锁对象。 现在,线程 A 解锁了对象。接下来将选择哪个线程(B 或 C)?它是如何确定的? 最佳答案
我搜索过这个主题,但发现很少有有用的细节。有了这些细节,我尝试编写一些代码如下。 注意:在将此帖子标记为重复之前,请将此帖子中共享的详细信息与其他帖子进行比较,而不仅仅是按主题。 - (NSArray
目录 1、指标监控 2、常用的监控端点 3、定制EndPoint 4、spring boot admin(可以使用)
我们使用 Prometheus 和 Grafana 来监控我们的 Kafka 集群。 在我们的应用程序中,我们使用 Kafka 流,Kafka 流有可能因异常而停止。我们正在记录事件 setUnCau
我正在建立一个复杂的网络仿真,并试图捕捉一些重要的性能测量。 我在服务器上运行了 mininet,并且我将视频从一个 mininet 主机流式传输到另一个(使用 -nodisp 选项,因为我没有 GU
Jenkins 的 openstack-plugin 使用 openstack4j 与 openstack 云对话。我正在寻找一种方法,我们可以从客户端的角度监控 openstack4j 所做的 ht
我正在处理一项需要监控 Thunderbolt 端口连接变化的要求。 (当连接或断开 Thunderbolt 电缆时)。 我尝试使用 IOServiceMatching(kIOUSBInterface
我是一名优秀的程序员,十分优秀!