自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 问答 (2)
  • 收藏
  • 关注

原创 openssl 生成自签名证书

1、openssl。

2023-09-01 18:20:17 1511 2

原创 Init、break、continue等语法的使用

init函数:每个包中可以包涵任意多个init函数,这些函数会在程序执行开始的时候被调用,init函数会在main函数、设置包、初始化变量或者其它要在程序运行前优先完成的引导工作。程序编译时,优先执行导入包里的所有init函数,再执行本包内的init函数。for循环:go的for循环中不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化变量。init初始赋值表达式只执行一遍,循环控制条件、post(给控制变量增量或者减量)每循环一次,都要执行一次。...

2021-06-09 16:31:48 550

原创 Go Modules 的基本使用

在 Go Modules 项目中,首次运行时下载依赖包的正确流程需要根据项目情况区分处理。后续开发中,每次添加或移除依赖后都应运行该命令,确保依赖与代码一致。将这两个文件加入版本控制,确保团队成员和 CI 环境使用相同的依赖版本。会自动分析代码中的导入语句,添加缺失的依赖,移除未使用的依赖,并更新。,它会自动分析代码并下载所需的依赖,同时保持。创建离线依赖副本(适用于无法联网的环境)。显示项目的依赖关系(直接依赖和间接依赖)。中记录的哈希值一致,防止篡改。中声明的所有依赖到本地缓存(检查下载的依赖是否与。

2025-05-09 21:26:25 1078

原创 Go语言中 源文件开头的 // +build 注释的用法

//+build注释用于Go语言中的条件编译,允许根据不同的构建标签(如操作系统、架构或自定义条件)编译特定文件。注释必须位于文件开头,与包声明之间需有空行,格式为//+build后跟空格和标签。标签逻辑中,同一行标签为“与”关系,不同行标签为“或”关系,可使用!表示取反。常见应用包括针对不同操作系统或架构的代码,以及自定义构建标签(如debug或prod)。编译时可通过-tags参数启用特定标签。优先级顺序为“与”>“或”>“非”。构建标签大小写敏感,仅适用于.go文件。Go 1.17及以上版

2025-05-09 21:19:43 595

转载 ERROR: ld.so: object ‘/usr/local/lib/libsystemd.so/usr/lib/libsystemd-shared-165.so‘ from /etc/ld.so

文章摘要:当系统出现“ERROR: ld.so: object cannot be preloaded: ignored”错误时,通常意味着系统可能感染了病毒。解决此问题的步骤包括清空/etc/ld.so.preload文件、设置文件不可更改属性、删除可疑的定时任务文件、移除恶意共享库文件以及终止相关进程。具体操作包括使用chattr命令锁定关键文件,删除/var/spool/cron/和/etc/cron.d/目录中的文件,移除/usr/local/lib/和/var/tmp/目录中的可疑文件,并终止kw

2025-05-09 09:37:29 87

转载 k8s中主要有哪些核心组件服务?

Kubernetes(K8s)由多个组件服务组成,以下是一些主要组件及其功能:

2025-05-08 00:34:01 59

原创 如何理解k8s中的controller

Controller(控制器)是核心组件之一,其负责维护集群状态并确保集群内的实际状态与期望状态一致的一类组件

2025-05-07 07:45:00 965

原创 K8s 资源分类

用于将外部流量路由到集群内部的 Service,通常用于暴露 HTTP/HTTPS 服务,可以配置域名、路径等规则来实现更灵活的路由。:用于定义 Pod 之间的网络访问策略,通过规则来限制哪些 Pod 可以访问哪些其他 Pod 或网络端点,提供了网络层面的安全控制。:定义了一组 Pod 的逻辑集合以及访问它们的策略,用于实现 Pod 之间的网络通信和负载均衡。(PV):是集群中一段可供 Pod 使用的存储资源,生命周期独立于使用它的 Pod。:用于执行一次性的任务,任务完成后 Pod 会被删除。

2025-05-06 13:33:25 473

原创 当一个 HTTP 请求发往 Kubernetes(K8s)部署的微服务时,整个过程流转时怎样的?

客户端(可以是浏览器、移动应用或者其他服务)发起一个 HTTP 请求到目标微服务的地址。这个地址可以是服务的域名、IP 地址或者 Kubernetes 服务的 ClusterIP、NodePort 等。

2025-04-11 00:44:45 1072

原创 Go语言中的interface

Go 语言中的 interface 是一种抽象类型,它定义了一组方法签名,但不包含方法的实现。任何类型只要实现了 interface 中定义的所有方法,就被认为实现了该 interface。1、接口底层接口是引用类型。接口底层包含两个指针,一个指向具体类型信息另一个指向具体的值(或者是指向值的指针)。当你把一个实现了接口的值赋值给接口变量时,实际上是在复制这两个指针,而不是复制底层的值。空接口是一种特殊的接口类型,它不包含任何方法签名。

2025-03-28 06:30:00 384

原创 Redis数据持久化机制 + Go语言读写Redis各种类型值

持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。

2025-03-27 06:30:00 1832

原创 k8s 基础知识:Service + 负载均衡(下)

例如,若有一个 ClusterIP 服务关联了 3 个 Pod(Pod A、Pod B、Pod C),第一个请求会被导向 Pod A,第二个请求会被导向 Pod B,第三个请求会被导向 Pod C,之后的请求再按照这个顺序循环分配。将服务映射到一个外部的 DNS 名称,而不是一个集群内部的 IP 地址,主要用于访问集群外部的服务。LoadBalancer:用于向外部暴露服务,通常会创建一个外部负载均衡器,将流量分发到后端的 Pod 上,适用于需要对外提供服务的场景。提供一个统一的访问入口。

2025-03-26 02:07:48 966

原创 K8S基础知识:DaemonSet、Deployment、StatefulSet、ReplicaSet的用法区别

DaemonSet 的主要目的是确保在集群中的每个节点(或满足特定条件的节点)上都运行一个且仅运行一个 Pod 副本。当节点从集群中移除时,对应的 Pod 也会被自动删除。StatefulSet 用于管理有状态应用的 Pod,它为每个 Pod 提供了稳定的网络标识和持久存储。StatefulSet 中的 Pod 有固定的名称和顺序,并且在删除和重新创建时会保留其状态。的多个 Pod 副本,它提供了声明式的方式来创建、更新和删除 Pod。即在不中断服务的情况下逐步替换旧版本的 Pod 为新版本。

2025-03-26 01:35:10 1304

原创 k8s基础知识总结node+pod(上)

k8s(Kubernetes )是一个开源的容器编排平台,用于容器化应用程序的部署、扩展和管理。使运维人员能够轻松地管理容器化应用的整个生命周期,包括容器的调度、资源分配、服务发现、负载均衡、自动伸缩以及故障恢复等功能。

2025-03-24 07:00:00 1003

原创 Go语言中的切片、数组有什么区别?

数组作为参数传递时是值传递,会复制整个数组;切片作为参数传递时是引用传递,只复制切片的头信息。:数组的长度是固定的,在定义时需要指定长度;而切片是动态的,不需要指定长度。:数组是值类型,在栈上分配内存;切片是引用类型,在堆上分配内存。

2025-03-23 22:56:27 201

原创 Go的并发模型?其和线程区别?

1、Go的并发模型Go的并发模型,通过 goroutine 和 channel 来实现并发:goroutine:协程,是 Go 语言轻量级的线程,由 Go 运行时管理,其栈内存可以动态伸缩,初始时仅需 2KB,创建和销毁的开销极小。:用于在 goroutine 之间进行通信和同步,保证数据的安全传递。‌Goroutine‌:由Go语言的运行时系统创建和销毁,创建开销小,可以在Go应用程序中创建大量的Goroutine而不会显著影响性能‌。‌线程。

2025-03-22 07:45:00 251

原创 浅谈Go垃圾回收机制-面试笔记

全局变量在程序运行期间通常不会被回收,因为它们在整个程序的生命周期内都处于可达状态。代表已被垃圾回收器访问过,但它引用的其他对象尚未全部被访问完的对象。表示已被垃圾回收器访问过,并且其引用的所有对象也都已被访问过的对象。的所有对象,将那些仍然是白色的对象回收,释放它们占用的内存空间。表示尚未被垃圾回收器访问过的对象。初始时,所有对象默认都是白色。

2025-03-21 07:00:00 807

原创 常用的数据结构有哪些?在Go语言中如何定义其实例?

常见的数据结构有:数组、链表、栈、队列、图、哈希表;

2025-03-20 08:00:00 1130

原创 阿里ECS启动docker报错`open /usr/local/aegis/cgroup/cpuset/docker/cpuset.cpus: no such file or directory`

阿里云安骑士(Aegis)的安装目录,该安全软件可能会对系统的 cgroup 配置产生影响,进而干扰 Docker 的正常运行。/usr/local/aegis/cgroup/cpu的挂载,

2025-03-18 23:31:29 287

原创 map底层实现 + 空结构体 struct{}

由于空结构体不占用任何内存空间,在一些需要大量创建实例的场景中,使用空结构体可以显著减少内存的使用。例如,在实现一个状态机时,每个状态可能只需要一个标识,而不需要存储具体的数据,此时可以使用空结构体来表示状态。当嵌入的结构体不包含任何字段时,它可以作为一种元数据或标记,为外层结构体提供额外的语义。类型是一个空结构体,通过定义不同的状态实例来表示不同的状态,这些实例不占用额外的内存空间。扩容会创建一个新的更大的哈希表,将原哈希表中的键值对重新哈希并迁移到新的哈希表中。通道发送一个空结构体,表示工作已经完成。

2025-03-18 00:41:21 1069

原创 Go string 字符串底层逻辑

在这个例子中,Go 语言会重新分配一块大小为 11 字节的内存区域,并将原来的字符串 "hello" 的内容复制到新区域中,再追加上 " world" 字符串的字节序列。在这个例子中,Go 语言会分配一块大小为 5 字节的内存区域,用来存放字符串 "hello" 的字节序列。当你创建一个字符串时,Go 语言会在内存里分配一块连续的区域,用来存放字符串的字节序列。在 Go 语言中,string 类型的底层结构是一个结构体,包含两个字段:一个指向字节数组的指针和该字节数组的长度。

2025-03-14 16:55:25 356

原创 Docker Compose 使用笔记

这样做可以让容器访问宿主机上的文件和目录,或者反过来,让宿主机访问容器内的文件和目录。文件中,可以定义应用程序的各个服务(service)。:可以明确指定服务之间的依赖关系,确保在启动某个服务之前,其依赖的服务已经正确启动。例如,Web 应用服务可能依赖于数据库服务,那么可以在配置中指定这种依赖,保证数据库先启动。:能够为每个服务配置资源,如 CPU、内存限制,端口映射,文件或目录的挂载映射,环境变量等,使服务在不同环境中都能稳定运行。:指定服务之间的依赖关系,确保在启动当前服务之前,依赖的服务已经启动。

2025-03-13 02:03:03 402

原创 Go语言里面的堆跟栈 + new 和 make + 内存逃逸 + 闭包

栈主要用于存储函数调用的上下文信息,具有自动分配和释放、内存空间连续、操作效率高但大小有限的特点;堆主要用于动态内存分配,具有动态分配和释放、内存空间不连续、大小灵活但访问速度相对较慢的特点。在 Go 语言中,编译器会根据变量的类型和使用场景自动决定将变量分配到栈上还是堆上。new:主要用于为任意类型分配零值内存并返回指针,通常用于需要显式管理指针的场景。make:专门用于创建并初始化slicemap和channel这三种引用类型,会完成必要的初始化操作,不能用于其他类型。

2025-03-07 00:15:54 840 1

原创 Java学习笔记-文件命名

在一个 Java 文件中不能有多个 public 类。Java 语言规定一个 Java 源文件中最多只能有一个 public 类,并且源文件的名称必须与这个 public 类的名称完全一致(包括大小写)。等,但通常约定取第一个类的名称作为文件名,即。可以将这个文件命名为。

2025-03-06 22:34:35 207

原创 Go 语言里中的堆与栈

在 Go 语言中,编译器会进行逃逸分析,来决定一个变量是分配在栈上还是堆上。变量会分配在栈上,而。

2025-02-12 18:32:52 829

原创 Go 语言泛型

Go 语言在 1.18 版本中引入了泛型(Generics),这是 Go 语言自发布以来最重要的特性之一。泛型允许开发者编写更加通用和灵活的代码,减少重复代码的编写。

2025-02-11 01:20:24 407

原创 JAVA笔记—类名与文件名

在一个 Java 文件中不能有多个 public 类。Java 语言规定一个 Java 源文件中最多只能有一个 public 类,并且源文件的名称必须与这个 public 类的名称完全一致(包括大小写)。等,但通常约定取第一个类的名称作为文件名,即。可以将这个文件命名为。

2025-02-11 01:17:18 207

原创 Java学习笔记1:在 Java 中,super关键字和this关键字的区别

在 Java 中,super关键字的区别如下 :当子类和父类有同名成员变量时,可以使用来访问父类的成员变量。例如:2.2 调用方法: :可以使用来调用当前类的其他方法。例如: :可以使用来调用父类被重写的方法。例如:2.3 调用构造方法: :在构造方法中,用于调用同一类中的其他构造方法,且必须放在构造方法的第一行。例如: :在子类的构造方法中,用于调用父类的构造方法,且也必须放在构造方法的第一行。例如:三、使用场景不同

2024-09-18 17:07:51 499

原创 sed 命令的基本语法:sed -i s/.../.../g

sed 命令是一个在 Linux 和 Unix 系统中常用的命令,用于对文件进行查找和替换操作。: Stream Editor,用于对文本文件中的内容进行搜索、替换、删除等操作。就能正确识别它为普通字符,而不是正则表达式中的任意字符的意思。就能正确识别它为普通字符,而不是正则表达式中的特殊字符。),也就是对文件的内容进行实际的修改,而不是输出到终端。然而,如果你要替换的文本中包含了特殊字符,比如。在正则表达式中表示为匹配到的整个字符串。等,那么你需要对这些特殊字符进行转义。选项表示对文件进行原地编辑,

2024-08-27 11:17:51 9152

原创 Go语言 获取服务器资源磁盘Disk情况

查询跟目录的空间大小、剩余空间、使用空间、使用绿。

2024-06-20 23:54:42 828

原创 centos环境上:k8s 简单安装教程

本次演示安装的k8s版本为 1.22.15。calico 版本是否支持当前k8s版本,calico v3.24版本支持k8s 1.22~1.25.Calico 是一个纯三层的数据中心网络方案,是目前 Kubernetes 主流的网络方案。注意:3个服务器IP都要设置为静态IP,主要此操作只需在master节点执行。注意:apiserver-advertise-address 除填写master节点IP地址;

2024-06-15 23:59:24 2872 1

原创 docker 简单在线安装教程

安装 docker 版本为:19.03.14-3.el7

2024-06-15 23:25:38 862

原创 快速安装mysql 5.7 服务步骤(包含clinet)及常见问题

1.2.进入yum.repos.d目录,安装mysql-server1.3.出现mysql-community-common-5.7.42-1.el7.x86_64.rpm的公钥尚未安装的错误例如:"Public key for mysql-community-server-5.7.44-1.el7.x86_64.rpm is not installed"1.4.启动MySQL并获取登录密码1.5.登录MySQL1.6.修改mysql的用户root的密码并配置mysql。

2024-03-13 00:00:15 490

原创 在Linux操作系统上安装 kafka

在启动Kafka broker之前,您需要先启动Zookeeper实例。您可以从官方网站(https://kafka.apache.org/downloads)上下载最新版本的Kafka。其中,your_host_name是您计算机的主机名,这将是Kafka broker公开的地址。Kafka是一个分布式的流处理平台,它可以处理数据管道中的实时数据流。以下是在Linux操作系统上安装Kafka的步骤。注意:为了避免内存问题,不要在单个计算机上运行多个Kafka broker实例。在Kafka目录中,找到。

2023-09-07 16:20:44 914

原创 日志记录一

我们知道,当注释掉配置环境变量 export ……之后,需要source;之后,修改内容才能生效。例如:将export的Java环境变量注释掉或者删除掉后,source /etc/profile 使之生效;但是,执行env命令后依然发现JAVA_HOME。

2023-09-02 06:00:00 294

原创 程序员笔记:安装包类型、go语言编译约束

原文链接:https://blog.youkuaiyun.com/u012206617/article/details/97759325。二进制包,已编译好的可直接使用的程序,解压缩后,点击bin目录下的.sh或者.bat执行文件即可使用。如上标注:只能在unix下编译;windows系统则无法编译;源代码包,需要经过计算机编译才能执行安装。安装程序,执行exe文件即可以安装。

2023-06-22 00:15:00 137

翻译 ​.dockerignore 文件 怎么用?

在 docker CLI 将上下文发送到 docker 守护程序之前,它看起来 在上下文的根目录中命名的文件。如果此文件存在,CLI 将修改上下文以排除文件和 与其中的模式匹配的目录。例如,模式和两者都排除在 git 的子目录或根目录中命名的文件或目录 存储库位于。例如,将排除在所有目录中找到的所有以 结尾的文件,包括构建上下文的根目录。例外规则的放置会影响行为:最后一个 与特定文件匹配的行确定 是否包括或排除。如果文件中的一行以第 1 列开头,则此行为 被视为注释,在 CLI 解释之前被忽略。

2023-05-25 15:05:51 640

原创 linux 修改主机名称

命令会删除/etc/hostname文件中的主机名,然后替换为新的主机名,和第一种方法一样,两种方法本质是一样的。把旧的主机名删除,替换为新的主机名,保存文件就行了。不过,修改配置文件的方法,需要重启后生效,即reboot。hostnamectl set-hostname 主机名。只需重新打开session终端,就能生效,重新开启终端就可以看到新的主机名了。重启计算机后会回到旧的主机名。

2023-04-14 15:36:35 2844

转载 MQTT协议解析之QoS Level

比如在同一个子网内部的服务间的消息交互往往选用QoS0;QoS2使用的场景相对少一些,能想到的如国防武器,医疗设备等应用场景。MQTT发布消息QoS保证不是端到端的,是客户端与服务器之间的。订阅者收到MQTT消息的QoS级别,最终取决于发布消息的QoS和主题订阅的QoS。QoS级别越高,流程越复杂,系统资源消耗越大。QoS1是中间级别,保证消息至少送达一次。模式,发送者发送完数据之后,不关心消息是否已经投递到了接收者那边。既然QoS是发送者和接收者之间的质量协定,在MQTT协议的。...

2022-07-28 14:02:22 1787 1

原创 linux ifconfig 命令安装

安装ifconfig1、发现没有ifconfig命令 [root@PC3 ~]# ifconfig bash: ifconfig: command not found...2、查找安装包 [root@PC3 ~]# yum list | grep net-tool* net-tools.x86_64 2.0-0.17.20131004git.el7 rhel73、安装 yum install -y net-tools.x86

2022-06-13 00:00:00 1760 1

【工业自动化】西门子S7-1500PLC与KEPServerEx 6.x仿真连接:安装配置及数据交互实现详解

内容概要:本文档详细介绍了西门子S7-1500 PLC仿真与KEPServerEx 6.x的连接方法。首先指导用户安装TIA Portal v17作为仿真工具,提供了安装教程链接及安装包下载链接,针对启动报错提示用户需调整Windows配置。接着阐述了创建并启动仿真的步骤,强调了添加设备时应选择带OPC UA功能的CPU型号、不激活OPC UA服务器以及取消‘优化的块访问’选项的重要性。最后讲解了KEPServerEx 6.x的配置流程,包括创建通道、设备,设置正确的IP地址和端口号,正确添加标记位号(如DB1.DINT0),并指出数据类型的对应关系,同时强调取消选中`使用DCOM配置设置`; 适合人群:从事工业自动化领域,特别是对西门子PLC和KEPServer有一定了解的技术人员; 使用场景及目标:①实现西门子S7-1500 PLC的本地仿真环境搭建;②完成KEPServerEx 6.x与PLC仿真之间的稳定连接,用于数据采集、监控等; 阅读建议:由于涉及多个软件的配置与操作,建议读者按照文档提供的教程链接逐步操作,遇到问题时可参考提供的解决方案或搜索更多资料。

2025-04-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除