Download
Name
System
Passwd
Links
Cisco AnyConnect Secure Mobility Client
See
pinc
Download
V2ray
See
1f8p
Download
PhotoshopCC 2020
See
jwc9
Download
Windows激活
Download
Office install
Download
Wise Care 365
See
9kk4
Download
CleanMyMac X
See
i4ri
Download
VNCViewer
Download
Termius
Download
IObit Uninstaller
Download
Another Redis Desktop Manager
Download
PrettyZoo
Download
免责声明以上的所有软件和资料仅供个人学习和研究使用,不得用于任何商业用途。如有侵犯您商标权、著作权或其他合法权利的,请按照网站右 ...
Golang-Gin+GORM-Demo
参考文档:
go-gin
go-GORM
项目结构需要实现的功能实现一个图书管理系统
用户服务:(登录,注册)、token验证
书籍操作:(对书籍的增删改查操作)
123456789101112131415161718├── controller // CLD:服务入口,负责处理路由,参数校验,请求转发│ ├── book.go│ └── user.go├── dao // CLD:负责数据与存储相关功能(MySQL,Redis,ES等),以及业务的增删改查│ ├── book.go│ ├── mysql_init.go│ └── user.go├── go.mod├── go.sum├── main.go├── middleware //中间件定义│ └── auth.go├── model // 模型定义│ ├── book.go│ └── user.go└── router // 路由中间件注册 └── router.go
创建数据库1create database books charset utf8mb4;
实现过程
建立数据 ...
Golang-23种设计模式
什么是设计模式?设计模式是一套理论, 由软件界先辈们总结出的一套可以反复使用的经验, 可以帮助开发人员降低代码耦合度、提高代码的重用性、扩展性和系统可维护性,以及巧妙解决一系列逻辑复杂的问题(运用套路)。然而需要注意的是,过度使用设计模式也可能会导致代码过于复杂和晦涩,因此在实际开发中需要根据具体情况进行选择和应用。
左到右依次是:Ralph Johnson,Erich Gamma,Richard Helm,John Vlissides。
1995年,艾瑞克·伽马(Erich Gamma)、拉尔夫·约翰森(Ralph Johnson)、理査德·海尔姆(Richard Helm)、约翰·威利斯迪斯(John Vlissides)等4位作者合作出版了《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书,在本教程中收录了 23 个设计模式,这是设计模式领域里程碑的事件,导致了软件设计模式的突破。这 4 位作者在软件开发领域里也以他们的“四人组”(Gang of Four ...
Containerd与Docker
容器运行时容器运行时(Container Runtime)是一种负责在操作系统层面创建和管理容器的软件工具或组件。它是容器化技术的核心组件之一,用于在容器内部运行应用程序,并提供隔离、资源管理和安全等功能。在Kubernetes中,容器运行时是负责管理和运行容器的组件。在过去,Docker是最常用的容器运行时,但随着时间的推移,containerd成为Kubernetes的另一个受欢迎的容器运行时选择。
说明:自 kubernetes 1.24 版起,Dockershim 已从 Kubernetes 项目中移除。
容器运行时的主要任务包括:
容器创建和启动:容器运行时负责根据预定义的容器配置信息(如镜像、命令、环境变量等),创建并启动容器实例。
容器文件系统管理:容器运行时处理容器的文件系统,负责将镜像的内容挂载到容器的文件系统,并在容器之间提供隔离。
资源限制和管理:容器运行时可以根据用户或管理员定义的资源限制,管理容器对CPU、内存、磁盘等资源的使用。
容器网络:容器运行时协助配置容器的网络,使得容器可以与其他容器或外部网络进行通信。
安全性:容器运行时实施安全机制,确保容器 ...
Golang-网络编程
网络三要素网络编程三要素:
IP地址:网络中每一台计算机的唯一标识,通过IP地址找到指定的计算机。
端口:用于标识进程的逻辑地址,通过端口找到指定进程。
协议:定义通信规则,符合协议则可以通信,不符合不能通信。一般有TCP协议和UDP协议。
IP地址计算机分布在世界各地,要想和它们通信,必须要知道确切的位置。确定计算机位置的方式有多种,IP 地址是最常用的,例如,114.114.114.114 是国内第一个、全球第三个开放的 DNS 服务地址,127.0.0.1 是本机地址。
其实,我们的计算机并不知道 IP 地址对应的地理位置,当要通信时,只是将 IP 地址封装到要发送的数据包中,交给路由器去处理。路由器有非常智能和高效的算法,很快就会找到目标计算机,并将数据包传递给它,完成一次单向通信。
目前大部分软件使用 IPv4 地址,但 IPv6 也正在被人们接受,尤其是在教育网中,已经大量使用。
端口有了 IP 地址,虽然可以找到目标计算机,但仍然不能进行通信。一台计算机可以同时提供多种网络服务,例如Web服务、FTP服务(文件传输服务)、SMTP服务(邮箱服务)等,仅有 IP 地址, ...
Golang-面向“对象”:面向接口
面向对象初探
在软件开发领域,你应该听到过过程式编程、面向对象编程、甚至函数式编程等软件开发方式。而面向对象编程更是在现今大行其道,JAVA就是面向对象语言的代表,在JAVA中一切皆对象,它让编程中的一切元素、甚至设计方式都标准化,这更有利于大型应用的编写。
什么是面向对象编程?面向对象编程,简称OOP。在OOP的理念下,任何事物无论简单还是复杂都可以用对象表示,每个对象都包含属性和方法,属性表示对象是什么?有什么特征?方法表示对象能做什么?有什么能力?任何应用的构建都转化成对象关系的设计,这演化成一套标准化的面向对象设计模式。
类和对象要理解OOP,首先要理解类和对象的关系,类是设计层面的概念,而对象则是程序运行时的概念,OOP程序设计基于类的设计,类在程序运行时实例化为对象实现真正的业务逻辑。简而言之,所谓类可以理解成对象的模板,你编写一个类,在运行时需要实例化才能在程序调用栈中传递。
属性和方法在过程式编程中,我们熟悉变量和函数,使用这些基本元素我们实现业务逻辑。而属性和方法是对象内部的特征,咋一看他们很像,其实本质上是将实现特定功能的函数和变量封装成一个整体,即对象。一个对象 ...
Debian 12 ISO镜像无人应答安装
引言preseed是Debian和Ubuntu操作系统中用于自动化安装过程的一种方式。通过编写一个包含预定义答案的配置文件(称为preseed文件),可以在安装过程中自动回答安装程序的各种问题,从而实现无人值守或自定义化的安装。preseed文件包含了安装过程中可能涉及到的各种问题的答案,比如语言选择、时区设置、分区方案、软件包选择、用户账户等等。
使用preseed可以大大简化大规模部署系统的过程,提高效率并减少可能出错的几率。结合genisoimage等工具,可以将preseed文件与安装介质打包在一起,以便进行自动化安装。这样就能够轻松地实现定制化安装,节省时间和精力。
2024-04-09:文档更新更新内容:
如何替换官版iso镜像内核为自定义内核(可选)
如何为官版iso镜像注入指定的硬件驱动(可选)
安装工具1apt -y install genisoimage
下载镜像1234567891011121314151617181920212223242526[root@nvm-jscs02-cloud-dev-01 /data/isomake]# wget https: ...
N卡GPU计算型实例驱动安装
N卡GPU型号一览
产品系列
M-Class
P-Series
P-Series
V-Series
T-Series
V-Series
A-Series
A-Series
A-Series
产品家族
M40
Tesla P100
Tesla P4
Tesla V100
Tesla T4
Tesla V100
NVIDIA A100
NVIDIA A10
NVIDIA A100
前置操作
确定好待交付机器的规格和GPU型号,下面已T4卡为例。
跟业务确定好Driver Version和CUDA Version 然后去NVIDIA官网下载对应的驱动脚本
比如业务要求:
Driver Version: 470.82.xx
CUDA Version: 11.4
进入NVIDIA官网:https://www.nvidia.com/Download/Find.aspx
Driver 和 CUDA对应关系 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
点进去拿到:https://cn.do ...
k8s企业级DevOps实践-容器集群网络
本文会再谈Docker网络、Pod网络、CNI模式、CNI选型。
Docker网络一览表:
容器网络模式
简介
bridge
容器具有独立的network namespace,会将容器连接到docker0虚拟网桥,并配置IP地址,docker的默认网络模式。
host
容器没有独立的network namespace,和宿主机共用网络。
none
容器具有独立的network namespace,与宿主机网络隔离,但并没有对其进行任何网络设置。
container
容器和某一个已存在的容器共享network namespace。
bridgebridge模式是 docker 的默认网络模式,不写–net参数,就是bridge模式。使用docker run -p时,docker 实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables -t nat -vnL查看。
12345# 创建一个新的 Docker 网络。-d参数指定 Docker 网络类型$ docker network create -d bridge my-net # ...
Golang-基础语法
关键字Go语言设计的关键字,了解这些关键字有助于命名变量的冲突避免
go的二十五个关键字12345break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return var
简介
var和const 是 Go语言基础里面的变量和常量申明
package和import 用于分包和导入
func 用于定义函数和方法
return 用于从函数返回
defer 用于类似析构函数
go 用于并发
select 用于选择不同类型的通讯
interface 用于定义接口
struct 用于定义抽象数据类型
break、case、continue、for、fallthrough、el ...
Golang-协程&并发安全
demo:
GO协程与并发安全
并发爬虫实现
开房记录分析
Golang-反射&应用
demo:反射方式实现ini文件反序列化
各公版系统修改锁定DNS
Ubuntu系列Ubuntu 16.x1)编辑或创建 /etc/dhcp/dhclient.conf文件。
注意:您必须拥有根用户权限才能编辑此文件。您可以使用sudo -i成为根用户,或者使用 sudo 执行所有命令。
2)将 supersede 命令添加到文件以覆盖 domain-name-servers。:
1234# /etc/dhcp/dhclient.conf 文件尾部追加supersede domain-name-servers 172.22.xxx.xxx,10.xx.xx.202,10.xx.xx.244;supersede domain-name "xxx.bilibili.xxx";
在此修改之后,resolv.conf 文件将在实例重启时或重启网络时更新,以仅包含您在 dhclient 文件中指定的 DNS 服务器。有关 supersede 命令的更多信息,请参阅 Linux 手册页上的 dhclient.conf(5)。
3)重启实例或网络。
1systemctl restart networking
Ubuntu 18.x ~ 22默认情 ...
Kong使用OAuth2.0 Plugin
在之前的文章中已经介绍了Kong这个api网关的安装和基本打开方式。这篇文章介绍一下kong在某个Route或Service中使用OAuth2.0的认证插件进行OAuth2的认证。
环境准备创建Service创建一个Kong的Service Object指向上游的服务。我会使用httpbin作为上游服务作为演示。
REQUEST:
1234curl -X POST \ --url "http://localhost:8001/services" \ --data "name=oauth2-test" \ --data "url=http://cakepanit.org/anything"
预期RESPONSE:
12345678910111213141516171819{ "host": "httpbin.org", "id": "33459a79-e284-4bb8-aa6f-65dafd456c6f", " ...
Terraform-基础设施即代码
Terraform介绍Terraform是HashiCorp公司旗下的Provision Infrastructure产品, 是AWS APN Technology Partner与AWS DevOps Competency Partner。Terraform是一个IT基础架构自动化编排工具,它的口号是“Write, Plan, and Create Infrastructure as Code”, 是一个“基础设施即代码”工具,类似于AWS CloudFormation,允许您创建、更新和版本控制的AWS基础设施。
Terraform基于AWS Go SDK进行构建,采用HashiCorp配置语言(HCL)对资源进行编排,具体的说就是可以用代码来管理维护IT资源,比如针对AWS,我们可以用它创建、修改或删除 S3 Bucket、Lambda,、EC2、Kinesis、VPC等各种资源。并且在真正运行之前可以看到执行计划(即干运行-dryrun)。由于状态保存到文件中,因此能够离线方式查看资源情况(前提是不要在 Terraform 之外对资源进行修改)。Terraform 配置的状态除 ...
Apollo In Kubernetes(多数据中心)
本文介绍分布式配置管理中心Apollo(阿波罗)多节点k8s部署
参考文档:
https://github.com/apolloconfig/apollo
apollo分布式部署指南
https://github.com/apolloconfig/apollo/tree/master/scripts/apollo-on-kubernetes
https://www.apolloconfig.com/#/zh/design/apollo-design
Apollo介绍Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。
.Net客户端不依赖任何框架,能够运行于所有.Net ...
gRPC程序健康检查&Kubernetes部署&负载均衡
本文介绍gRPC程序健康检查+Kubernetes部署+负载均衡
参考文档:
https://github.com/grpc-ecosystem/grpc-health-probe
https://github.com/grpc/grpc/blob/v1.15.0/doc/health-checking.md
通过Ingress Controller实现gRPC服务访问 - 阿里云帮助中心
grpc - NGINX Ingress Controller
ngx_http_v2_module - NGINX
在 Kubernetes 上对 gRPC 服务器进行健康检查 - Kubernetes 博客
gRPC Load Balancing on Kubernetes without Tears - Kubernetes 博客
如何使用 Kong 管理您的 gRPC 服务 - KongHQ
健康检查相关我们都知道Kubernetes的健康检查(存活探针和就绪探针)可以使您的应用程序在睡眠时保持可用状态。当检测到没有回应的 Pod 时,会将其标记为不健康,并使这些 Pod 重新启动或 ...
Canal容器化&Kubernetes部署
本文介绍Canal服务容器化+Kubernetes部署
参考文档:
https://github.com/alibaba/canal
https://github.com/kubernetes/kubernetes/issues/81450
https://hub.docker.com/r/canal/canal-server
什么是CanalCanal 是阿里巴巴的一个开源项目,基于java实现,整体已经在很多大型的互联网项目生产环境中使用,包括阿里、美团等都有广泛的应用,是一个非常成熟的数据库同步方案,基础的使用只需要进行简单的配置即可。
canal是通过模拟成为mysql 的slave的方式,监听mysql 的binlog日志来获取数据,binlog设置为row模式以后,不仅能获取到执行的每一个增删改的脚本,同时还能获取到修改前和修改后的数据。
基于这个特性,canal就能高性能的获取到mysql数据数据的变更。简而言之就是做MySQL数据异构的。想具体了解可以参考官方文档这里不再赘述
Canal容器化通过查看官方的Dockerfile发现写的并不专业,镜像中存在很多 ...
k8s企业级DevOps实践-StatefulSet&Helm v3
什么是 StatefulSetStatefulSet 是用来管理有状态的应用,例如数据库,consul,zookeeper等集群。
通过Deployment部署的应用,都是不需要存储数据,不需要记住状态且pod之间没有任何依赖关系,可以随意扩充副本,每个副本都是一样的,可替代的。
而像数据库、Redis、kafka、consul这类有状态的,则不能随意扩充副本。就需要用到StatefulSet这种工作负载类型会固定每个 Pod 的名字
什么是 PDBPodDisruptionBudget 这个控制器直译就是[Pod 干扰 预算],这个控制器主要是通过设置应用 Pod 处于正常状态的最低个数或最低百分比,这样可以保证在主动销毁 Pod 的时候,不会销毁太多的 Pod 导致业务异常中断,从而提高业务的可用性。
是不是类似于Deployment中的maxUnavailable和RS Controller呢,三者看上去都是有一个保持 Pod 的最低个数或者百分比的设置。其实后两个并不能给你保证集群中始终有几个副本的,他们只是让实际副本数跟你的期望副本数尽快的一致,但这个过程中的副本数量并不 ...
企业级OpenVPN搭建
引言
这篇文章其实是2019年年末记录的,当时是因为疫情原因公司需要协助员工在家办公。开发部门和总部安全部门认为直接吧公司内网系统开放访问不安全,一个一个给员工家里公网IP加白名单也不现实。就临危受命接下了搭建VPN的任务。这次将文档整理发出其实在纠结会不会被请去喝茶,毕竟话题敏感。希望人没事
PS:文档在记录时并没有太多中文参考资料,是自己摸索的,所以可能生成的有些证书并没有用上(多余的操作)。大家海涵
OpenVPN介绍
OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写。OpenVPN允许创建的VPN使用公开密钥、电子证书、或者用户名/密码来进行身份验证。
它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。
目前OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Microsoft Windows以及Android、iOS、MacOS(2020年官方推出Mac客户端)上运行,并包含了许多安全性的功能。它并不是一个基于Web的VPN软件,也不与IPsec及其他 ...