当前位置: 首页 > news >正文

重磅更新,HertzBeat 集群版发布,易用友好的开源实时监控系统!

什么是 HertzBeat?

HertzBeat 赫兹跳动 是一个拥有强大自定义监控能力,高性能集群,无需 Agent 的开源实时监控告警系统。

特点

  • 监控+告警+通知 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控阈值告警通知一步到位。
  • 易用友好,无需 Agent,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。
  • Http,Jmx,Ssh,Snmp,Jdbc 等协议规范可配置化,只需在浏览器配置监控模版 YML 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 K8sDocker 等新的监控类型吗?
  • 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。
  • 自由的告警阈值规则,邮件 Discord Slack Telegram 钉钉 微信 飞书 短信 Webhook 等方式消息及时送达。

HertzBeat的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。
当然我们也提供了对应的 SAAS版本监控云服务,中小团队和个人无需再为监控自有资源而去部署一套监控系统,登录即可免费开始。

Github: https://github.com/dromara/hertzbeat

Gitee: https://gitee.com/dromara/hertzbeat

集群版来啦

我们之前的hertzbeat一直是单机版本,组件代码模块化但不支持采集器独立部署,所支持的监控数量上限受到了单节点的天然限制,且无法应对多个隔离网络的资源的统一纳管。
经过一个多月的迭代,我们重写了采集任务调度,采集器独立部署,设计单机版和集群版用同一套代码方便后续的维护升级,单机集群两种模式可相互切换无感知。最终很高兴,集群版如期与大家见面了。

集群版不仅仅给我们带来了更强大的监控性能,更有云边协同等功能让人充满想象。

高性能集群

  • 支持部署采集器集群,多采集器集群横向扩展,指数级提高可监控数量与采集性能。
  • 监控任务在采集器集群中自调度,单采集器挂掉无感知故障迁移采集任务,新加入采集器节点自动调度分担采集压力。
  • 单机模式与集群模式相互切换部署非常方便,无需额外组件部署。

云边协同

支持部署边缘采集器集群,与主 HertzBeat 服务云边协同提升采集能力。

在多个网络不相通的隔离网络中,在以往的方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。
HertzBeat 提供云边协同能力,可以在多个隔离网络部署边缘采集器,添加监控时指定采集器,采集器在隔离网络内部进行监控任务采集,采集数据上报,由主 HertzBeat 服务统一调度管理展示。
这多用于多个隔离数据中心或不同厂商云资源和云下资源的统一监控场景。

为什么要开源集群版?

往往一些做需要商业化的开源产品的策略会是单机版作为玩具给小玩家们的入门使用,然后集群版作为闭源产品给有需求的氪金玩家付费使用。这样的模式是可以说非常不错的且值得肯定的,即保证开源也得到了收益,也适用于很多开源项目的发展策略,可能会在商业路径上走得更通顺点。
网络上有些人会对这样的分单机和集群版的开源项目嗤之以鼻,觉得它们是伪开源,开源是噱头,他们觉得开源应该什么都开源免费出来,开源团队什么都应该无私奉献出来。。。。很无语这类人,有投入才有回报,当你免费使用着开源软件并得到价值的时候,是否应该想一想你付出给开源软件了什么而不是一味的索取。
那回到正题,我们又为什么要开源集群版?仅因为热爱开源?如果说我们还在少年可能这话你信,但一个快奔30还有家庭责任的人说出这话你信吗,我自己都不信😂。
首先我们来看看开源能带来什么,或者为什么要做开源。最开始全职开源的想法很简单,做自己喜欢的开源产品(已实现),程序员的梦想能部署在成千上万的服务器上(看下载量已实现),然后基于此开源产品挣钱(暂未哭)。

  • 用户流量。开源项目免费提供给用户和开发者,吸引用户使用,宣传等方面都有优势。
  • 用户信任。开源的产品天生容易获取用户的信任和使用耐心,或者说降低用户的信任门槛。
  • 社区协作。开源的产品可以吸引到顶级贡献者一起贡献,接收用户的反馈issue,pr贡献等,在社区的驱动下使开源项目越来越好,正向反馈后也会有更多人参与和使用。社区协作我觉得这是开源的意义,而且这样不仅仅只是程序员之间的贡献代码协作,用户都是协作对象(比如我们这个项目有大量的运维朋友贡献代码和文档),如果是仅仅代码开源而不社区协作,那还不如放个安装包给别人免费使用下载就好。
  • 产品生态。这对一些需要生态的产品是需要的,比如hertzbeat,需要支持对接各种类型协议的监控类型,大量的监控模版。一个好的开源项目生态才能吸引到其它贡献者贡献和分享,在生态中互通有无,最终大家在生态中都受益。这在闭源程序中是很难做到的。

上面几点,重在社区协作和产品生态,这也是开源集群版的原因,只有卷开源产品卷自己到更强的产品力,比如集群这一技术特性天生会吸引到开发者(而且集群本身就是我们社区协作的产物),会吸引到更多的用户和贡献者使用反馈大家一起迭代,社区驱动进而正向促进开源项目和满足用户功能体验。
而对于开源商业化,开源商业化的前提是得有个真正好的,受欢迎,被广泛使用的开源产品,然后在此基础上做商业化挣钱。

对了这里再说下开源不等同于免费,如果基于HertzBeat二次开发修改了logo,名称,版权等,请先找我们授权否则会有法律风险,我们有权利追诉破坏开源并因此获利的团队个人的全部违法所得。
免费使用不是白嫖,破坏开源的这种才是,目前发现大量白嫖怪,小心点哈你们。我每年正月初七都会祝你们用这些钱吃的安心,住的放心,玩的开心哈,做个人吧。(仅个人言论不代表社区)

尝试部署集群版

  1. docker 环境仅需一条命令即可开始

docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/hertzbeat

或者使用 quay.io (若 dockerhub 网络链接超时)

docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat quay.io/tancloud/hertzbeat

  1. 浏览器访问 http://localhost:1157 即可开始,默认账号密码 admin/hertzbeat

  2. 部署采集器集群

docker run -d -e IDENTITY=custom-collector-name -e MANAGER_IP=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector tancloud/hertzbeat-collector
  • -e IDENTITY=custom-collector-name : 配置此采集器的唯一性标识符名称,多个采集器名称不能相同,建议自定义英文名称。
  • -e MANAGER_IP=127.0.0.1 : 配置连接主HertaBeat服务的对外IP。
  • -e MANAGER_PORT=1158 : 配置连接主HertzBeat服务的对外端口,默认1158。

更多配置详细步骤参考 通过Docker方式安装HertzBeat


更多的 v1.4.0 版本更新

更多版本新功能更新欢迎探索,感谢社区小伙伴们的辛苦贡献,爱心💗!

  • [doc] add v1.3.2 publish doc by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1075
  • remove elasticsearch unused param index by @Ceilzcx in https://github.com/dromara/hertzbeat/pull/1080
  • feature support monitoring apache airflow by @luoxuanzao in https://github.com/dromara/hertzbeat/pull/1081
  • add luoxuanzao as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1083
  • [collector] bugfix sshd cannot use private key to connect by @gcdd1993 in https://github.com/dromara/hertzbeat/pull/1084
  • bugfix update dashboard alerts cards height not consist by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1087
  • Feature#serverchan by @zqr10159 in https://github.com/dromara/hertzbeat/pull/1092
  • bugfix dm database monitoring connect error by @lisongning in https://github.com/dromara/hertzbeat/pull/1094
  • add lisongning as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1096
  • update alert rule operator display “<=” to “>=” by @Ceilzcx in https://github.com/dromara/hertzbeat/pull/1097
  • [doc] add custom monitoring relate document by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1098
  • add YutingNie as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1103
  • Remove unreachable status by @YutingNie in https://github.com/dromara/hertzbeat/pull/1102
  • 139 auto update alert status by @l646505418 in https://github.com/dromara/hertzbeat/pull/1104
  • feat: aviator fn for str contains, exists & matches by @mikezzb in https://github.com/dromara/hertzbeat/pull/1106
  • add mikezzb as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1107
  • bugfix common alarm do not need monitorId tag existed by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1108
  • bugfix extern alert do not have labels mapping inner monitor by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1111
  • feature: support apache spark metrics monitoring by @a-little-fool in https://github.com/dromara/hertzbeat/pull/1114
  • add a-little-fool as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1116
  • [Feature]Add third report of TenCloud by @zqr10159 in https://github.com/dromara/hertzbeat/pull/1113
  • [Feature]Add third report of TenCloud (#1113) by @zqr10159 in https://github.com/dromara/hertzbeat/pull/1119
  • [manager] fix: can query by tags when tagValue is null by @l646505418 in https://github.com/dromara/hertzbeat/pull/1118
  • bugfix the notification template environment variable display error by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1120
  • add littlezhongzer as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1127
  • feature:monitor brearer token api, ignore letter case to comparison by @littlezhongzer in https://github.com/dromara/hertzbeat/pull/1122
  • docs: enhance README by @mikezzb in https://github.com/dromara/hertzbeat/pull/1128
  • Update app-oracle.yml by @ChenXiangxxxxx in https://github.com/dromara/hertzbeat/pull/1129
  • add ChenXiangxxxxx as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1130
  • fix alarm silence strategy setting failed by @Ceilzcx in https://github.com/dromara/hertzbeat/pull/1131
  • support run sql script file in jdbc protocol config by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1117
  • bugfix return old cache json file when upgrade version by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1137
  • support ssh protocol config choose if reuse connection by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1136
  • feat(web): alert threshold UI support matches & contains by @mikezzb in https://github.com/dromara/hertzbeat/pull/1138
  • support hertzbeat metrics collector cluster by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1101
  • add collector card in dashboard by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1147
  • bugfix: linux collect warning: bad syntax, perhaps a bogus ‘-’ by @Mr-zhou315 in https://github.com/dromara/hertzbeat/pull/1151
  • add Mr-zhou315 as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1157
  • support config timezone locale language region on web ui by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1154
  • bugfix monitoring template app name already exists by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1152
  • bugfix can not startup when error monitoring template yml file by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1153
  • tags also deleted when the monitor is deleted by @Ceilzcx in https://github.com/dromara/hertzbeat/pull/1159
  • monitoring param host with http head will not be error reported by @littlezhongzer in https://github.com/dromara/hertzbeat/pull/1155
  • [script] feature update build.sh and Dockerfile: detect app version a… by @XimfengYao in https://github.com/dromara/hertzbeat/pull/1162
  • add XimfengYao as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1163
  • [doc] add collector clusters document by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1161
  • [hertzbeat] release hertzbeat version v1.4.0 by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1168

⛄ 已支持

我们将监控采集类型(mysql,jvm,k8s)都定义为yml监控模版,用户可以导入这些模版来支持对应类型的监控!
欢迎大家一起贡献你使用过程中自定义的通用监控类型监控模版。

  • Site Monitor, Port Availability, Http Api, Ping Connectivity, Jvm, SiteMap Full Site, Ssl Certificate, SpringBoot, FTP Server
  • Mysql, PostgreSQL, MariaDB, Redis, ElasticSearch, SqlServer, Oracle, MongoDB, Damon, OpenGauss, ClickHouse, IoTDB, Redis Cluster
  • Linux, Ubuntu, CentOS, Windows
  • Tomcat, Nacos, Zookeeper, RabbitMQ, Flink, Kafka, ShenYu, DynamicTp, Jetty, ActiveMQ
  • Kubernetes, Docker
  • Huawei Switch, HPE Switch, TP-LINK Switch, Cisco Switch
  • and more for your custom monitoring.
  • Notifications support Discord Slack Telegram Mail Pinning WeChat FlyBook SMS Webhook.
  • 和更多自定义监控模版。
  • 通知支持 Discord Slack Telegram 邮件 钉钉 微信 飞书 短信 Webhook

欢迎star一波来支持我们哦。

Github: https://github.com/dromara/hertzbeat
Gitee: https://gitee.com/dromara/hertzbeat

相关文章:

重磅更新,HertzBeat 集群版发布,易用友好的开源实时监控系统!

什么是 HertzBeat? HertzBeat 赫兹跳动 是一个拥有强大自定义监控能力&#xff0c;高性能集群&#xff0c;无需 Agent 的开源实时监控告警系统。 特点 集 监控告警通知 为一体&#xff0c;支持对应用服务&#xff0c;数据库&#xff0c;操作系统&#xff0c;中间件&#xf…...

.NET6使用微信小程序授权登录,获取手机号

1.在appsettings配置你的小程序配置信息 //微信小程序信息配置"WechatConfig": {"appid": "", //小程序ID"secret": "" //小程序秘钥},2.请求接口时先获取Access_token #region 获取小程序的Access_tokenpublic object GetA…...

游戏类APP如何提升用户的活跃度?

移动游戏行业&#xff0c;追求使用率的营销能发挥强大的功效&#xff0c;可帮助减少玩家流失、追回流失的玩家、提高活跃玩家所带来的价值以及增加付费玩家贡献的收入。 一、了解玩家需求 想要提升玩家的活跃&#xff0c;首先要知道&#xff0c;玩家喜欢玩哪些平台的游戏&…...

【Sklearn】基于支持向量机算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于支持向量机算法的数据分类预测(Excel可直接替换数据) 1.模型原理1.1 数学模型1.2 模型原理2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果1.模型原理 支持向量机(Support Vector Machine,SVM)是一种用于分类和回归的监督学习算法,其基本…...

抽象类与接口

一&#xff0c;类 定义类 部分与ES6用法基本一致。通过class定义类名&#xff0c;并通过constructor定义构造函数&#xff0c;通过super关键字来调用父类的方法。 class Person {name: string; // 属性constructor(name: string) { // 构造函数this.name name;}eat()…...

第三章,矩阵,09-线性方程组解的判断与求法、矩阵方程

第三章&#xff0c;矩阵&#xff0c;09-线性方程组解的判断与求法、矩阵方程 定理推论1推论2推论3推论4 矩阵方程AXB解法解的存在性推论 玩转线性代数(21)线性方程组解的判断与求法的笔记&#xff0c;相关证明以及例子见原文 定理 对n元线性方程组 A x b Axb Axb&#xff0c;…...

Vue-4.编译器VsCode

准备 Vue-1.零基础学习Vue Vue-2.nodejs的介绍和安装 Vue-3.vue简介 为什么用VsCode VsCode 是Vue官网首推的编译器它是完全免费的 下载安装VsCode 下载地址 安装的时候不停地下一步直到完成即可 安装插件 安装汉化插件 要将 Visual Studio Code&#xff08;VSCode&am…...

Neo4j之Aggregation基础

在 Neo4j 中&#xff0c;聚合&#xff08;Aggregation&#xff09;是对数据进行计算、汇总和统计的过程。以下是一些使用聚合函数的常见例子&#xff0c;以及它们的解释&#xff1a; 计算节点数量&#xff1a; MATCH (p:Person) RETURN count(p) AS totalPersons;这个查询会计…...

Python 函数

Built-in Functions — Python 3.11.4 documentation...

Spring(三):Spring中Bean的生命周期和作用域

前言 在 Spring 中&#xff0c;那些组成应用程序的主体及由 Spring IOC 容器所管理的对象&#xff0c;被称之为 bean。简单地讲&#xff0c;bean 就是由 IOC 容器初始化、装配及管理的对象&#xff0c;除此之外&#xff0c;bean 就与应用程序中的其他对象没有什么区别了。而 b…...

【AutoLayout案例03-设置底部按钮之间相同间距 Objective-C语言】

一、好,咱们继续啊 1.咱们继续把autoLayout介绍一下 咱们的自动布局 给大家介绍一下 那么,自动布局呢 继续咱们给大家做的案例 做几个例子 把这几个例子做完以后 我们再给它 我们再给大家说一下,如何通过代码,来实现自动布局 虽然说,通过代码来实现自动布局,并不推荐 但…...

代码随想录算法训练营20期|第七天|哈希表part02|454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和 ● 总结

454.四数相加II 比较巧思的解法&#xff0c;先把nums1 和nums2的数两两相加&#xff0c;并存储sum和次数 再在nums3和nums4里找对应和sum和为0的数值i,j Time: N^2 Space:N^2, 最坏情况下A和B的值各不相同&#xff0c;相加产生的数字个数为 n^2 class Solution {public int fo…...

NavMeshPlus 2D寻路插件

插件地址:h8man/NavMeshPlus&#xff1a; Unity NavMesh 2D Pathfinding (github.com) 我对Unity官方是深恶痛觉,一个2D寻路至今都没想解决,这破引擎早点倒闭算了. 这插件是githun的开源项目,我本身是有写jps寻路的,但是无法解决多个单位互相阻挡的问题(可以解决但是有性能问…...

【03】基础知识:typescript中的函数

一、typescript 中定义函数的方法 函数声明法 function test1(): string {return 返回类型为string }function test2(): void {console.log(没有返回值的方法) }函数表达式/匿名函数 const test3 function(): number {return 1 }二、typescript 中 函数参数写法 1、typesc…...

ssm社区文化宣传网站源码和论文

ssm社区文化宣传网站源码和论文019 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 研究或设计的目的和意义&#xff1a; (一)研究目的&#xff1a; 通过本次课题能够将所学的Java编程知识以及Mysql数据库知…...

Go语言工程实践之测试与Gin项目实践

Go 语言并发编程 及 进阶与依赖管理_软工菜鸡的博客-CSDN博客 03 测试 回归测试一般是QA(质量保证)同学手动通过终端回归一些固定的主流程场景 集成测试是对系统功能维度做测试验证,通过服务暴露的某个接口,进行自动化测试 而单元测试开发阶段&#xff0c;开发者对单独的函数…...

排查docker无法启动问题

查看Linux系统操作日志(最后200行就可以排查)&#xff1a; tail -200f /var/log/messages...

[C++ 网络协议] 套接字和地址族、数据序列

目录 1. 套接字 1.1 在Linux平台下构建套接字 1.1.1 用于接听的套接字(服务器端套接字) 1.1.2 用于发送请求的套接字(客户端套接字) 1.2 在Windows平台下构建套接字 1.2.1 Winsock的初始化 1.2.2 用于接听的套接字(服务器端套接字) 1.2.3 用于发送请求的套接字(客户端套…...

AI 绘画Stable Diffusion 研究(八)sd采样方法详解

大家好&#xff0c;我是风雨无阻。 本文适合人群&#xff1a; 希望了解stable Diffusion WebUI中提供的Sampler究竟有什么不同&#xff0c;想知道如何选用合适采样器以进一步提高出图质量的朋友。 想要进一步了解AI绘图基本原理的朋友。 对stable diffusion AI绘图感兴趣的朋…...

线程池满了如何处理

某天搬砖时遇到一个问题&#xff0c;我创建了一个线程池执行任务&#xff0c;刚开始的时候还是一切&#xff0c;结果第二天发现有些任务没有正常执行。一看日志才发现是高峰期时线程池给我占用慢了&#xff0c;任务被丢掉了。 ​ 举个例子&#xff0c;我创建了一个线程池&#…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...