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

在CSDN学Golang云原生(服务网格istio)

一,在Kubernetes上部署istio

在Kubernetes上部署istio,可以按照以下步骤进行:

  1. 安装Istio

使用以下命令从Istio官网下载最新版本的Istio:

curl -L https://istio.io/downloadIstio | ISTIO_VERSION=<VERSION> sh -

其中,<VERSION>是要安装的Istio版本号。

将下载的文件解压到本地目录:

tar xzf istio-<VERSION>-linux-amd64.tar.gz

进入解压后的目录:

cd istio-<VERSION>

然后,安装Istio CRDs(Custom Resource Definitions):

kubectl apply -f manifests/crds.yaml

最后,安装Istio组件和示例应用程序:

kubectl apply -f manifests/
  1. 部署应用程序

将Golang云原生应用程序打包成Docker镜像,并上传至Docker Hub等容器镜像仓库。然后,在Kubernetes中创建Deployment和Service资源对象来部署该应用程序。

例如,可以使用类似以下的YAML配置文件来创建Deployment和Service资源对象:

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deployment
spec:replicas: 3 # 副本数为3个,可根据实际情况调整。selector:matchLabels:app: myapp-label # 标签名称为myapp-label。template:metadata:labels:app: myapp-label # 标签名称为myapp-label。spec:containers:- name: myapp-containerimage: <DOCKER_IMAGE_NAME>:<TAG>ports:- containerPort: 8080 # 应用程序监听的端口号为8080。---
apiVersion: v1
kind: Service
metadata:name: myapp-service
spec:selector:app: myapp-label # 标签名称为myapp-label。ports:- name: http-portport: 80 # 访问服务时使用的端口号。targetPort: 8080 # 实际转发到容器中的端口号是8080。

其中,<DOCKER_IMAGE_NAME><TAG>分别是应用程序打包成Docker镜像后的名称和标签。

  1. 部署istio sidecar

在部署Istio sidecar之前,需要将应用程序所在的命名空间进行标记。例如:

kubectl label namespace <NAMESPACE> istio-injection=enabled

其中,<NAMESPACE>是应用程序所在的命名空间。

然后,在部署应用程序时,Istio sidecar会自动注入到该应用程序中:

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deployment
spec:template:metadata:labels:app: myapp-label # 标签名称为myapp-label。spec:containers:- name: myapp-containerimage: <DOCKER_IMAGE_NAME>:<TAG>ports:- containerPort: 8080 # 应用程序监听的端口号为8080。
  1. 配置Istio流量管理

在Kubernetes中,可以通过创建Gateway和VirtualService资源对象来配置Istio流量管理。例如:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: myapp-gateway
spec:selector:istio: ingressgatewayservers:- hosts:- "myapp.example.com" # 访问该应用程序使用的域名或IP地址。port:name: http-portnumber: 80 # 访问服务时使用的端口号。---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: myapp-virtualservice
spec:hosts:- "myapp.example.com" # 访问该应用程序使用的域名或IP地址。gateways:- myapp-gateway # 关联上述定义的Gateway对象。http:- route:- destination:host: myapp-service # 关联上述定义的Service对象。port:number: 80 # 实际访问容器中应用程序所使用的端口号是80。

其中,myapp.example.com是访问该应用程序使用的域名或IP地址。

  1. 验证部署结果

完成以上步骤后,即可访问部署好的Golang云原生应用程序,并通过Istio Dashboard等工具查看其监控信息。

二,istio流量管理实践

使用Istio进行流量管理,可以按照以下步骤进行:

  1. 部署示例应用程序

在Kubernetes中部署示例应用程序。例如,可以使用类似以下的YAML配置文件来创建Deployment和Service资源对象:

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deployment
spec:replicas: 3 # 副本数为3个,可根据实际情况调整。selector:matchLabels:app: myapp-label # 标签名称为myapp-label。template:metadata:labels:app: myapp-label # 标签名称为myapp-label。spec:containers:- name: myapp-containerimage: <DOCKER_IMAGE_NAME>:<TAG>ports:- containerPort: 8080 # 应用程序监听的端口号为8080。---
apiVersion: v1
kind: Service
metadata:name: myapp-service
spec:selector:app: myapp-label # 标签名称为myapp-label。ports:- name: http-portport: 80 # 访问服务时使用的端口号。targetPort: 8080 # 实际转发到容器中的端口号是8080。

其中,<DOCKER_IMAGE_NAME><TAG>分别是应用程序打包成Docker镜像后的名称和标签。

  1. 创建Gateway和VirtualService资源对象

创建Gateway和VirtualService资源对象来配置Istio流量管理。例如:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: myapp-gateway
spec:selector:istio: ingressgatewayservers:- hosts:- "myapp.example.com" # 访问该应用程序使用的域名或IP地址。port:name: http-portnumber: 80 # 访问服务时使用的端口号。---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: myapp-virtualservice
spec:hosts:- "myapp.example.com" # 访问该应用程序使用的域名或IP地址。gateways:- myapp-gateway # 关联上述定义的Gateway对象。http:- route:- destination:host: myapp-service # 关联上述定义的Service对象。port:number: 80 # 实际访问容器中应用程序所使用的端口号是80。

其中,myapp.example.com是访问该应用程序使用的域名或IP地址。

  1. 配置Istio流量规则

配置Istio流量规则来控制如何将流量路由到不同版本、环境和地理位置等目标。例如:

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:name: myapp-destinationrule
spec:host: myapp-service # 目标主机为myapp-service Service对象名称。subsets:- name: v1-subset # 将所有标签为version=v1的Pod分配给v1-subset。labels:version: v1- name: v2-subset # 将所有标签为version=v2的Pod分配给v2-subset。labels:version: v2---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: myapp-virtualservice
spec:hosts:- "myapp.example.com" # 访问该应用程序使用的域名或IP地址。gateways:- myapp-gateway # 关联上述定义的Gateway对象。http:- route:- destination:host: myapp-service # 关联上述定义的Service对象。weight: 100 # 所有流量都路由到v1版本,权重为100%。- destination:host: myapp-service # 关联上述定义的Service对象。subset: v2-subsetweight: 0 # 所有流量都不路由到v2版本,权重为0%。

其中,DestinationRule用于配置目标主机和子集信息,而VirtualService则用于配置如何将流量路由到这些目标主机和子集。在以上示例中,将所有流量都路由到v1版本,并且不进行负载均衡;而对于v2版本,则将其权重设置为0%,表示不进行任何访问。

  1. 验证部署结果

完成以上步骤后,即可验证Istio流量管理是否生效。可以通过Istio Dashboard等工具查看监控信息,或者直接访问应用程序的域名或IP地址进行验证。

Golang云原生学习路线图、教学视频、文档资料、面试题资料(资料包括C/C++、K8s、golang项目实战、gRPC、Docker、DevOps等)免费分享 有需要的可以加qun:793221798领取

三,istio安全配置实践

使用Istio进行安全配置,可以按照以下步骤进行:

  1. 部署示例应用程序

在Kubernetes中部署示例应用程序。例如,可以使用类似以下的YAML配置文件来创建Deployment和Service资源对象:

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deployment
spec:replicas: 3 # 副本数为3个,可根据实际情况调整。selector:matchLabels:app: myapp-label # 标签名称为myapp-label。template:metadata:labels:app: myapp-label # 标签名称为myapp-label。spec:containers:- name: myapp-containerimage: <DOCKER_IMAGE_NAME>:<TAG>ports:- containerPort: 8080 # 应用程序监听的端口号为8080。---
apiVersion: v1
kind: Service
metadata:name: myapp-service
spec:selector:app: myapp-label # 标签名称为myapp-label。ports:- name: http-portport: 80 # 访问服务时使用的端口号。targetPort: 8080 # 实际转发到容器中的端口号是8080。

其中,<DOCKER_IMAGE_NAME><TAG>分别是应用程序打包成Docker镜像后的名称和标签。

  1. 创建Gateway和VirtualService资源对象

创建Gateway和VirtualService资源对象来配置Istio流量管理。例如:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: myapp-gateway
spec:selector:istio: ingressgatewayservers:- hosts:- "myapp.example.com" # 访问该应用程序使用的域名或IP地址。port:name: http-portnumber: 80 # 访问服务时使用的端口号。---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: myapp-virtualservice
spec:hosts:- "myapp.example.com" # 访问该应用程序使用的域名或IP地址。gateways:- myapp-gateway # 关联上述定义的Gateway对象。http:- route:- destination:host: myapp-service # 关联上述定义的Service对象。port:number: 80 # 实际访问容器中应用程序所使用的端口号是80。

其中,myapp.example.com是访问该应用程序使用的域名或IP地址。

  1. 配置Istio安全规则

配置Istio安全规则来保护和控制对应用程序进行访问。例如:

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:name: myapp-authorizationpolicy
spec:selector:matchLabels:app: myapp-labelversion: v1env: prodaction : ALLOW

其中,AuthorizationPolicy可以设置在集群范围、命名空间范围或者单个服务范围内,并且可以根据标签选择器匹配目标对象。在以上示例中,对于标签为app=myapp-labelversion=v1env=prod的Pod进行访问控制,允许所有操作。

  1. 验证部署结果

完成以上步骤后,即可验证Istio安全配置是否生效。可以通过Istio Dashboard等工具查看监控信息,或者直接访问应用程序的域名或IP地址进行验证。注意,在实际生产环境中,需要根据实际情况调整安全策略和权限规则。

四,使用Prometheus进行生产规模的监控

使用Prometheus进行生产规模的监控,可以按照以下步骤进行:

  1. 安装和配置Prometheus

安装并配置Prometheus服务器。例如,在Kubernetes中部署一个Prometheus实例,并将其配置为收集指定名称空间中所有Pod的指标数据:

apiVersion: v1
kind: ServiceAccount
metadata:name: prometheus-server
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:name: prometheus-server
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin # 授予Prometheus访问全部资源的权限。
subjects:
- kind: ServiceAccountname: prometheus-server # 将Prometheus服务帐户与角色绑定。
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:name: prometheus-deployment
spec:replicas: 1 # 可根据实际情况调整副本数。selector:matchLabels:app: prometheus-server # 指定应用程序标签为prometheus-server。template:metadata:labels:app: prometheus-server # 指定应用程序标签为prometheus-server。spec:serviceAccountName : prometheus-servercontainers:- name : prometheusimage : quay.io/prometheus/prometheuargs :- "--config.file=/etc/prometheu/prometheu.yml"ports :- containerPort :9090volumeMounts :- mountPath : /etc/prometheusname : config-volumevolumes :- name : config-volumeconfigMap :name : prometheus-server-configmap---
apiVersion: v1
kind: Service
metadata:name: prometheus-service
spec:type: NodePort # 可以根据实际情况调整暴露方式。selector:app: prometheus-server # 指定应用程序标签为prometheus-server。ports:- port: 9090 # Prometheus服务器的监听端口号。targetPort: 9090 # 实际转发到容器中的端口号是9090。

其中,prometheus-server-configmap是一个配置映射,包含了Prometheus的配置文件。例如:

apiVersion: v1
kind: ConfigMap
metadata:name: prometheus-server-configmap
data:prometheu.yml: |global:scrape_interval :15sscrape_configs :- job_name : "kubernetes-pods"kubernetes_sd_configs:- role: podrelabel_configs:- source_labels : [__meta_kubernetes_pod_label_app]regex : myapp-labelaction : keep
  1. 部署示例应用程序和Exporter组件

在Kubernetes中部署示例应用程序,并且使用Exporter组件将其指标数据暴露给Prometheus服务器。例如,可以使用以下YAML配置文件创建Deployment和Service资源对象:

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deployment
spec:replicas: 3 # 副本数为3个,可根据实际情况调整。selector:matchLabels:app: myapp-label # 标签名称为myapp-label。template:metadata:labels:app: myapp-label # 标签名称为myapp-label。spec:containers:- name: myapp-containerimage: <DOCKER_IMAGE_NAME>:<TAG>ports:- containerPort: 8080 # 应用程序监听的端口号为8080。---
apiVersion: v1
kind: Service
metadata:name: myapp-service
spec:selector:app: myapp-label # 标签名称为myapp-label。ports:- name: http-portport: 80 # 访问服务时使用的端口号。targetPort: 8080 # 实际转发到容器中的端口号是8080。

其中,<DOCKER_IMAGE_NAME><TAG>分别是应用程序打包成Docker镜像后的名称和标签。

接下来,部署一个Prometheus Exporter组件。例如,在Kubernetes中使用以下YAML配置文件创建Deployment和Service资源对象:

apiVersion : apps/v1kind : Deploymentmetadata :name : prometheus-exporter-deploymentspec :replicas : 1selector :matchLabels :name : prometheus-exportertemplate :metadata :labels :name : prometheus-exporterspec:containers:- name : prometheus-exporterimage : quay.io/prometheus/node_exporte:v0.18.1ports:- containerPort :9100resources:requests :cpu : "100m"memory : "100Mi"limits :cpu : "200m"memory : "200Mi"

其中,node_exporter:v0.18.1是一个Prometheus Exporter组件镜像,可以将主机的指标数据暴露给Prometheus服务器。

  1. 配置Prometheus规则

配置Prometheus规则来定义需要监控的指标。例如:

groups:- name: myapp-rulesrules:- alert: HighRequestLatencyexpr: job:request_latency_seconds_mean5m{job="myapp"} > 0.5for: 10slabels:severity: warningannotations:summary: High request latency on {{ $labels.instance }}description: "{{ $labels.instance }} has a request latency above 0.5 seconds ({{ printf "%.2f" $value }}s)"

其中,request_latency_seconds_mean_5m{job="myapp"}是示例应用程序中请求延迟的平均值。

  1. 验证部署结果

完成以上步骤后,即可验证Prometheus是否正确地收集和显示各种指标数据。可以通过Prometheus Web UI等工具查看监控信息,并且根据实际情况调整监控策略和报警规则。

相关文章:

在CSDN学Golang云原生(服务网格istio)

一&#xff0c;在Kubernetes上部署istio 在Kubernetes上部署istio&#xff0c;可以按照以下步骤进行&#xff1a; 安装Istio 使用以下命令从Istio官网下载最新版本的Istio&#xff1a; curl -L https://istio.io/downloadIstio | ISTIO_VERSION<VERSION> sh - 其中&…...

Golang 获取本地 IP 地址方法

在 Golang 中&#xff0c;使用 net 包可以很方便地获取到本机IP地址。 借助 net.InterfaceAddrs 方法 简单示例代码如下&#xff1a; package mainimport ("fmt""net" )func main() {addrList, err : net.InterfaceAddrs()if err ! nil {panic(err)}for…...

抖音seo短视频账号矩阵系统技术开发简述

说明&#xff1a;本开发文档适用于抖音seo源码开发&#xff0c;抖音矩阵系统开发&#xff0c;短视频seo源码开发&#xff0c;短视频矩阵系统源码开发 一、 抖音seo短视频矩阵系统开发包括 抖音seo短视频账号矩阵系统的技术开发主要包括以下几个方面&#xff1a; 1.前端界面设…...

运维高级--shell脚本完成分库分表

为什么要进行分库分表 随着系统的运行&#xff0c;存储的数据量会越来越大&#xff0c;系统的访问的压力也会随之增大&#xff0c;如果一个库中的表数据超过了一定的数量&#xff0c;比如说MySQL中的表数据达到千万级别&#xff0c;就需要考虑进行分库分表&#xff1b; 其…...

Mysql 忘记密码怎么重置密码(详细步骤)

每种方法都有其适用的情况&#xff0c;根据具体情况选择合适的方法。无论选择哪种方法&#xff0c;请务必在重置密码后及时删除临时用户并重新启动 MySQL 服务。 一、使用 mysqladmin 重置密码 停止服务 # systemctl 启动的使用这个停止 $ sudo systemctl stop mysql# mac 本机…...

机器学习深度学习——图像分类数据集

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——softmax回归&#xff08;下&#xff09; &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习…...

【PWN · 栈迁移】[BUUCTF]ciscn_2019_es_2

第一道栈迁移题目&#xff0c;跌跌撞撞理解了 前言 当前溢出可用空间比较少时&#xff08;极端情况下仅能覆写ebp和ret&#xff09;&#xff0c;可以通过栈迁移的方式&#xff0c;扩大shellcode的容纳空间&#xff0c;其核心是将esp移动到一段shellocode开头。而esp总是由ebp赋…...

网络编程(13): 网络通信常用命令(后续待补充)

ifconfig 一般用于查看网卡信息 ping 一般用于侦测本机到目标网络主机的网络是否通常: ping ip/域名 telnet 可以用于指定ip地址和端口的侦听服务是否存在&#xff1a;telnet ip port, 也可以模拟客户端给服务器发数据 netstat 用于查看网络连接状态 -a: 显示所有选项 -t&#…...

flask创建数据库连接池

flask创建数据库连接池 在Python中&#xff0c;您可以使用 Flask-SQLAlchemy 这个扩展来创建一个数据库连接池。Flask-SQLAlchemy 是一个用于 Flask 框架的 SQLAlchemy 操作封装&#xff0c;实现了 ORM(Object Relational Mapper)。ORM 主要用于将类与数据库中的表建立映射关系…...

C语言手撕顺序表

目录 一、概念 1、静态顺序表&#xff1a;使用定长数组存储元素。 2、动态顺序表&#xff1a;使用动态开辟的数组存储 二、接口实现 1、对顺序表的初始化 2、对数据的销毁 3、对数据的打印 4、检查是否需要扩容 5、尾插 6、头插 7、尾删 8、头删 9、在pos位置插入x …...

常见的排序算法

常见的排序算法 常见的排序算法包括&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a;依次比较相邻的元素&#xff0c;将较大的元素交换到右侧&#xff0c;逐步将最大元素移动到末尾。插入排序&#xff08;Insertion Sort&#xff09;&#xff1a;将数组…...

C#如何使用SQLite数据库?

文章目录 0.引言1.SQLite工具准备2.创建窗体项目并添加SQLite的命名空间3.编写使用SQLite代码4.结果展示 0.引言 SQLite是一个轻量级的嵌入式数据库&#xff0c;它的库文件非常小巧&#xff0c;不需要独立的服务器进程或配置。这使得它非常适合在资源受限的环境中使用&#xff…...

如何将表格中的状态数据转换为Tag标签显示

考虑到系统前端页面的美观程度&#xff0c;通常通过Tag标签来代替某条数据中的状态信息。仅通过一点操作&#xff0c;便能够使得页面美观程度得到较大提升&#xff0c;前后对比如下所示。代码基于Vue以及Element-ui组件实现。 修改前&#xff1a; 修改后&#xff1a; 修改前…...

centos中修改防火墙端口开放配置

1、直接进入文件修改 vim /etc/sysconfig/iptables 2、添加需要开放的端口 &#xff08;1&#xff09;添加需要开放的单个端口 4001 -A INPUT -m state --state NEW -m tcp -p tcp --dport 4001 -j ACCEPT &#xff08;2&#xff09;添加需要开放的某个网段端口 4001:4020 …...

程序设计 算法基础

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…...

【数据结构】之十分好用的“链表”赶紧学起来!(第一部分单向链表)

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …...

ubuntu开机自启动

ubuntu开机自启动 1、建一个test.sh脚本&#xff0c;并写入 #!/bin/sh gnome-terminal -x bash -c ‘cd /home/文件路径/;python3 main.py’ exit 0 2、:wq!保存 3、创建rc-local.service文件&#xff08;sudo vim /etc/systemd/system/rc-local.service&#xff09;&#xf…...

Git将其他分支合并至主分支

主要思想&#xff1a; 把分支代码合并到master&#xff0c;合给谁&#xff0c;就先切换到谁的分支 1. 当前分支是dev&#xff0c;开发完成后&#xff0c;需要合并到master分支 先把该提交的提交&#xff0c;需要push的push完成后&#xff0c;再切换分支。 否则也会告诉你要提交…...

Python+request+pytest 接口自动化测试框架入门(与unittest的比较)

1. Pythonrequestpytest 接口自动化测试框架入门 - 简书 pytest和unittest的比较&#xff1a; pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要有以下几个特点&#xff1a; 简单灵活&#xff0c;容易上手支持参数化能够支持简单的单元测试和复杂的功能测试&a…...

数据结构——复杂度

总有一天你要一个人&#xff0c;再暗夜中&#xff0c;向那座桥走过去 文章目录 一、算法的复杂度 考察形式范例 二、算法的时间复杂度 大O的渐进表示法 常见的复杂度对比 例题&#xff1a;消失的数字 题目的三种思路 1.排序遍历 2.减法 3.单身狗思想 三、空间复杂度…...

使用goldengate 迁移Oracle到postgresql

环境&#xff1a; --源端&#xff1a; IP&#xff1a;10.0.4.16 hostname&#xff1a;tencent Oracle数据库版本&#xff1a;12.2.0.1.0 ogg for oracle版本&#xff1a;19.1.0.0.4 SID&#xff1a;orcl --目标端&#xff1a; IP&#xff1a;10.0.4.16 hostname&#…...

ESP-C3入门20. CentOS开发环境及Jenkins流水线

一、准备环境 CentOS8已经正常安装Jenkins 二、升级 cmake cmake 升到 3.16以上。 cmake --version # 安装 g sudo yum install gcc-c export CXXg# 安装 CMake 的依赖项 sudo yum install -y openssl-devel# 下载 CMake 源码并进行编译安装 wget https://github.com/Kitwa…...

服务器被爬虫恶意攻击怎么办?

在有预算的情况可以采购第三方服务防火墙&#xff0c;没钱就使用开源的WAF进行防护。 # WAF防火墙的基本防护原理 WAF&#xff08;Web 应用防火墙&#xff09;可以使用多种技术来防止恶意爬虫攻击&#xff0c;例如&#xff1a; 1. 黑名单&#xff1a;WAF 可以使用黑名单技术来…...

JavaScript正则表达式之座机号/手机号验证校验规则

引用:https://www.bilibili.com/read/cv18300539/ 本文对利用正则表达式对手机号码进行了验证 支持格式&#xff1a; 座机 &#xff1a;xxx-xxxxxxxx、xxxxxxxxxxxx …座机区号的横杠可有可无 手机&#xff1a;xxxxxxxxxxx JavaScript&#xff1a; var: checkPhone (rule,…...

黑客学习手册(自学网络安全)

一、首先&#xff0c;什么是黑客&#xff1f; 黑客泛指IT技术主攻渗透窃取攻击技术的电脑高手&#xff0c;现阶段黑客所需要掌握的远远不止这些。 二、为什么要学习黑客技术&#xff1f; 其实&#xff0c;网络信息空间安全已经成为海陆空之外的第四大战场&#xff0c;除了国…...

获取非叶子节点的grad(retain_grad()、hook)【为了解决grad值是None的问题】

在调试过程中, 有时候我们需要对中间变量梯度进行监控, 以确保网络的有效性, 这个时候我们需要打印出非叶节点的梯度, 为了实现这个目的, 我们可以通过两种手段进行, 分别是: retain_grad()hook 不过我感觉“hook”比“retain_grad()”要麻烦.....&#xff0c;所以我感觉还是…...

JMeter(八):响应断言详解

响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-sample only , jmeter variable 关于应用范围,我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,…...

【网络编程】IO复用的应用一:非阻塞connect

在connect连接中&#xff0c;若socket以非阻塞的方式进行连接&#xff0c;则系统内设置的TCP三次握手超时时间为0&#xff0c;所以它不会等待TCP三次握手完成&#xff0c;直接返回&#xff0c;错误为EINPROGRESS。   所以&#xff0c;我们可以通过判断connect时返回的错误码是…...

Spring注解开发,bean的作用范围及生命周期、Spring注解开发依赖注入

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaweb 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Spring注解开发 一、注解开发定义Bean二、纯注解开发Bean三…...

C#设计模式之---原型模式

原型模式&#xff08;Prototype Pattern&#xff09; 原型模式&#xff08;Prototype Pattern&#xff09; 是用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象。原型模式是一种创建型设计模式。也就是用一个已经创建的实例作为原型&#xff0c;通过…...

no.7主题wordpress/郑州网站制作公司

这篇文章主要介绍了Python autoescape标签用法解析,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下1.spaceless标签&#xff1a;移除html标签中的空白字符。包括空格、tab键、换行符&#xff0c;示例代码如下&am…...

郑州网站建设汉狮/seo公司是做什么的

自动发现与自动注册简介自动发现&#xff1a;zabbix Server主动发现所有客户端&#xff0c;然后将客户端登记自己的小本本上&#xff0c;缺点zabbix server压力山大&#xff08;网段大&#xff0c;客户端多&#xff09;&#xff0c;时间消耗多。自动注册&#xff1a;zabbix age…...

2019建一个什么网站最好/上海seo培训中心

php的重定向&#xff0c;很简单&#xff0c;除去直接打印出重定向的JavaScript代码以外&#xff0c; 使用原生态的php重定向是这样的&#xff1a; <?php header("location: url"); exit; ?>一读到这条语句则会马上跳转到指定的重定向url。当然&#xff0c;P…...

wordpress上卖什么用/网站seo优化案例

当前&#xff0c;我国融资租赁业正处于转型发展的关键时期。在推动经济高质量发展的浪潮之下&#xff0c;除了要充分发挥行业的跨界属性&#xff0c;延伸业务链。同时还要借助大数据等新兴技术&#xff0c;提升业务创新能力、风险防控能力。 关键词&#xff1a;融资租赁 机遇 …...

怎么做动态网站页面/百度上做优化

类似py2exe软件真的能保护python源码吗 背景 最近写了个工具用于对项目中C/C文件的字符串常量进行自动化加密处理&#xff0c;用python写的&#xff0c;工具效果不错&#xff0c;所以打算在公司内部推广。为了防止代码泄露就考虑不采用直接给源码方式&#xff0c;而python二进制…...

wordpress做ftp/百度一下 官方网

文章目录 概论对比HashMap 的初始容量默认11 的初始容量任意指定非负的容量对比HashMap 的 对null 值的支持HashTable key value 都不支持null升级HashTable 使其支持null 做value对比 HashTable 的继承关系DictionaryHashtable线程安全contains方法debug 源码 put 方法总结你觉…...