首页 文章 精选 留言 我的

精选列表

搜索[系统工具],共10000篇文章
优秀的个人博客,低调大师

应用YoMo开发一个噪声传感器采集监控系统

前言 这个例子描述 YoMo 在工业互联网数据采集中的应用,以收集噪声传感器的数据为例,涉及数据收集/处理/工作流/数据展示的全过程,为了便于体验运行效果,还会对其进行容器化,并通过docker快速部署体验版。 述语 xxx-source: 表示一个数据源收集程序 xxx-zipper: 表示一个工作流和控制平面 xxx-flow: 表示一个工作流单元,用于实际的业务逻辑处理,被zipper调度。 xxx-sink: 表示一个数据的传送目的地,一般落地数据库或者传递给下一级代理,被zipper调度。 架构 从图中可见,区分了边缘端和云端两个独立区域,区域之间是通过弱网或者互联网连接,这里简单介绍一下各个服务: 边缘端部署了传感器设备(Noise)和数据收集网关(ZLAN),网关会定时向设备请求状态数据,并转换为MQTT协议数据发送给noise-source收集器,source起到转换编码并与YoMo工作流引擎zipper建立连接的作用。关于传感器设备和数据收集网关的硬件选购和配置可以参与这篇文章:https://yomo.run/zh/aiot。 对于不想购买硬件设备的开发者,这里也提供了一个noise-emitter模拟器用来产生噪声数据。 zipper是一个强大的工作流引擎,通过编排(workflow.yaml)可以调度多个flow和sink,让他们以流的方式把业务逻辑串联起来,以满足复杂的需求。与之相连的所有通信和编解码均以QUIC+Y3进行,提供可靠实时的流式处理,全程体验流式编程的乐趣。 noise-flow 实现把噪音值除以10的简单处理,并且监控如果超过一定阀值后输出日志进行警报。 noise-sink 没有真的输出到数据库,而是通过搭建一个WebSocket服务器,把实时的噪音状态输出给任意的网页进行展示消费。 noise-web 是一个消费WebSocket的网页服务,他部署在哪里都可以,只要能访问到noise-sink提供的WebSocket服务地址即可,这里我们假设部署回边缘端也是没有问题的。 代码 下表提供了案例的全部代码,供感兴趣的朋友查看,参照这个案体的代码,可以轻松开发出类拟场景的案例。 项目 地址 说明 noise-source yomo-source-noise-example 收集MQTT消息格式的噪音数据 noise-zipper yomo-zipper-noise-example 编排本案体的工作流和数据流向 noise-flow yomo-flow-noise-example 对噪音数据进行预处理和警报 noise-sink yomo-sink-socketio-server-example 提供WebSocket服务用于数据展示 noise-web yomo-sink-socket-io-example 消费WebSocket服务展示噪音状态 noise-emitter yomo-source-noise-emitter-example 模拟产生噪声数据 quic-mqtt yomo-source-mqtt-starter 开发xxx-source的通用组件 容器化部署 通过下载上节的项目代码可以进行本地原生部署,体验YoMo开发的乐趣,但是对于想急于马上看到效果的朋友来说,更爽的方式当然是先快速运行起来看看效果,所以对上节的项目也做了容器化处理,每个项目的根目录均提供了Dockerfile文件,并且在hub.docker.com提供了官方镜像下载: 项目 镜像地址 最新版本 noise-source yomorun/noise-source yomorun/noise-source:latest noise-zipper yomorun/noise-zipper yomorun/noise-zipper:latest noise-flow yomorun/noise-flow yomorun/noise-flow:latest noise-sink yomorun/noise-sink yomorun/noise-sink:latest noise-web yomorun/noise-web yomorun/noise-web:latest noise-emitter yomorun/noise-emitter yomorun/noise-emitter:latest quic-mqtt yomorun/quic-mqtt yomorun/quic-mqtt:latest yomorun/quic-mqtt:latest 是开发xxx-source的基础镜像,可以快速打包自定义代码,但本案例中可以暂时忽略。 快速部署 为了快速运行体验运行效果,本小节描述如何整体容器化在同一宿主机上运行。 快速运行 有了上述的官方镜像就简单多了,只需简单的步骤就可以体验效果了: 下载 docker-compose.yml 文件。 运行 docker-compose up -d 先喝杯茶稍作等待,通过访问 http://localhost:3000/ 可看到如下效果图: 注意事项: 这里Delay的值可能不很准确,因为是通过Docker容器部署,各个容器的时钟并不对齐得那么完美,如果要查看到最精确的延时值,需要把noise-source和noise-web原生部署到同一个宿主机上。 如果部署不是在本地,则需要修改docker-compose.yml文件中的环境变量SOCKET_SERVER_ADDR为你部署服务的宿主机地址。 查看状态 通过 docker-compose ps查看服务状态 Name Command State Ports ----------------------------------------------------------------------------------------- noise-emitter sh -c go run main.go Up noise-flow sh -c yomo run app.go -p 4242 Up 4242/udp noise-sink sh -c go run main.go Up 4141/udp, 0.0.0.0:8000->8000/tcp noise-source sh -c go run main.go Up 1883/tcp noise-web ./docker-entrypoint.sh yar ... Up 0.0.0.0:3000->3000/tcp noise-zipper sh -c yomo wf run workflow ... Up 9999/udp noise-sink 暴露了8000的WebSocket端口提给noise-web展示消费。 noise-web 暴露了3000的http端口用于展示实时的噪声值和延时。 noise-zipper/noise-flow/noise-sink 均提供了udp端口的QUIC服务,全流程QUIC通信。 noise-source 是我们对接不同设备的关键,提供1883的MQTT端口,当然也可以修改的。 查看日志 查看noise-emitter docker-compose logs -f noise-emitter noise-emitter | 2021-04-26 10:11:03: Publish counter=12438, topic=NOISE, payload={"noise":12438} noise-emitter | 2021-04-26 10:11:04: Publish counter=12439, topic=NOISE, payload={"noise":12439} noise-emitter | 2021-04-26 10:11:05: Publish counter=12440, topic=NOISE, payload={"noise":12440} noise-emitter | 2021-04-26 10:11:06: Publish counter=12441, topic=NOISE, payload={"noise":12441} 这个模拟发生器产生了MQTT数据:主题是NOISE, 值是不断递增的序号(JSON格式)。 查看noise-source docker-compose logs -f noise-source noise-source | 2021/04/26 15:27:32 receive: topic=NOISE, payload={"noise":2638} noise-source | 2021/04/26 15:27:32 write: sendingBuf=[]byte{0x81, 0x1b, 0x90, 0x19, 0x11, 0x3, 0x45, 0x24, 0xe0, 0x12, 0x6, 0xaf, 0x90, 0xe8, 0xce, 0x83, 0x1c, 0x13, 0xa, 0x31, 0x37, 0x32, 0x2e, 0x31, 0x39, 0x2e, 0x30, 0x2e, 0x36} noise-source | 2021/04/26 15:27:33 receive: topic=NOISE, payload={"noise":2639} noise-source | 2021/04/26 15:27:33 write: sendingBuf=[]byte{0x81, 0x1b, 0x90, 0x19, 0x11, 0x3, 0x45, 0x24, 0xf0, 0x12, 0x6, 0xaf, 0x90, 0xe8, 0xce, 0x8b, 0x5, 0x13, 0xa, 0x31, 0x37, 0x32, 0x2e, 0x31, 0x39, 0x2e, 0x30, 0x2e, 0x36} receive: 表示source收到的MQTT数据。 write: 表示把经过Y3转码的字节码向noise-zipper工作流引擎发送。 查看noise-zipper docker-compose logs -f noise-zipper noise-zipper | 2021/04/26 14:39:28 Found 1 flows in zipper config noise-zipper | 2021/04/26 14:39:28 Flow 1: Noise Serverless on noise-flow:4242 noise-zipper | 2021/04/26 14:39:28 Found 1 sinks in zipper config noise-zipper | 2021/04/26 14:39:28 Sink 1: Socket.io Server on noise-sink:4141 noise-zipper | 2021/04/26 14:39:28 Running YoMo workflow... noise-zipper | 2021/04/26 14:39:28 ✅ Listening on 0.0.0.0:9999 noise-zipper | 2021/04/26 14:43:32 ✅ Connect to Noise Serverless (noise-flow:4242) successfully. noise-zipper | 2021/04/26 14:44:33 ✅ Connect to Socket.io Server (noise-sink:4141) successfully. 工作流引擎连接上了noise-flow和noise-sink这两个工作流的处理单元了。 查看noise-flow docker-compose logs -f noise-flow noise-flow | ❗ value: 561.700012 reaches the threshold 16! 45.700012 noise-flow | [172.19.0.6] 1619425035923 > value: 561.799988 ⚡️=0ms noise-flow | ❗ value: 561.799988 reaches the threshold 16! 45.799988 noise-flow | [172.19.0.6] 1619425036923 > value: 561.900024 ⚡️=1ms 噪声数据是模拟器产生的,远远超过了预设的阀值,打印出警告信息。 分区部署 经过上一小节的快速部署应该了解如何在同一台宿主机上进行容器化部署并查看各个服务的状态,但与我们的开始提出的云端与边缘分离的实际架构图不符,现实场景下flow/sink这类Serverless的服务会部署在云端,而数据接收器source会部署在边缘,那本节就来分离他们看看如果编排部署。 云端部署 部署服务 目标是把 noise-zipper / noise-flow / noise-sink 部署在云端,可以查看下面的配置文件和运行步骤: 下载 docker-compose-cloud.yml 文件。 运行 docker-compose -f docker-compose-cloud.yml up -d 查看状态 通过 docker-compose -f docker-compose-cloud.yml ps查看服务状态 Name Command State Ports ---------------------------------------------------------------------------------------- noise-flow sh -c yomo run app.go -p 4242 Up 4242/udp noise-sink sh -c go run main.go Up 4141/udp, 0.0.0.0:8000->8000/tcp noise-zipper sh -c yomo wf run workflow ... Up 0.0.0.0:9999->9999/udp noise-zipper 暴露了云端工作流引擎的服务端口,因为通信是QUIC协议,所以可见是一个udp端口。 noise-sink 暴露了通过WebSocket数据消费的端口,让其它Web服务展示消费。 边端部署 部署服务 目标是把 noise-source / noise-web / noise-emitter 部署在边缘端,可以查看下面的配置文件和运行步骤: 下载 docker-compose-edge.yml 文件。 运行 docker-compose -f docker-compose-edge.yml up -d 注意事项: Docker-compose-edge.yml中的SOCKET_SERVER_ADDR变量需要设置为cloud端的source-sink暴露的地址和端口(默认8000)。 查看状态 通过 docker-compose -f docker-compose-edge.yml ps查看服务状态 Name Command State Ports ------------------------------------------------------------------------------- noise-emitter sh -c go run main.go Up noise-source sh -c go run main.go Up 1883/tcp noise-web docker-entrypoint.sh sh -c ... Up 0.0.0.0:3000->3000/tcp noise-web 暴露了效果展示网站的端口。通(过访问 http://localhost:3000/ 可)以查看到之前相同的展示界面。 路由器部署 到了这里就结束了?还没有!实际上边缘部署的情况要比云端复杂,因为边缘设备很多是老旧,不一定支持Docker容器,这时你可以选择通过源代码编译成不同平台的二进制运行文件,直接就把noise-source跑在对应的平台上。当然,更方便的选择是购买一台支持Docker容器的路由器,直接就可以通过容器部署在边缘端了,目前YoMo与iKuai达成深度合作,携手推进工业互联网在各个领域的应用与发展,可以通过下面链接查看详细的信息: iKuai+YoMo加速工业互联网的云原生时代 iKuai+YoMo 边缘计算赋能工业互联网 引用参考 上面就是这个噪声传感器案例从数据收集处理到展示的所有代码和部署过程了。对于需要扩展或者引申到别的应用场景的开发者,可以点开每个项目的链接进行详细阅读,每个项目都是微服务化构建,服务角色明确,代码清晰易懂,如果有什么问题欢迎提出Issues或者讨论。参考链接: https://yomo.run/ https://github.com/yomorun/yomo https://github.com/yomorun/example-noise 最后,补充一张带有各个服务可暴露端口号的架构图,以便碰到困难的朋友查阅。

优秀的个人博客,低调大师

新一代大数据任务调度系统-Apache DolphinScheduler 1.3.6 发布

在1.3.6版本中,我们发布了一个重大Future,另外对于K8s以及Docker做了较大的改进,具体如下 1:支持接入SkyWalking 我们同Apache SkyWalking社区一起协作完成了DolphinScheduler的链路监控设计以及开发: 主要如下: -通信协议改造为支持链路跟踪header传递 -任务调度执行核心链路的跟踪 -jvm 指标自动采集,观测vm 状态 -日志输出到skywalking ,可在skywalking web在线查看日志,并与链路跟踪关联起来 感兴趣的同学可以根据[文档](https://dolphinscheduler.apache.org/en-us/docs/latest/user_doc/skywalking-agent-deployment.html)接入SkyWalking来实现DolphinScheduler的链路监控。 2:Docker & K8S Docker 改进: - 修复 WORKER_GROUP 不生效问题,更改为 WORKER_GROUPS ([#4843](https://github.com/apache/dolphinscheduler/issues/4843)) - 修复 Windows 的 dolphinscheduler_env.sh 挂载出错问题 ([#4804](https://github.com/apache/dolphinscheduler/issues/4804)) ([#4886](https://github.com/apache/dolphinscheduler/issues/4886)) - 容器内进程优化为 supervisor 管理 ([#2687](https://github.com/apache/dolphinscheduler/issues/2687)) - 优化 supervisor 进程日志输出 ([#4897](https://github.com/apache/dolphinscheduler/issues/4897)) - 适配 docker compose file 3.1+ 版本 - 同步最新 1.3.6 版本所有配置项,包括 common、master、worker - 新增 config.env.sh 环境变量配置文件,用于配置 docker compose 和 swarm - 新增 MASTER_SERVER_OPTS, WORKER_SERVER_OPTS, ALERT_SERVER_OPTS, API_SERVER_OPTS, LOGGER_SERVER_OPTS 环境变量 - 支持 SkyWalking 配置和集成 - 更新基础镜像为 debian:slim,提升镜像扩展性,如安装 Python 库、Python 3 等 ([#5155](https://github.com/apache/dolphinscheduler/issues/5155)) - 镜像移除冗余的 postgresql-client - 支持 Hadoop、Spark、Flink、DataX 等任务扩展 ([#5100](https://github.com/apache/dolphinscheduler/issues/5100)) - 添加支持矩阵 ([#5068](https://github.com/apache/dolphinscheduler/issues/5068)) - 添加 [Docker FAQ](https://dolphinscheduler.apache.org/zh-cn/docs/1.3.6/user_doc/docker-deployment.html):如 MySQL、Hadoop、Spark、Oracle 数据源集成等常见问题 ([#4732](https://github.com/apache/dolphinscheduler/issues/4732) [#4871](https://github.com/apache/dolphinscheduler/issues/4871)) - 镜像增加 WORKDIR,移除冗余的 container_name 和 dolphinscheduler-postgresql-initdb Kubernetes 改进: - 修复 WORKER_GROUP 不生效问题,更改为 WORKER_GROUPS ([#4843](https://github.com/apache/dolphinscheduler/issues/4843)) - 修复 Minikube 上不正确 host 注册问题 ([#4905](https://github.com/apache/dolphinscheduler/issues/4905)) - 修复所有 Kubernetes 1.12+ 的 Ingress 兼容性问题 - values.yaml - 合并 image 的 registry 和 repository 为 repository 字段,支持本地镜像 - 修改 imagePullSecrets 为 image 的 pullSecret 字段 - 新增 externalDatabase 的 type、driver、params 字段,可以支持非 PostgreSQL 的外部数据库 - 新增 common 字段,用于配置 common.properties、dolphinscheduler_env.sh 等公共环境变量配置 - 新增 common.sharedStoragePersistence 字段,用户 api、master、worker 共享存储,如 Hadoop、Spark 二进制包 - 修改 resource.persistentVolumeClaim 为 common.fsFileResourcePersistence 字段 - 移除 resource 字段 - master、worker、api、alert 新增字段:annotations、resources,后者用于配置 cpu、memory 资源 - 新增 api.service 字段,支持 ExternalName、ClusterIP、ClusterIP、LoadBalancer 等多种暴露方式 - 优化 ingress.path 为 /dolphinscheduler - 移除冗余的 ingress.hosts - 同步最新 1.3.6 版本所有配置项,包括 common、master、worker - 新增 MASTER_SERVER_OPTS, WORKER_SERVER_OPTS, ALERT_SERVER_OPTS, API_SERVER_OPTS, LOGGER_SERVER_OPTS 环境变量 - 支持 SkyWalking 配置和集成 - 支持 Hadoop、Spark、Flink、DataX 等任务扩展 ([#5100](https://github.com/apache/dolphinscheduler/issues/5100)) - 添加支持矩阵 ([#5068](https://github.com/apache/dolphinscheduler/issues/5068)) - 添加 [Kubernetes FAQ](https://dolphinscheduler.apache.org/zh-cn/docs/1.3.6/user_doc/kubernetes-deployment.html):如 MySQL、Hadoop、Spark、Oracle 数据源集成等常见问题 ([#2584](https://github.com/apache/dolphinscheduler/issues/2584)) - 优化 master 和 worker 的长 FQDN 地址为短 FQDN 地址,以及地址在 UI 中的显示 - 修复定时任务无法生效的问题 ([#5351](https://github.com/apache/dolphinscheduler/issues/5351)) - 修复 DATA_BASEDIR_PATH, RESOURCE_STORAGE_TYPE 或 RESOURCE_UPLOAD_PATH 未设置导致无法部署的问题 - 修复容器中始终 Runtime.getRuntime().availableProcessors()=1 导致默认 max.cpuload.avg=2,从而任务无法调度执行的问题 - 优化 Helm 的 templates 文件,删除重复的模板和配置 3:Worker Group - 支持在 Web UI 创建、编辑、删除等操作 1.3.6 Release Notes 功能/更新 [#5062] [功能] [WorkerGroup]在Web UI中创建/编辑/删除WorkerGroup [#5175] [改进] [Server]优化和减少数据库和Zookeeper的WorkerGroup查询 [#4837] [改进] [Docker / K8s] Docker和K8s改进 [#5023] [改进] [Docker / K8s]改进docker和k8s#2584#2687#4732#4837#4871#4886#4897 [#5158] [改进] [Docker / K8s]支持更多的配置,SkyWalking的配置,提升镜像扩展性,如安装 Python 库、Python 3 等,更新常见问题并添加支持矩阵#4837#5155#5068#5141#402#403 [#5068] [改进] [Docker / K8s] Docker / k8s上的任务支持矩阵和解决方案 [#5195] [改进] [Docker / K8s]改善反馈#5309#5310 [#5100] [功能] [K8s ]支持在Spark,Flink和DataX等K8上的任务可伸缩性 [#5224] [改进] [Docker]为dockerfile添加工作目录并删除冗余的container_name和dolphinscheduler-postgresql-initdb [#4852] [功能]支持SkyWalking代理插件 [# 5310] [改进] [Server]负载日志修改,具体信息更加清晰明了[#5028] [功能] [MR]支持MapReduce名称 [#4960] [功能] [Spark]支持Spark名称 [#4285] [功能]添加Flink作业名称 [#4976] [功能] [Flink]支持名称和并行输入 [#4805] [改进] [SQL]将升级后的架构放置到正确的版本目录中,并检查架构错误 [#4751] [改进] [API]改进Duration字段,将显示修改为基于时间的分秒格式(例如, 1d 10h 20m 1s) [#174] [改进] [SqlTask​​]在SqlTask​​中添加一个开关来发送邮件和打印头日志 [#5187] [Build]优化发行版名称并删除未使用的Nginx发行版 [#5087] [功能] [SqlTask​​]添加一个开关,以发送邮件并在SqlTask [#4624][改进] [Server]当server位于失效服务器列表中时of zk,需要自行停止服务 [#4969] [改进] [UI]在文件详细信息页面中支持更多文件类型 [#2619] [改进] [API] / dolphinscheduler / projects / create创建成功后返回项目ID 错误修复 [#5309] [Bug] memoryUsage为-33% [#4843] [Bug] [Docker] 1.3.5版本文件配置错误WORKER_GROUP [#4651] [Bug] [Docker] Docker中出现随机PSQLException [#5351[Bug] [K8s]Quartzcron任务无法生效 [#4905] [Bug] [K8s] minikube中的主机问题不正确 [#5176] [Bug] [Server]错误的excludeFilters导致工作服务器启动主服务器bean和诸如LowerWeightHostManager和RefreshResourceTask [#5132] [Bug] [server]之类的线程在taskExecuteThread中发生异常时,任务无法立即停止 [#5150] [Bug] [server] DB事务失败 [#5103] [Bug] [Resource] File和UDF的文件名资源未更改,并且在重命名名称后无法重新上传 [#5349] [Bug] [master]手动杀死无法重试的任务。并行任务成功执行后,工作流程状态将始终运行 [#5328] [Bug] [MasterServer]包含依赖任务时,任务失败后可能导致流程处于始终运行状态 [#5199] [Bug] [api]当外壳中包含睡眠时任务,无法终止任务 [#5063] [SQL]修复MySQL数据源jdbc connect参数 [#5048] [Bug] [Api]删除已停止的工作流程而不删除相应的子流程,该工作流程实例名称未显示在子流程中 [#5044] [Bug] [Master]过滤空Host导致未执行Master启动容错 [#5037] [Bug] [Server]重新启动和停止后,Master和Worker都处于挂起状态 [#4866] [Bug] [Common]未加载hdfs-site.xml导致客户端无法访问数据节点 [#4862] [ [Bug] [Server]Kill任务异常处理 [#4840] [Bug] 多个Master同时启动,会导致全局容错逻辑错误 [#4816] [Bug] [API]当时间参数错误时,API调用工作流实例查询接口并查询所有数据 [#4738] [Bug] 发送邮件失败的情况下任务执行应该成功 [#4760] [Bug] 初始化dolphinscheduler-postgre.sql错误 [#4705] [Bug] [API] zk KeeperException $ NoNodeException [#4674] [Bug] [UI]使用用户名和密码登录时的提示错误 [#4650] [Bug] [Api] PostgreSQL中的流程定义创建,更新和复制错误 [#4716] [Bug] [Master,Worker]任务执行路径应由Worker计算而非Master计算 [#4617] [Bug] [LoggerServer]任务日志无法及时刷新 1.3.6下载地址:https://dolphinscheduler.apache.org/en-us/download/download.html Apache DolphinScheduler社区介绍 新一代大数据任务调度- Apache DolphinScheduler继11月19日由InfoQ举办、在300+参评项目中脱颖而出获得“2020年度十大开源新锐项目”和“2020年度最具人气新锐项目”以来,近期社区又荣获OSCHINA年度“最佳技术团队”称号,非常欢迎更多小伙伴加入到贡献队伍中来,为中国的开源崛起贡献自己的一份力量。 DolphinScheduler介绍 Apache DolphinScheduler(incubator)于 17 年在易观数科立项, 19 年 3 月开源,8 月进入 Apache 孵化器,21年3月毕业成为Apache顶级项目。据不完全统计,已有400+公司在生产上使用。DolphinScheduler 致力于“解决大数据任务之间错综复杂的依赖关系,使整个数据处理流程直观可见”。DolphinScheduler以 DAG(有向无环图) 的方式将 Task 组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及Kill任务等操作。DolphinScheduler专注于以下 6 个主要能力 Apache组织崇尚“社区大于代码”,DolphinScheduler目前微信用户群近4000人,社区目前有 200+贡献者,来自80+家公司、机构和高校(部分统计) 文档贡献者: 代码贡献者: 部分用户案例 据不完全统计,目前已经有400+家公司及机构采用DolphinScheduler在生产环境使用,以下是部分案例(排名不分先后) 此外,还有1700+用户注册了demo试用,欢迎大家先体验,十分欢迎对比哈。 参与贡献 随着国内开源的崛起,DolphinScheduler迎来了蓬勃发展,为了做更好用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,青春在开源上留下一点印记 参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括: 参与DolphinScheduler社区有非常多的参与贡献的方式,包括: 贡献第一个PR(文档、代码)我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度 社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/4124 如何参与贡献链接:https://dolphinscheduler.apache.org/en-us/community/development/contribute.html 文档github地址:https://github.com/apache/dolphinscheduler-website 来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的 如果您想参与贡献,却发现上述方法都搞不明白,也没关系,我们有个开发者种子孵化群,可以添加微信(dailidong66)手把手教会您,添加时请说明想参与贡献哈 DolphinScheduler开源社区非常期待您的参与。 喜欢❤️ DolphinScheduler的话,别忘了Star收藏一下哟~

优秀的个人博客,低调大师

Go 语言社区系统 bbs-go 3.2.4 发布,增强运营管理功能

更新内容 Feature:后台支持配置登录方式,根据需要选择登录方式 Feature:调整sitemap生成策略 Feature:增强前台页面的管理能力,在前台页面增加多出话题、用户管理入口 Feature:支持永久禁言的同时清理被禁言用户的话题和文章 Feature:使用dart-sass替换node-sass,再也不用忍受node-sass安装时的痛苦了 Bugfix:修复动态发表时上传多张图片被覆盖的问题 发布地址 github:https://github.com/mlogclub/bbs-go/releases/tag/v3.2.3 gitee:https://gitee.com/mlogclub/bbs-go/releases/v3.2.3 功能简介 功能预览 相关链接 github:https://github.com/mlogclub/bbs-go gitee:https://gitee.com/mlogclub/bbs-go 演示站:https://mlog.club 帮助文档:http://docs.bbs-go.com/ 问题反馈:https://mlog.club/topic/create 功能建议收集:https://mlog.club/topic/609

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册