秒级体验本地调试远程 k8s 中的服务
点击上方蓝色字体,选择“设为星标”
回复”云原生“获取基础架构实践
背景
在这个以k8s为云os的时代,程序员在日常的开发过程中,肯定会遇到各种问题,比如:本地开发完,需要部署到远程k8s集群,本地如何直接操作呢?又如:提测到测试环境发现有问题,或者nightly环境本身没过,这时候,可能需要一些调试。下面介绍一款开源已久的产品来体验秒级体验下本地操作远程k8s、直接在调试远程代码。
借助 Nocalhost 实现 k8s 应用秒级的本地开发体验
直入主题,Nocalhost 是腾讯云 CODING 在 2020 年开源的项目,同时它也是云原生开发领域下第一个由国人主导并进入 CNCF Sandbox 的项目。
Nocalhost 开发实战
安装 Nocalhost 插件
首先,需要先安装 Nocalhost IDE 插件。Nocalhost 支持 VS Code 和 Jetbrains 全系列的 IDE,你可以在市场中搜索。
接下来,我以 Jetbrains Goland 插件为例简单介绍如何安装 Nocalhost 插件。
首先,在 IDEA Goland 插件市场中搜索 Nocalhost,然后点击“安装”按钮进行安装,如下图所示。
![67edc80e6e1074e90b280f67cc23544d.png](https://img-blog.csdnimg.cn/img_convert/67edc80e6e1074e90b280f67cc23544d.png)
在安装 IDE 插件之后,Nocalhost 会自动下载 nhctl 工具,你可以在 Jetbrains Goland 的右下角查看下载进度,nhctl 是 Nocalhost 的核心组件,它为插件提供 Kubernetes API 调用能力。
集成远程 k8s 集群
接下来,添加 Kubernetes 集群,在右侧菜单栏中打开 Nocalhost 插件,如果你已经提前准备好了 K8s 集群,Nocalhost 就会自动识别,点击“Add”即可添加集群。
![898b24451ea441f7e574018848ed21ea.png](https://img-blog.csdnimg.cn/img_convert/898b24451ea441f7e574018848ed21ea.png)
在上面的第二步,选择k8s的kubeconfig,选择完后,会自动检测是否存在该集群:
![d00cc45e178af50062531bc33058c472.png](https://img-blog.csdnimg.cn/img_convert/d00cc45e178af50062531bc33058c472.png)
如果不存在该集群,会提示:
![aed3b7fe44a52c4e153a758ba80f3e62.png](https://img-blog.csdnimg.cn/img_convert/aed3b7fe44a52c4e153a758ba80f3e62.png)
最后,在 Add 完成功后,会在该菜单下看到集群相关的信息以及资源:
![bd6ea412bdc699d68226d8421dd5ca6f.png](https://img-blog.csdnimg.cn/img_convert/bd6ea412bdc699d68226d8421dd5ca6f.png)
部署应用
接着,我们就可以部署应用了,先来看看部署官方给的示例应用,首先鼠标移到default
命名空间位置右击,然后可以看到Deploy App:
![a5aa9643580371028690376a6836f1fe.png](https://img-blog.csdnimg.cn/img_convert/a5aa9643580371028690376a6836f1fe.png)
点击部署 app后,出现图:
![96e6dfab1820abf8d5099548f66273eb.png](https://img-blog.csdnimg.cn/img_convert/96e6dfab1820abf8d5099548f66273eb.png)
我们点击第四个按钮Deploy Demo
,此时,Nocalhost 将自动从 GitHub 克隆示例应用仓库,并将它部署到集群的 default 命名空间下。同时,此时,控制台就会打印如下日志:
![c8052fed3605d3821ab3f510803de2a9.png](https://img-blog.csdnimg.cn/img_convert/c8052fed3605d3821ab3f510803de2a9.png)
此时,表示应用部署成功,Nocalhost 将自动进行端口转发,并打开浏览器访问http://127.0.0.1:39080/productpage
示例应用页面,如下图所示:
![fb5812af26a0fd3e7cc830194945481b.png](https://img-blog.csdnimg.cn/img_convert/fb5812af26a0fd3e7cc830194945481b.png)
简单介绍一下这个示例应用,这是一个图书管理系统,展示了书籍的详情信息、评价、作者信息、评分。每部分信息都是由不同的微服务输出的,示例应用一共有 5 个微服务组成,它们分别是 Productpage 服务、Reviews 服务、Details 服务、Rattings 服务和 Authors 服务。其中,Productpage 服务负责输出首页以及请求其他的微服务,也是应用的入口,其他服务根据字面意思分别输出了其他的内容。
![b1d72bc8056ec8ab10bc90fb404b2616.png](https://img-blog.csdnimg.cn/img_convert/b1d72bc8056ec8ab10bc90fb404b2616.png)
秒级开发循环反馈
接下来我们来看一下如何使用 Nocalhost 打破传统的开发循环反馈,并获得秒级的 Kubernetes 应用开发体验。
我们在 Nocalhost 插件中点击 default 展开命名空间,然后点击 bookinfo 展开应用,点击 Workload 展开工作负载,最后,点击 Deployment 查看工作负载列表:
![f0b67cb3e818b262a763148d95c9eb44.png](https://img-blog.csdnimg.cn/img_convert/f0b67cb3e818b262a763148d95c9eb44.png)
此时,将鼠标移动到 authors 服务,点击右侧的“绿色锤子”按钮进入该服务的开发模式:
![84b8183a6c44a59df3838d9b40c36a47.png](https://img-blog.csdnimg.cn/img_convert/84b8183a6c44a59df3838d9b40c36a47.png)
然后,在弹出的对话框中选择“Clone from Git Repo”,并选择一个本地目录用来存储源码:
![51e16d70c1396546aef80617e6e2722b.png](https://img-blog.csdnimg.cn/img_convert/51e16d70c1396546aef80617e6e2722b.png)
首次打开会出现是否信任,直接点击信任:
![adcad22d4961eada521c1bdcaa2d36ab.png](https://img-blog.csdnimg.cn/img_convert/adcad22d4961eada521c1bdcaa2d36ab.png)
点击确认后, Nocalhost 将自动克隆 authors 服务的源码到所选择的目录下,并将源码通过新的 UI 窗口打开:
![efc53c870c69d18e921d316125264afd.png](https://img-blog.csdnimg.cn/img_convert/efc53c870c69d18e921d316125264afd.png)
此时,在新的窗口的右下角你会看到 Nocalhost 进入开发模式的提示,等待片刻后,将获得一个远端容器的终端:
![dc4050bd668cedbf21d1433767db38b3.png](https://img-blog.csdnimg.cn/img_convert/dc4050bd668cedbf21d1433767db38b3.png)
注意,这个终端并不是本地的终端,而是 authors 服务在开发模式下的终端。也就是说,在此终端下执行的所有命令实际上都是在 authors 服务的容器里执行的。此时,你可以在终端内执行 ls 命令来查看容器的文件目录:
![2f2829e0da52e41d2a3a09c58b7065fb.png](https://img-blog.csdnimg.cn/img_convert/2f2829e0da52e41d2a3a09c58b7065fb.png)
由于这个容器启动的逻辑是直接通过运行源码,所以这里有源码,并且执行go run app.go
:
![4dd6596da68ea5b9eca01ff013415fbc.png](https://img-blog.csdnimg.cn/img_convert/4dd6596da68ea5b9eca01ff013415fbc.png)
此时,我们可以任意改代码进行调试了吧~
![1001e7901f3627877436a04b33e16a78.png](https://img-blog.csdnimg.cn/img_convert/1001e7901f3627877436a04b33e16a78.png)
容器热加载
其实,可以看出 Nocalhost 是通过文件同步的技术来实现本地和远端代码一致的,在实际编码过程中,每次在本地修改源码后,我们往往需要手动重启容器内的业务进程才能看到编码效果。
那么,能不能更进一步,实现修改代码后自动重载呢?Nocalhost 同样也为我们提供了和语言无关的容器热加载,也就是说,当本地有任何代码变更时,Nocalhost 都会自动帮助我们重启容器内的业务进程,达到容器热加载的目的。接下来,我们一起来体验这个功能。首先,在当前 VS Code 窗口中重新打开 Nocalhost 插件,找到 authors 服务。此时,你将看到该服务左侧有一个“绿色锤子”图标,这表示这个服务正在开发模式当中,如下图所示:
![3fcdbbd8b2b01f2fdd3b3cc1cce3a4e1.png](https://img-blog.csdnimg.cn/img_convert/3fcdbbd8b2b01f2fdd3b3cc1cce3a4e1.png)
接下来,右击 authors 服务,选择一个选项 Remote Run:
![57f55caac75a5c34d46f5a4426ac31bc.png](https://img-blog.csdnimg.cn/img_convert/57f55caac75a5c34d46f5a4426ac31bc.png)
注意,在点击 Remote Run 之前,一定要先确保已经通过 Ctrl+C 的方式手动停止了容器内的业务进程,这可以避免重复运行业务进程导致的端口冲突。
现在,Nocalhost 将自动开启一个新的终端,并自动启动业务进程:
![ef6285728ddde2c120258b27b40a4ce9.png](https://img-blog.csdnimg.cn/img_convert/ef6285728ddde2c120258b27b40a4ce9.png)
到这里,可能有疑惑,Nocalhost 怎么知道我的业务的启动命令呢?答案是通过为 Nocalhost 配置启动命令。你可以通过点击 authors 服务右侧的“设置”按钮,在弹出的对话框中选择“取消”来查看配置文件中的 command.run 字段。实际上,Nocalhost 是通过运行配置的 run.sh 脚本来启动业务的。
![dff8f917ec69e11426a8bdf38eff2791.png](https://img-blog.csdnimg.cn/img_convert/dff8f917ec69e11426a8bdf38eff2791.png)
![3a7658ff49653ebf1465c3a665d136b5.png](https://img-blog.csdnimg.cn/img_convert/3a7658ff49653ebf1465c3a665d136b5.png)
最后,你可以在终端窗口中通过 Ctrl+C 的方式来中断容器热加载。到这里,Nocalhost 容器热加载的全过程就已经体验完了。
一键调试
除了容器热加载以外,Nocalhost 还为我们提供了便利的一键远程调试功能。同样地,找到 authors 服务,右击选择“Remote Debug”来进入远程调试。
![aad95e72e439c18543f759ff9f786916.png](https://img-blog.csdnimg.cn/img_convert/aad95e72e439c18543f759ff9f786916.png)
接下来,Nocalhost 就会以调试模式启动业务进程,然后通过 Kubernetes 端口转发的方式将远端的调试端口转发到本地,并控制调试器连接到调试端口。需要注意的是,由于 authors 服务是 Golang 编写的,所以调试依赖于本地的 Golang 开发工具,如果你的电脑里没有 Golang 开发环境,Nocalhost 将提示你安装相关工具和插件。进入调试后,你将看到窗口右下角出现准备连接调试器,如下图所示:
![c644c601590399d18312668592f5e696.png](https://img-blog.csdnimg.cn/img_convert/c644c601590399d18312668592f5e696.png)
后面就可以打断点进行Debug模式调试了。
在这个调试例子中,如果你用的是 M1 芯片的 Mac,那么你可能会发现在调试过程中 IDE 的调试器一直无法连接到远端容器,这时候,你还需要进行下面的操作。在 Nocalhost 插件中点击 authors 服务的“设置”按钮进入服务的开发配置页,并将 image 字段修改为 okteto/golang:1.19,然后,点击“红色锤子”退出 authors 服务的开发模式,退出完成后,再点击“Remote Debug”来进入调试模式即可。最后,要退出调试模式,你可以切换到 VS Code 终端菜单,并通过 Ctrl+C 的方式来终止调试进程。
![804f444ae41ada16082c9723a2a188e7.png](https://img-blog.csdnimg.cn/img_convert/804f444ae41ada16082c9723a2a188e7.png)
到此,就完整的带大家走一圈秒级体验本地远程调试k8s集群的应用服务了。谢谢大家关注~
下面给大家介绍几本好书,目前销售火热,有原理加实战,感兴趣可以点击下方链接购买。
开源项目
实践项目代码开源:https://gitee.com/damon_one/microservice-k8s
欢迎大家star、fork,欢迎联系我,一起学习。
号内回复“云原生”,获取云原生基础架构实践
云原生社区合肥站
云原生社区合肥站正式启动啦,欢迎Base合肥、关注云原生、长期从事云原生的同志们踊跃加入,云原生社区合肥站会因为你们的加入而变得更加美好~
详情参见Issue:https://github.com/cloudnativeto/community/issues/107
联系号主
欢迎关注个站
往期回顾
微服务自动化部署CI/CD
如何利用k8s拉取私有仓库镜像
个站建设基础教程
ArrayList、LinkedList 你真的了解吗?
大佬整理的mysql规范,分享给大家
如果张东升是个程序员
微服务架构设计之解耦合
浅谈负载均衡
Oauth2的认证实战-HA篇
Oauth2的授权码模式《上》
浅谈开发与研发之差异
浅谈 Java 集合 | 底层源码解析
基于 Sentinel 作熔断 | 文末赠资料
基础设施服务k8s快速部署之HA篇
今天被问微服务,这几点,让面试官刮目相看
Spring cloud 之多种方式限流(实战)
Spring cloud 之熔断机制(实战)
面试被问finally 和 return,到底谁先执行?
Springcloud Oauth2 HA篇
Spring Cloud Kubernetes之实战一配置管理
Spring Cloud Kubernetes之实战二服务注册与发现
Spring Cloud Kubernetes之实战三网关Gateway
点击 "damon8.cn" 获取更好的阅读体验!
❤️给个「在看」,是对我最大的支持❤️
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/8a7f2488c79e75a2cbdb3fe9344adcf9.gif)
秒级体验本地调试远程 k8s 中的服务
点击上方蓝色字体,选择“设为星标” 回复”云原生“获取基础架构实践 背景 在这个以k8s为云os的时代,程序员在日常的开发过程中,肯定会遇到各种问题,比如:本地开发完,需要部署到远程k8s集群,本地…...
![](https://img-blog.csdnimg.cn/img_convert/4e3e7c15d4a9b1576d005058ff4e1d73.png)
CV前沿方向:Visual Prompting 视觉提示工程下的范式
prompt在视觉领域,也越来越重要,在图像生成,作为一种可控条件,增进交互和可控性,在多模态理解方面,指令prompt也使得任务灵活通用。视觉提示工程,已然成为CV一个前沿方向! 下面来看看…...
![](https://www.ngui.cc/images/no-images.jpg)
Redis五大基础类型解析
1.String类型 特征:即存储字符串的类型,单个字符串存储量最大不超过512MB 常用业务场景:⽤来存储JSON序列化之后对象 底层编码: int编码 数据结构特点:ptr指针直接指向字符串常量池中对应字符串地址,而…...
![](https://www.ngui.cc/images/no-images.jpg)
在CSDN学Golang云原生(服务网格istio)
一,在Kubernetes上部署istio 在Kubernetes上部署istio,可以按照以下步骤进行: 安装Istio 使用以下命令从Istio官网下载最新版本的Istio: curl -L https://istio.io/downloadIstio | ISTIO_VERSION<VERSION> sh - 其中&…...
![](https://www.ngui.cc/images/no-images.jpg)
Golang 获取本地 IP 地址方法
在 Golang 中,使用 net 包可以很方便地获取到本机IP地址。 借助 net.InterfaceAddrs 方法 简单示例代码如下: package mainimport ("fmt""net" )func main() {addrList, err : net.InterfaceAddrs()if err ! nil {panic(err)}for…...
![](https://img-blog.csdnimg.cn/40b5e3074ab44b13b3eace4a8ab157bb.gif)
抖音seo短视频账号矩阵系统技术开发简述
说明:本开发文档适用于抖音seo源码开发,抖音矩阵系统开发,短视频seo源码开发,短视频矩阵系统源码开发 一、 抖音seo短视频矩阵系统开发包括 抖音seo短视频账号矩阵系统的技术开发主要包括以下几个方面: 1.前端界面设…...
![](https://img-blog.csdnimg.cn/c6509d9d3a8e4a9e916a60fd9abca45e.png)
运维高级--shell脚本完成分库分表
为什么要进行分库分表 随着系统的运行,存储的数据量会越来越大,系统的访问的压力也会随之增大,如果一个库中的表数据超过了一定的数量,比如说MySQL中的表数据达到千万级别,就需要考虑进行分库分表; 其…...
![](https://www.ngui.cc/images/no-images.jpg)
Mysql 忘记密码怎么重置密码(详细步骤)
每种方法都有其适用的情况,根据具体情况选择合适的方法。无论选择哪种方法,请务必在重置密码后及时删除临时用户并重新启动 MySQL 服务。 一、使用 mysqladmin 重置密码 停止服务 # systemctl 启动的使用这个停止 $ sudo systemctl stop mysql# mac 本机…...
![](https://img-blog.csdnimg.cn/bec187dcf3794afb97fe2ea3b7180fa2.png)
机器学习深度学习——图像分类数据集
👨🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——softmax回归(下) 📚订阅专栏:机器学习&&深度学习…...
![](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4f7d2562-49df-4956-9ae7-8351c56d1820/Untitled.png)
【PWN · 栈迁移】[BUUCTF]ciscn_2019_es_2
第一道栈迁移题目,跌跌撞撞理解了 前言 当前溢出可用空间比较少时(极端情况下仅能覆写ebp和ret),可以通过栈迁移的方式,扩大shellcode的容纳空间,其核心是将esp移动到一段shellocode开头。而esp总是由ebp赋…...
![](https://www.ngui.cc/images/no-images.jpg)
网络编程(13): 网络通信常用命令(后续待补充)
ifconfig 一般用于查看网卡信息 ping 一般用于侦测本机到目标网络主机的网络是否通常: ping ip/域名 telnet 可以用于指定ip地址和端口的侦听服务是否存在:telnet ip port, 也可以模拟客户端给服务器发数据 netstat 用于查看网络连接状态 -a: 显示所有选项 -t&#…...
![](https://img-blog.csdnimg.cn/f322a4a68dd14d2ea864a16c1daf7103.png#pic_center)
flask创建数据库连接池
flask创建数据库连接池 在Python中,您可以使用 Flask-SQLAlchemy 这个扩展来创建一个数据库连接池。Flask-SQLAlchemy 是一个用于 Flask 框架的 SQLAlchemy 操作封装,实现了 ORM(Object Relational Mapper)。ORM 主要用于将类与数据库中的表建立映射关系…...
![](https://img-blog.csdnimg.cn/218694ffae7447f2babd3817770ab72d.png)
C语言手撕顺序表
目录 一、概念 1、静态顺序表:使用定长数组存储元素。 2、动态顺序表:使用动态开辟的数组存储 二、接口实现 1、对顺序表的初始化 2、对数据的销毁 3、对数据的打印 4、检查是否需要扩容 5、尾插 6、头插 7、尾删 8、头删 9、在pos位置插入x …...
![](https://www.ngui.cc/images/no-images.jpg)
常见的排序算法
常见的排序算法 常见的排序算法包括: 冒泡排序(Bubble Sort):依次比较相邻的元素,将较大的元素交换到右侧,逐步将最大元素移动到末尾。插入排序(Insertion Sort):将数组…...
![](https://img-blog.csdnimg.cn/c7db2562c21849609346242897a99f21.png)
C#如何使用SQLite数据库?
文章目录 0.引言1.SQLite工具准备2.创建窗体项目并添加SQLite的命名空间3.编写使用SQLite代码4.结果展示 0.引言 SQLite是一个轻量级的嵌入式数据库,它的库文件非常小巧,不需要独立的服务器进程或配置。这使得它非常适合在资源受限的环境中使用ÿ…...
![](https://img-blog.csdnimg.cn/ddd3aac94f43422fa35b5024212e3906.png#pic_center)
如何将表格中的状态数据转换为Tag标签显示
考虑到系统前端页面的美观程度,通常通过Tag标签来代替某条数据中的状态信息。仅通过一点操作,便能够使得页面美观程度得到较大提升,前后对比如下所示。代码基于Vue以及Element-ui组件实现。 修改前: 修改后: 修改前…...
![](https://img-blog.csdnimg.cn/8f9b9a4cd08c47a2ab7744a8ef97553b.png)
centos中修改防火墙端口开放配置
1、直接进入文件修改 vim /etc/sysconfig/iptables 2、添加需要开放的端口 (1)添加需要开放的单个端口 4001 -A INPUT -m state --state NEW -m tcp -p tcp --dport 4001 -j ACCEPT (2)添加需要开放的某个网段端口 4001:4020 …...
![](https://img-blog.csdnimg.cn/ee3faf5f07924896acca330c525345b6.png)
程序设计 算法基础
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…...
![](https://img-blog.csdnimg.cn/6768aefca2d94aeca75dc9f695781911.png)
【数据结构】之十分好用的“链表”赶紧学起来!(第一部分单向链表)
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
![](https://img-blog.csdnimg.cn/3221201cb61b4e068383e49025cd9505.png)
ubuntu开机自启动
ubuntu开机自启动 1、建一个test.sh脚本,并写入 #!/bin/sh gnome-terminal -x bash -c ‘cd /home/文件路径/;python3 main.py’ exit 0 2、:wq!保存 3、创建rc-local.service文件(sudo vim /etc/systemd/system/rc-local.service)…...
![](https://www.ngui.cc/images/no-images.jpg)
Git将其他分支合并至主分支
主要思想: 把分支代码合并到master,合给谁,就先切换到谁的分支 1. 当前分支是dev,开发完成后,需要合并到master分支 先把该提交的提交,需要push的push完成后,再切换分支。 否则也会告诉你要提交…...
![](https://www.ngui.cc/images/no-images.jpg)
Python+request+pytest 接口自动化测试框架入门(与unittest的比较)
1. Pythonrequestpytest 接口自动化测试框架入门 - 简书 pytest和unittest的比较: pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: 简单灵活,容易上手支持参数化能够支持简单的单元测试和复杂的功能测试&a…...
![](https://img-blog.csdnimg.cn/7ee52d73e5964f50a250aaeb3d26b614.png)
数据结构——复杂度
总有一天你要一个人,再暗夜中,向那座桥走过去 文章目录 一、算法的复杂度 考察形式范例 二、算法的时间复杂度 大O的渐进表示法 常见的复杂度对比 例题:消失的数字 题目的三种思路 1.排序遍历 2.减法 3.单身狗思想 三、空间复杂度…...
![](https://img-blog.csdnimg.cn/094720b12ccd4b4995bcaad71ea1be52.png)
使用goldengate 迁移Oracle到postgresql
环境: --源端: IP:10.0.4.16 hostname:tencent Oracle数据库版本:12.2.0.1.0 ogg for oracle版本:19.1.0.0.4 SID:orcl --目标端: IP:10.0.4.16 hostname&#…...
![](https://img-blog.csdnimg.cn/5a119b0b1f404d2292eea90b9e93b8d0.png)
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…...
![](https://img-blog.csdnimg.cn/b12b7fb3c03e4ff6b5fc2c942d7ecc08.png)
服务器被爬虫恶意攻击怎么办?
在有预算的情况可以采购第三方服务防火墙,没钱就使用开源的WAF进行防护。 # WAF防火墙的基本防护原理 WAF(Web 应用防火墙)可以使用多种技术来防止恶意爬虫攻击,例如: 1. 黑名单:WAF 可以使用黑名单技术来…...
![](https://img-blog.csdnimg.cn/f4b3cb52f18545ce8ecd0550dbd077e4.png)
JavaScript正则表达式之座机号/手机号验证校验规则
引用:https://www.bilibili.com/read/cv18300539/ 本文对利用正则表达式对手机号码进行了验证 支持格式: 座机 :xxx-xxxxxxxx、xxxxxxxxxxxx …座机区号的横杠可有可无 手机:xxxxxxxxxxx JavaScript: var: checkPhone (rule,…...
![](https://img-blog.csdnimg.cn/16e8bbb87622490a863a9876317ecc60.jpeg)
黑客学习手册(自学网络安全)
一、首先,什么是黑客? 黑客泛指IT技术主攻渗透窃取攻击技术的电脑高手,现阶段黑客所需要掌握的远远不止这些。 二、为什么要学习黑客技术? 其实,网络信息空间安全已经成为海陆空之外的第四大战场,除了国…...
![](https://www.ngui.cc/images/no-images.jpg)
获取非叶子节点的grad(retain_grad()、hook)【为了解决grad值是None的问题】
在调试过程中, 有时候我们需要对中间变量梯度进行监控, 以确保网络的有效性, 这个时候我们需要打印出非叶节点的梯度, 为了实现这个目的, 我们可以通过两种手段进行, 分别是: retain_grad()hook 不过我感觉“hook”比“retain_grad()”要麻烦.....,所以我感觉还是…...
![](https://img-blog.csdnimg.cn/cefb6743a4484b21b87d3d084b6a7617.png)
JMeter(八):响应断言详解
响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-sample only , jmeter variable 关于应用范围,我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,…...
![](/images/no-images.jpg)
找人做网赌网站需要多少钱/seowhy培训
先简单看一下主过程: int MAXFLOW() {hights();prepare();while (!Q.empty()) {u Q.get;for each e in G (from u) push(e);if (!fixed(u)) reCalc(u);} }接下来介绍算法 预流推进算法给每一个顶点一个标号h(v),表示该点到t的最短路(在残量…...
![](https://img-blog.csdnimg.cn/img_convert/c86bca6aec7567eb4862493fcafd1bc8.png)
滨州正规网站建设价格/网络推广平台
地球人都知道,频率是移动通信系统(IMT)的最重要的资源,是血脉基础。运营商无时无刻不想获取“黄金”频率,有好的频率,事半功倍。对于广大通信从业者们,尤其是像小编这样研究5G终端的人ÿ…...
![](http://www.99danji.com/uploadfile/image/20150731/1438344834245630.jpg)
哪个网站有手机/策划公司一般怎么收费
很多用户都想将系统升级到Win10,但是却不知道怎么激活Win10正式版的方法,其实不同版本激活正式版Win10的方法秘钥不同,下面99安卓网小编就分享一些激活Win10正式版的方法和秘钥,供大家参考。 目前win10正式版已经发布,…...
![](https://img-blog.csdnimg.cn/20210223215703877.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2ODkzNDk3,size_16,color_FFFFFF,t_70)
通过网站开发工具怎么改自动跳网站/百度推广和百度竞价有什么区别
网站运营指标统计案例-★★★★★数据需求代码实现数据 我们后续需要关注的数据 1.总共有多少条?2.不重复的IP有多少?3.来源URL字段计数并排序 需求 需求1.PV:PageView ,页面访问量, 访问一次就是一个PV,上面的访问日志有多少条就有多少PV 分析:读取文件,把该RDD直接count…...
![](http://davyyew.blog.51cto.com/attachment/200912/200912101260434121218.jpg)
平台网站开发/52种新颖的促销方式
重要国策《文化产业振兴规划》于9月26日正式对外公布。巧合的是,就在前一天(9月25日 ),盛大游戏(SDG)成功在NASDAQ上市,并且创下了美股IPO规模之最(10亿美元)。1…...
![](https://miro.medium.com/max/9999/0*wvRGepVyFVNyd-Nt.png)
万户做网站好不好/网站设计的流程
kotlin jsonWelcome to a brand new tutorial for Easy Android Programming. In the tutorial, we are going to learn about the basic usage of retrofit in kotlin for fetching JSON from a remote server.欢迎使用全新的Easy Android编程教程。 在本教程中,我…...