Go-网络编程
Go的网络编程TCP什么是TCPTCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网际协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议,数据像水流一样传输,会存在黏包问题。 TCP的工作流程服务端: 监听端口 接收客户端请求连接 创建goroutine处理连接 客户端: 建立与服务端的连接 进行数据收发 关闭连接 UDP什么是UDPUDP协议(User Datagram Protocol)中文名称是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,不需要建立连接就能直接进行数据发送和接收,属于不可靠的、没有时序的通信,但是UDP协议的实时性比较好,通常用于视频直播相关领域。 TCP粘包主要原因就是tcp数据传递模式是流模式,在保持长连接的时候可以进行多次的收和发。 “粘包”可发生在发送端也可发生在接收端: 1...
版本控制工具-Git
版本控制工具-Git什么是gitGit是一个版本控制工具,在编程中用于进行管理代码 安装GitGit安装 12345678910# 一些常见安装罗列# mac安装brew install git# Windows 安装https://git-scm.com/download/win# linux 安装yum install -y git 配置Git1.配置全局用户名和电子邮箱(可跳过)12git config --global user.name "git账户名”git config --global user.email "注册git所用邮箱" 2.配置ssh(Mac为例)12345# /Users/xxx/目录cd .ssh# xxx@xxx.com 注释ssh-keygen -t rsa -C xxx@xxx.com 回车之后 输入密钥 3.添加密钥到github 123# id_rsa 是上面回车输入的同名vim id_rsa.pubssh -T git@github.com 4.因为忽略了第一步(在这可以只设置当前的)...
只关闭chrome深色模式
只关闭chrome深色模式背景chrome会自动根据系统的深浅色模式,进行匹配。 单独关闭chrome深色模式12345678# 单独关闭defaults write com.google.Chrome NSRequiresAquaSystemAppearance -bool YES# 重启chrome 生效# 开启深色模式defaults write com.google.Chrome NSRequiresAquaSystemAppearance -bool NO# 重启chrome 生效
部署K8s(脚本版本)
部署K8s(脚本版本)文件位置:https://github.com/Piwriw/k8s_base/tree/master/k8s-setup 分发文件(push-file.sh)12345678910111213141516#!/bin/bashset -e# 源文件路径source_file="../k8s-setup"# 目标主机列表target_hosts=( "root@10.10.103.79:/root" "root@10.10.103.80:/root" "root@10.10.103.81:/root")# 循环迭代目标主机列表,并使用 scp 命令将文件复制到每个主机for target_host in "${target_hosts[@]}"; do scp -r "$source_file" "$target_host"done 部署包括docker(set-up.sh)⚠️注意修改12...
Harbor
Harbor什么是HarborHarbor 是一个开源的企业级容器镜像注册中心,用于管理和存储 Docker 镜像以及其他容器化应用的相关资源。它允许团队或组织在内部搭建自己的容器镜像仓库,以便更好地控制镜像的分发、访问和安全性。 Harbor的安装安装最小配置最低建议配置: CPU:2 核 内存:4 GB 存储:40 GB 通过docker-compose部署Harbor离线安装12# 下载安装包wget https://github.com/goharbor/harbor/releases/download/v2.8.4/harbor-offline-installer-v2.8.4.tgz 修改harbor.yaml中hostname为harborip,https/certificate和private_key为 12certificate: /root/edgestack-setup/harbor/cert/cert.certprivate_key: /root/edgestack-setup/harbor/cert/key.key 生成cert....
Bash入门
Bash入门什么是bashBash 是 Unix 系统和 Linux 系统的一种 Shell(命令行环境),是目前绝大多数 Linux 发行版的默认 Shell 什么是shell学习 Bash,首先需要理解 Shell 是什么。Shell 这个单词的原意是“外壳”,跟 kernel(内核)相对应,比喻内核外面的一层,即用户跟内核交互的对话界面。 首先,Shell 是一个程序,提供一个与用户对话的环境。这个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境(command line interface,简写为 CLI)。Shell 接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户。 查看当前使用是shell是什么 12echo $SHELL/bin/bash 当前正在使用的 Shell 不一定是默认 Shell,一般来说,ps命令结果的倒数第二行是当前 Shell。 1234$ ps PID TTY TIME CMD 4467 pts/0 00:00:00 bash 5379 pts/0 00:00:00 ps ...
Docker配置远程访问
Docker配置远程访问暴力修改这种就很简单暴力,直接修改/lib/systemd/system/docker.service文件,注释掉默认的 ExecStart 并添加新的 ExecStart 配置: 12# ExecStart=/usr/bin/dockerd -H fd://ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 然后重启 docker.service: 12$ sudo systemctl daemon-reload$ sudo systemctl restart docker.service 这样 docker 就开始监听 tcp 端口 2375 了 systemctl修改是使用 systemctl edit docker 来调用文本编辑器修改指定的单元或单元实例,ubuntu 默认调用的是 nano 编辑器,不是很好用,如果不熟悉 nano 编辑器的操作可以使用 vim 编辑器。主要也就是新建或修改 /etc/systemd/system/do...
K8s浅学
k8s1、安装(v.1.17.1,docker-cri)1.1 env.bash123456789101112131415161718192021222324252627282930313233343536373839404142434445#!/bin/bash# 在 master 节点和 worker 节点都要执行# 卸载旧版本yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine# 安装并启动 docker(cri)yum install -y docker-ce-19.03.5 docker-ce-cli-19.03.5 containerd.iosystemctl enable dockersystemctl start docker# 关闭 防火墙systemctl stop firew...
常见的分布式服务发现和服务注册方案
常见的分布式服务发现和服务注册方案 Feature Consul Zookeeper Etcd Eureka 服务健康检查 服务状态,内存,硬盘等 (弱)长连接,keepalive 连接心跳 可配支持 多数据中心 支持 — — — kv存储服务 支持 支持 支持 — 一致性 raft paxos raft — CAP定理 CA CP CP AP 使用接口(多语言能力) 支持http和dns 客户端 http/grpc http(sidecar) watch支持 全量/支持long polling 支持 支持 long polling 支持 long polling/大部分增量 自身监控 metrics — metrics metrics 安全 acl /https acl https支持(弱) — Spring Cloud集成 已支持 已支持 已支持 已支持 consulConsul有多个组件,但总体而言,它是基础架构中的一款服务发现和配置的工具。 它提供了几个关键功能: 服务发现:Con...
常见的分布式锁解决方案
常见的分布式锁解决方案 基于MySQL的悲观锁、乐观锁 基于redis的分布式锁 基于zookeeper的分布式锁 基于MySQL的悲观锁、乐观锁悲观锁悲观锁是基于一种悲观的态度类来防止一切数据冲突,它是以一种预防的姿态在修改数据之前把数据锁住,然后再对数据进行读写,在它释放锁之前任何人都不能对其数据进行操作,直到前面一个人把锁释放后下一个人数据加锁才可对数据进行加锁,然后才可以对数据进行操作,一般数据库本身锁的机制都是基于悲观锁的机制实现的 MySQL for update的加锁: 12345678910111213# 向mysql申请一把锁 for update, 使用for update 的时候注意,默认每个语句mysql都是默认提交# 需要关闭@@autocommitselect @@autocommit;set autocommit=0;select @@autocommit;select * from inventory where goods=420 for update;# 具体业务# 释放锁commit;#这是一个行锁#明确查询条件,就锁住指定数据 &...









