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

使用prometheus-operator部署prometheus服务,并对外提供访问

先决条件: 已经部署好k8s

#这里我使用的版本是1.28.12
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$kubectl version
Client Version: v1.28.12
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.12
安装git服务
#安装git服务,用于后面拉取prometheus代码
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$yum install git -y
下载kube-prometheus 源代码

#说明一下这里默认拉取的是最新版本的代码版本.可以根据自己的k8s版本来获取对应的kube-prometheus代码版本

#拉取代码
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$git clone https://github.com/prometheus-operator/kube-prometheus.git

 下面是部分兼容性示例图,

代码拉取完成后会有一个kube-prometheus目录以下是相关的源码内容.

[root@prometheus-operator /zpf/prometheus]$cd kube-prometheus/
[root@prometheus-operator /zpf/prometheus/kube-prometheus]$ls
build.sh            CONTRIBUTING.md      example.jsonnet  go.mod   jsonnetfile.json           kustomization.yaml  manifests   scripts
CHANGELOG.md        developer-workspace  examples         go.sum   jsonnetfile.lock.json      LICENSE             README.md   tests
code-of-conduct.md  docs                 experimental     jsonnet  kubescape-exceptions.json  Makefile            RELEASE.md
[root@prometheus-operator /zpf/prometheus/kube-prometheus]$cd manifests/
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$ls
.
.
.grafana-config.yaml                                  nodeExporter-prometheusRule.yaml                                 prometheus-podDisruptionBudget.yaml
grafana-dashboardDatasources.yaml                    nodeExporter-serviceAccount.yaml                                 prometheus-prometheusRule.yaml
grafana-dashboardDefinitions.yaml                    nodeExporter-serviceMonitor.yaml                                 prometheus-prometheus.yaml
.
.
.
setup#这里的setup是一个目录
首先创建预置资源,注册相关的资源项目
#当前目录位置
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$pwd
/zpf/prometheus/kube-prometheus/manifests
#创建注册相关资源
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$kubectl create -f ./setup/
customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheusagents.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/scrapeconfigs.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com created
namespace/monitoring created
prometheus,grafana网络权限配置修改,

如果要使prometheus,grafana这些web服务可以使用浏览器访问的话,需要做一些配置修改

查查看有哪些网络配置文件,
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$ls|grep networkPolicy
alertmanager-networkPolicy.yaml
blackboxExporter-networkPolicy.yaml
grafana-networkPolicy.yaml
kubeStateMetrics-networkPolicy.yaml
nodeExporter-networkPolicy.yaml
prometheusAdapter-networkPolicy.yaml
prometheus-networkPolicy.yaml
prometheusOperator-networkPolicy.yaml

修改配置文件

#修改grafana-networkPolicy.yaml 
#修改grafana-networkPolicy.yaml 
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$cat  grafana-networkPolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:labels:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 11.6.0name: grafananamespace: monitoring
spec:egress: #这里默认就是所有出流量都放行- {}ingress:- from: []   #这里将原本的放行流量注释掉,修改成进入流量全部放行,
#    - podSelector:
#        matchLabels:
#          app.kubernetes.io/name: prometheusports:- port: 3000protocol: TCPpodSelector:matchLabels:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheuspolicyTypes:- Egress- Ingress#ingress​​:控制​​谁可以访问 Prometheus​​(入站流量)。
​​#egress​​:控制 ​​Prometheus 可以访问谁​​(出站流量)。
# Egress 配置:控制 Prometheus 可以访问的目标
# Ingress 配置:控制谁可以访问 Prometheus
# 修改prometheus-networkPolicy.yaml
# 修改prometheus-networkPolicy.yaml
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$cat prometheus-networkPolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:labels:app.kubernetes.io/component: prometheusapp.kubernetes.io/instance: k8sapp.kubernetes.io/name: prometheusapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 3.2.1name: prometheus-k8snamespace: monitoring
spec:egress:- {}ingress:- from: []
#    - podSelector:
#        matchLabels:
#          app.kubernetes.io/name: prometheusports:- port: 9090protocol: TCP- port: 8080protocol: TCP- from: []
#    - podSelector:
#        matchLabels:
#          app.kubernetes.io/name: prometheus-adapterports:- port: 9090protocol: TCP- from:- podSelector:matchLabels:app.kubernetes.io/name: grafanaports:- port: 9090protocol: TCPpodSelector:matchLabels:app.kubernetes.io/component: prometheusapp.kubernetes.io/instance: k8sapp.kubernetes.io/name: prometheusapp.kubernetes.io/part-of: kube-prometheuspolicyTypes:- Egress- Ingress

修改service信息,用于浏览器访问暴漏端口

 修改prometheus-service.yaml
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$cat prometheus-service.yaml
apiVersion: v1
kind: Service
metadata:labels:app.kubernetes.io/component: prometheusapp.kubernetes.io/instance: k8sapp.kubernetes.io/name: prometheusapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 3.2.1name: prometheus-k8snamespace: monitoring
spec:type: NodePort   #添加端口暴漏形式,这里是NodePortports:- name: webport: 9090targetPort: webnodePort: 30090  #添加端口号,这里注意不要跟已有端口冲突- name: reloader-webport: 8080targetPort: reloader-webnodePort: 30080  #同上添加端口号selector:app.kubernetes.io/component: prometheusapp.kubernetes.io/instance: k8sapp.kubernetes.io/name: prometheusapp.kubernetes.io/part-of: kube-prometheussessionAffinity: ClientIP
修改grafana-service.yaml
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$cat grafana-service.yaml
apiVersion: v1
kind: Service
metadata:labels:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 11.6.0name: grafananamespace: monitoring
spec:type: NodePort  #暴漏类型ports:- name: httpport: 3000targetPort: httpnodePort: 30030  #暴漏端口号selector:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheus

另外:说明一下有些镜像可能下载不下来,需要单独下载,并在相关deploy文件中做修改

#以下是需要的镜像名称,自己单独拉取下来放到自己的容器镜像仓库中
ghcr.io/jimmidyson/configmap-reload                           v0.15.0   74ddcf8dfe2a   7 days ago     11.5MB
grafana/grafana                                               11.6.0    5c42a1c2e40b   3 weeks ago    663MB
quay.io/prometheus/prometheus                                 v3.2.1    503e04849f1c   7 weeks ago    295MB
quay.io/brancz/kube-rbac-proxy                                v0.19.0   da047c323be4   8 weeks ago    73.9MB
registry.cn-beijing.aliyuncs.com/scorpio/kube-state-metrics   v2.15.0   8650a5270cac   2 months ago   51.4MB#将相关deploy文件中的镜像进行替换,(这里提前做好secret),以下是需要修改的deploy文件名称
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$ls |grep deploy
blackboxExporter-deployment.yaml
grafana-deployment.yaml
kubeStateMetrics-deployment.yaml
prometheusAdapter-deployment.yaml
批量启动相关服务
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$kubectl create -f .
/prometheus-k8s created
rolebinding.rbac.authorization.k8s.io/prometheus-k8s created
role.rbac.authorization.k8s.io/prometheus-k8s-config created
role.rbac.authorization.k8s.io/prometheus-k8s created
role.rbac.authorization.k8s.io/prometheus-k8s created
role.rbac.authorization.k8s.io/prometheus-k8s created
.
.
.
.
serviceaccount/prometheus-operator created
servicemonitor.monitoring.coreos.com/prometheus-operator created

看到一堆创建信息,表示配置文件没错,

查看创建资源状态
[root@prometheus-operator /zpf/prometheus/kube-prometheus/manifests]$kubectl get all -n monitoring
NAME                                       READY   STATUS    RESTARTS   AGE
pod/alertmanager-main-0                    2/2     Running   0          5m56s
pod/alertmanager-main-1                    2/2     Running   0          5m56s
pod/alertmanager-main-2                    2/2     Running   0          5m56s
pod/blackbox-exporter-7c696fd6c-hm6qh      3/3     Running   0          6m4s
pod/grafana-756dd56bbd-7xfhk               1/1     Running   0          6m2s
pod/kube-state-metrics-859985d9d9-86ldk    3/3     Running   0          6m2s
pod/node-exporter-cfkjr                    2/2     Running   0          6m1s
pod/prometheus-adapter-79756858dc-bkfhw    1/1     Running   0          6m
pod/prometheus-adapter-79756858dc-fqhz8    1/1     Running   0          6m
pod/prometheus-k8s-0                       2/2     Running   0          5m56s
pod/prometheus-k8s-1                       2/2     Running   0          5m56s
pod/prometheus-operator-5f9c6bb959-wn9rt   2/2     Running   0          6mNAME                            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGE
service/alertmanager-main       ClusterIP   10.233.7.18     <none>        9093/TCP,8080/TCP               6m4s
service/alertmanager-operated   ClusterIP   None            <none>        9093/TCP,9094/TCP,9094/UDP      5m56s
service/blackbox-exporter       ClusterIP   10.233.20.198   <none>        9115/TCP,19115/TCP              6m4s
service/grafana                 NodePort    10.233.41.58    <none>        3000:30030/TCP                  6m3s
service/kube-state-metrics      ClusterIP   None            <none>        8443/TCP,9443/TCP               6m2s
service/node-exporter           ClusterIP   None            <none>        9100/TCP                        6m1s
service/prometheus-adapter      ClusterIP   10.233.21.11    <none>        443/TCP                         6m1s
service/prometheus-k8s          NodePort    10.233.28.110   <none>        9090:30090/TCP,8080:30080/TCP   6m1s
service/prometheus-operated     ClusterIP   None            <none>        9090/TCP                        5m56s
service/prometheus-operator     ClusterIP   None            <none>        8443/TCP                        6mNAME                           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
daemonset.apps/node-exporter   1         1         1       1            1           kubernetes.io/os=linux   6m2sNAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/blackbox-exporter     1/1     1            1           6m4s
deployment.apps/grafana               1/1     1            1           6m3s
deployment.apps/kube-state-metrics    1/1     1            1           6m2s
deployment.apps/prometheus-adapter    2/2     2            2           6m1s
deployment.apps/prometheus-operator   1/1     1            1           6mNAME                                             DESIRED   CURRENT   READY   AGE
replicaset.apps/blackbox-exporter-7c696fd6c      1         1         1       6m4s
replicaset.apps/grafana-756dd56bbd               1         1         1       6m3s
replicaset.apps/kube-state-metrics-859985d9d9    1         1         1       6m2s
replicaset.apps/prometheus-adapter-79756858dc    2         2         2       6m1s
replicaset.apps/prometheus-operator-5f9c6bb959   1         1         1       6mNAME                                 READY   AGE
statefulset.apps/alertmanager-main   3/3     5m56s
statefulset.apps/prometheus-k8s      2/2     5m56s

资源创建成功

页面验证

prometheus页面验证

grafana页面验证

这里我自己添加了个node-exporter,自己添加就行

验证成功

相关文章:

使用prometheus-operator部署prometheus服务,并对外提供访问

先决条件: 已经部署好k8s #这里我使用的版本是1.28.12 [rootprometheus-operator /zpf/prometheus/kube-prometheus/manifests]$kubectl version Client Version: v1.28.12 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 Server Version: v1.28.12安装git服务 #安…...

FPGA阵列

FPGA&#xff08;现场可编程门阵列&#xff09;阵列是由多个 FPGA 芯片组成的集合&#xff0c;通过特定的架构和互联方式协同工作&#xff0c;以实现强大的计算和处理能力。以下是关于 FPGA 阵列的详细介绍&#xff1a; 基本原理 FPGA 是一种可重构的集成电路&#xff0c;内部…...

Oracle补丁安装工具opatch更新报错处理

今日&#xff0c;在进行Oracle补丁升级更新opatch工具包后&#xff0c;执行opatch命令出现了如下报错&#xff1a; [oracles203116 ~]$ opatch version /u01/product/oracle/12.1.0/db_1/OPatch/opatch: line 839: [: too many arguments /u01/product/oracle/12.1.0/db_1/O…...

前端笔记-html+css测试2

HTML & CSS 能力测试卷 选择题&#xff08;每题2分&#xff0c;共20分&#xff09; 下列哪个HTML5标签用于定义文档的导航链接&#xff1f; A) <nav> B) <navigate> C) <navbar> D) <navigation> CSS中哪个属性用于设置元素的透明度&#xff1f;…...

Visual Studio C++ 常用配置变量表

前言 visual studio中常用配置变量表 帮助你快速查阅&#xff0c;复制粘贴嘎嘎方便! 附上美图&#xff01;&#xff01; 一、解决方案 & 项目路径 变量含义示例&#xff08;典型用法&#xff09;$(SolutionDir)解决方案文件所在目录&#xff08;末尾带\&#xff09;$(S…...

论文阅读VACE: All-in-One Video Creation and Editing

code&#xff1a;https://github.com/ali-vilab/VACE 核心 单个模型同时处理多种视频生成和视频编辑任务通过VCU&#xff08;视频条件单元&#xff09;进行实现 方法 视频任务 所有的视频相关任务可以分为4类 文本生视频 参考图片生视频 视频生视频 视频mask生视频 VCU …...

【Python Cookbook】迭代器与生成器(一)

迭代器与生成器&#xff08;一&#xff09; 1.手动遍历迭代器2.代理迭代3.使用生成器创建新的迭代模式4.实现迭代器协议 1.手动遍历迭代器 你想遍历一个可迭代对象中的所有元素&#xff0c;但是却不想使用 for 循环。 为了手动的遍历可迭代对象&#xff0c;使用 next() 函数并…...

Qwen2.5-VL视觉大语言模型复现过程,没碰到什么坑

视频讲解&#xff1a;Qwen2.5-VL视觉大语言模型复现过程&#xff0c;没碰到什么坑_哔哩哔哩_bilibili Qwen2.5-VL视觉大语言模型复现过程&#xff0c;没碰到什么坑 今天复现下Qwen2.5-VL玩玩 https://github.com/QwenLM/Qwen2.5-VL 创建conda环境&#xff0c;实测22.04&#x…...

LVGL填充函数

lvgl填充函数的位置&#xff1a; static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p) {LCD_Color_Fill(area->x1,area->y1,area->x2,area->y2,(u16*)color_p);lv_disp_flush_ready(disp_drv); }填充函数的具体内容…...

关于 传感器 的详细解析,涵盖定义、分类、工作原理、常见类型、应用领域、技术挑战及未来趋势,结合实例帮助理解其核心概念

以下是关于 传感器 的详细解析&#xff0c;涵盖定义、分类、工作原理、常见类型、应用领域、技术挑战及未来趋势&#xff0c;结合实例帮助理解其核心概念&#xff1a; 一、传感器的定义与核心功能 1. 定义 传感器&#xff08;Sensor&#xff09;是一种能够将物理量&#xff…...

回归,git 分支开发操作命令

核心分支说明 主分支&#xff08;master/production&#xff09;存放随时可部署到生产环境的稳定代码&#xff0c;仅接受通过测试的合并请求。 开发分支&#xff08;develop&#xff09;集成所有功能开发的稳定版本&#xff0c;日常开发的基础分支&#xff0c;从该分支创建特性…...

指形铣刀的结构

指形铣刀&#xff0c;作为机械加工领域中一种至关重要的切削工具&#xff0c;其主要结构类型多样且各具特色&#xff0c;深入学习这些类型对于提升加工效率与精度至关重要。 首先&#xff0c;我们来看看最基本的直柄指形铣刀。这种铣刀的设计简洁明了&#xff0c;其柄部为直线…...

【verilog】always @(*) 是Verilog 中写组合逻辑

always (*) 是 Verilog 中写组合逻辑&#xff08;combinational logic&#xff09; 的标准写法&#xff0c;下面讲解含义、作用、以及为什么这么写。 &#x1f31f; 什么是 always (*)&#xff1f; always (*) begin// 组合逻辑 end它的意思是&#xff1a; “只要块中用到的任…...

【IC】STA计算

这张图很好&#xff0c;把STA的方法展示的很清楚&#xff01; 时序分析在每个设计阶段都是必不可少的&#xff0c;以便在现代 IC 设计中实现时序收敛。除了准确性之外&#xff0c;全芯片分析的效率和可扩展性也尤为重要。因此&#xff0c;门级静态时序分析 &#xff08;STA&am…...

Linux 常用命令总结

Linux 常用命令总结&#xff08;全面版&#xff09; Linux 命令行是系统管理和开发的核心工具&#xff0c;掌握常用命令可以极大提升效率。本文全面总结 Linux 常用命令&#xff0c;涵盖文件操作、进程管理、网络管理、系统监控、用户管理、软件安装等多个方面&#xff0c;适合…...

Muduo网络库实现 [十四] - HttpResponse模块

目录 设计思路 类的设计 模块的实现 公有接口 疑问点 设计思路 这个模块和HttpRequest一样&#xff0c;主要就是存储http响应的要素&#xff0c;但是其实真正需要设置存储的要素会比http请求少&#xff0c;首先&#xff0c;要存储http的版本号&#xff0c;我们最终使用的是…...

2025年CNG 汽车加气站操作工考试真题练习

CNG 汽车加气站操作工考试真题练习&#xff1a; 一、单选题 1、CNG 加气站的核心设备是&#xff08; &#xff09;。 A. 压缩机 B. 储气瓶组 C. 加气机 D. 脱水装置 答案&#xff1a;A 解析&#xff1a;压缩机是 CNG 加气站的核心设备&#xff0c;其作用是将天然气压缩…...

B端网站建设,怎样平衡功能与美观,满足企业多元需求?

在当今数字化时代&#xff0c;B端网站不仅是企业展示自身形象和产品的重要窗口&#xff0c;更是实现业务转化和客户关系维护的关键平台。然而&#xff0c;B端网站建设面临着功能需求复杂与美观设计之间的平衡问题。如何在满足企业多元需求的同时&#xff0c;打造一个既实用又美…...

PTA:模拟EXCEL排序

Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数 n (≤105) 和 c&#xff0c;其中 n 是纪录的条数&#xff0c;c 是指定排序的列号。之后有 n 行&#xff0c;每行包含一条学生纪录。每条学生纪录由学号&#xff08;6…...

Edge浏览器安卓版流畅度与广告拦截功能评测【不卡还净】

安卓设备上使用浏览器的体验&#xff0c;很大程度取决于两个方面。一个是滑动和页面切换时的反应速度&#xff0c;另一个是广告干扰的多少。Edge浏览器的安卓版本在这两方面的表现比较稳定&#xff0c;适合日常使用和内容浏览。 先看流畅度。Edge在中端和高端机型上启动速度快&…...

Qt 核心库总结

Qt 核心库&#xff08;QtCore&#xff09; QtCore 是 Qt 框架的基础模块&#xff0c;提供非图形界面的核心功能&#xff0c;是所有 Qt 应用程序的基石。它包含事件循环、信号与槽、线程管理、文件操作、字符串处理等功能&#xff0c;适用于 GUI 和非 GUI 应用程序。本文将从入…...

四大wordpress模板站

WP汉主题 WP汉主题是一个专注于提供高质量WordPress中文主题的平台。它为中文用户提供了丰富的WordPress主题选择&#xff0c;包括但不限于企业网站模板、外贸建站模板等。WP汉主题致力于帮助用户轻松搭建专业的中文网站&#xff0c;无论是企业官网还是个人博客&#xff0c;都…...

Linux之 grep、find、ls、wc 命令

Linux之 grep、find、ls、wc 命令 “ 在 Linux 世界中&#xff0c;命令行是不可或缺的一部分&#xff0c;而掌握一些常用的命令可以帮助你更有效率地管理文件和系统。本文将为你介绍四個基礎而强大的 Linux 命令&#xff1a;grep、find、ls 和 wc&#xff0c;带你开启高效文件…...

SFC的含义

SFC 即 Single File Component&#xff0c;也就是单文件组件&#xff0c;在现代前端开发尤其是 Vue.js 框架中被广泛应用。下面将从概念、结构、优势、工作原理和应用场景几个方面详细介绍 SFC。 概念 单文件组件是一种将一个组件的模板&#xff08;HTML&#xff09;、逻辑&a…...

Qt 性能优化总结

Qt 性能优化总结 本文简单解析 Qt 应用程序的性能优化策略&#xff0c;涵盖 GUI 渲染、内存管理、信号与槽、QML 性能等核心领域&#xff0c;并通过具体示例展示优化效果。 1. Qt 性能优化简介 性能优化目标是减少资源消耗&#xff08;如 CPU、内存、GPU&#xff09;、提高响…...

亚马逊关键字搜索数据通过 Product Advertising API 来获取

亚马逊关键字搜索数据主要通过 Product Advertising API 来获取。 以下是使用该接口进行关键字搜索的一般步骤&#xff1a; &#xff08;测试示例&#xff09; 注册开发者账号&#xff1a;访问亚马逊开发者中心&#xff0c;完成三方供应商注册并同意相关开发者协议&#xff0…...

现代C++的范式演进与工程实践深度解析(本文序号不知道怎么整的,有点问题)

引言:C++的复兴时代 在经历了"已死语言"的质疑后,现代C++正迎来前所未有的复兴。据2024年TIOBE指数显示,C++以8.33%的占比稳居第三,较2020年上升2.1个百分点。这种复兴并非偶然——随着C++20标准的全面落地和C++23特性的逐步实现,这门已有40年历史的语言正在系…...

第二十五天 - Web安全防护 - WAF原理与实现 - 练习:请求过滤中间件

一、Celery核心机制解析 1.1 分布式架构四要素 # celery_config.py BROKER_URL redis://:passwordlocalhost:6379/0 # 消息中间件 RESULT_BACKEND redis://:passwordlocalhost:6379/1 # 结果存储 TASK_SERIALIZER json ACCEPT_CONTENT [json] TIMEZONE Asia/Shanghai核…...

springboot自定义starter(避坑教学)

在实际开发中&#xff0c;经常会定义一些公共组件&#xff0c;提供给各个项目团队使用。而在springboot的项目中&#xff0c;一般会将这些公共组件封装为springboot的starter。 1.命名规范 Spring官方Starter通常命名为 spring-boot-starter-{name} 如&#xff1a;spr…...

Python 实现日志备份守护进程

实训背景 假设你是一名运维工程师&#xff0c;需要为公司的监控系统开发一个简单的日志备份守护进程。该进程需满足以下需求&#xff1a; 后台运行&#xff1a;脱离终端&#xff0c;长期监控指定目录&#xff08;如 /var/log/app/&#xff09;中的日志文件。自动备份&#xf…...

详解JVM的底层原理

目录 1.JVM的内存区域划分 1&#xff09;程序计数器&#xff08;Program Counter Register&#xff09; 2&#xff09;元数据区&#xff08;Metaspace&#xff09; 3&#xff09;虚拟机栈&#xff08;Java Virtual Machine Stacks&#xff09; 4&#xff09;堆&#xff08…...

制表符是什么?与.txt文件的关系?

李升伟 整理 制表符&#xff08;Tab&#xff09;是一种控制字符&#xff08;ASCII码为9&#xff0c;Unicode为\u0009&#xff09;&#xff0c;用于在文本中创建水平间距。它的作用类似于键盘上的 Tab 键&#xff0c;通常表现为光标跳转到下一个预设的“制表位”&#xff08;一…...

【专题刷题】双指针(三):两数之和,三数之和,四数之和

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代码&#xff1b;&#xff08;2&#xff09;优质解法 优质代码&#xff1b;&#xff…...

Java八种常见的设计模式

一、单例模式 单例模式是&#xff08;Singleton Pattern&#xff09;Java中最常用的设计模式之一&#xff0c;它保证一个类仅有一个实例&#xff0c;并提供一个全局访问点。 实现单例模式的核心是将类的构造方法私有化&#xff0c;以防止外部直接通过构造函数创建实例。同时&am…...

用Prompt 技术【提示词】打造自己的大语言智能体

机器如何按照人类的指令执行任务的探索 机器需具备理解任务叙述的能力&#xff0c;以便能够按照人类的指令执行任务&#xff0c;为机器提供一些范例作为参考&#xff0c;使其能够理解该执行的任务类型。这样的学习方式称为“Instruction learning”&#xff0c;透过精心设计的…...

灵鉴 AI五大核心能力洞穿 “数据黑箱”云取证深度支持8大核心应用

本文关键词&#xff1a;灵鉴AI 、电子数据取证分析AI助手、云取证、DeepSeek大模型 1.灵鉴AI &#xff0c;V1.0深度融合DeepSeek大模型技术&#xff0c;破解行业痛点&#xff0c;5大核心能力&#xff0c;让大模型真正“懂”电子数据分析。 2.LX-A216云取证系统&#xff0c;V2.…...

了解高速设计的信号完整性仿真

高速设计需要精确的信号传输&#xff0c;以确保最佳性能。信号完整性差会导致关键应用中的误码、数据损坏甚至系统故障等问题。介电常数、损耗角正切和插入损耗等因素会显著影响信号质量。通过使用信号完整性仿真&#xff0c;您可以及早发现并解决这些挑战。这种主动方法有助于…...

用 Deepseek 写的html油耗计算器

在油价高企的今天&#xff0c;了解自己爱车的真实油耗情况对每位车主来说都至关重要。本文将介绍一个简单实用的油耗计算方法&#xff0c;并提供一个可以直接使用的HTML油耗计算器。 为什么要计算油耗&#xff1f; 计算油耗不仅能帮助我们&#xff1a; 了解车辆的真实燃油经济…...

SAP系统青果糖无法报工

问题:班长说工单号4100000101青果糖工单 无法报工 原因排查:工单4100000101的工艺路线版本错误,选了版本1的,版本1是委外的工艺,本厂生产应该选版本2. 解决&#xff1a; 1&#xff1a;重读主数据,更改工单4100000101的工艺路线版本. 2&#xff1a;工单成品已交库,不能直接更改工…...

GPU 招投标全流程分析与总结

GPU 招投标全流程分析与总结 招投标流程概述 以下是通过代理商采购Nvidia H20-GPU 141G的招投标全流程分析: #mermaid-svg-hMPPfkCpGj8GKXfV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hMPPfkCpGj8GKXfV .er…...

Centos7.6安装JDK 1.8教程

前提&#xff1a;先把jdk1.8文件上传到usr/local目录下&#xff0c;文件名如&#xff1a;jdk-8u151-linux-x64.tar.gz 1. 解压 JDK 压缩包 假设 jdk-8u151-linux-x64.tar.gz 文件位于 /usr/local 目录下。 进入 /usr/local 目录&#xff1a; cd /usr/local 解压文件&#…...

Golang errors 包快速上手

文章目录 1.变量2.类型3.函数3.1 New3.2 Is简介函数签名核心功能示例代码使用场景注意事项小结 3.3 As简介函数签名核心功能示例代码使用场景注意事项小结 3.4 Unwrap简介函数签名核心功能使用示例使用场景注意事项小结 3.5 Join简介函数签名核心功能使用场景注意事项小结 4.小…...

新型多机器人协作运输系统,轻松应对复杂路面

受到鱼类、鸟类和蚂蚁等微小生物体协作操纵的启发&#xff0c;研究人员开发了多机器人协作运输系统&#xff08;Multirobot Cooperative Transportation Systems&#xff0c;MRCTS&#xff09;运输单个机器人无法处理的重型超大物体&#xff0c;可用于搜救行动、灾难响应、军事…...

易境通国际货代系统:如何解决货代物流行业的棘手难题

国际货代行业作为全球贸易的重要纽带&#xff0c;面临着日益复杂的市场环境和客户需求。然而&#xff0c;随着业务规模的扩张和多变的市场需求&#xff0c;传统的粗放式管理模式逐渐暴露出效率低下、成本失控、风险难控等问题。尤其在跨境电商高速发展的背景下&#xff0c;货代…...

基于springboot医药连锁店管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统医药连锁店管理采取了人工的管理方法&…...

Vue 3 reactive 和 ref 区别及 失去响应性问题

在 Vue 3 中&#xff0c;reactive 和 ref 是实现响应式数据的两个核心 API&#xff0c;它们的设计目标和使用场景有所不同。以下是两者的详细对比&#xff1a; 1. 基本定义与核心功能 特性reactiveref作用创建对象类型的响应式代理&#xff08;对象、数组、Map 等&#xff09…...

d3.js绘制单/多面板组合箱线图

用d3.js研发了个可以单面板、多面板展示的组合箱线图&#xff1b; 组合箱线图中包括普通散点、蜂群散点、小提琴图、小提琴箱线图、柱状图、误差棒、离群点等等&#xff0c;其中大部分你能想到的配置都是自行传参调整的&#xff0c;你想不到的也能稍作修改然后自行调整&#x…...

第二十四天 - 分布式任务队列 - Celery高级应用 - 练习:分布式监控任务系统

一、Celery核心机制解析 1.1 分布式架构四要素 # celery_config.py BROKER_URL redis://:passwordlocalhost:6379/0 # 消息中间件 RESULT_BACKEND redis://:passwordlocalhost:6379/1 # 结果存储 TASK_SERIALIZER json ACCEPT_CONTENT [json] TIMEZONE Asia/Shanghai核…...

IDEA使用jclasslib Bytecode Viewer查看jvm字节码

学习jvm的时候&#xff0c;想查看字节码和局部变量表&#xff0c;可以使用idea安装jclasslib Bytecode View插件查看。 &#xff08;1&#xff09;安装工具&#xff1a; 安装完成后需要重启idea. &#xff08;2&#xff09;准备一段代码&#xff0c;编译运行 package com.te…...

list.

列表类型是用来存储多个有序的字符串&#xff0c;列表中的每个字符串称为元素&#xff08;element&#xff09;&#xff0c;⼀个列表最多可以存储个元素 在 Redis 中&#xff0c;可以对列表两端插入&#xff08;push&#xff09;和弹出&#xff08;pop&#xff09;&#xff0c;…...