记录精彩的程序人生

Git 重装配置

重装 git 为最新版本 yum-yinstallhttps://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.7-1.x86_64.rpmyumremovegityuminstallgitgit--versiongit 全局配置 gitconfig--globaluser.name"yourusername"gitconfig--globalu

Docker 内时间修正

Docker 内时间修正通过 Dockerfile 里写入 RUNln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtimeRUNecho'Asia/Shanghai'>/etc/timezone 示例:FROMfiadliel/java8-jreVOLUME/tmpADDapi_h5-0.1.jarapp.jarRUNln-sf/usr/share/zonein

Linux 服务器基本部署配置

Linux 服务器配置申请完 Linux 服务之后,预装好 CentOS8.X 系统,我们需要通过 SecureCRT 或 Xshell 等工具登录 Linux 服务器,并对服务器做一些简单必要的配置,包括创建普通用户、添加 sudoers、配置 $HOME/.bashrc 文件。第一步,用 Root 用户登录 Linux 系统,并创建普通用户。一般来说,一个项目会由多个开发人员协作完成,为了节省企业成本,公司不会给每个开发人员都配备

Part 35 - Go 语言学习 - 连接 Mysql 操作

连接 Mysql 操作 packagemainimport("fmt"_"github.com/go-sql-driver/mysql""github.com/jmoiron/sqlx")typePersonstruct{UserIdint`db:"user_id"`Usernamestring`db:"username"`Sexstring`db:"sex"`Emailstring`db:"email"

Part 34 - Go 语言学习 - Go 实现 UDP 通信

Go 实现 UDP 通信服务端 packagemainimport("fmt""net")funcmain(){listen,err:=net.ListenUDP("udp",&net.UDPAddr{IP:net.IPv4(0,0,0,0),Port:30000,})iferr!=nil{fmt.Println("listenfailed:",err)return}deferfunc(){err:=lis

Part 33 - Go 语言学习 - Go 实现 TCP 通信

Go 实现 TCP 通信服务端 packagemainimport("bufio""fmt""net")funcprocess(connnet.Conn){deferconn.Close()for{reader:=bufio.NewReader(conn)varbuf[128]byten,err:=reader.Read(buf[:])//读取数据 iferr!=nil{fmt.Println("readfa

Part 32 - Go 语言学习 - Gin 上传文件处理

Gin 上传文件处理单文件上传 r:=gin.Default()//限制上传最大尺寸 r.MaxMultipartMemory=8<<20r.POST("/upload",func(c*gin.Context){file,err:=c.FormFile("file")iferr!=nil{c.String(500,"上传图片出错")}//c.JSON(200,gin.H{"message":file.He

Part 31 - Go 语言学习 - Gin 表单参数处理

Gin 表单参数处理 packagemainimport("fmt""github.com/gin-gonic/gin""net/http")funcmain(){r:=gin.Default()r.POST("/form",func(c*gin.Context){types:=c.DefaultPostForm("type","post")username:=c.PostForm("username"

Part 30 - Go 语言学习 - 分布式系统

分布式系统分布式特征多个节点容错性可扩展性(性能)固有分布性消息传递对外:REST(通常是 HTTP 协议)模块内部:RPC(序列/反序列化)模块之间:中间件、REST 完成特定需求分布式 vs 为服务对比分布式:指导节点之间如何通信微服务:鼓励按业务划分模块微服务架构通过分布式架构来实现多层架构 vs 微服务架构微服务架构具有更多的“服务”,每个服务可能有自己的流水线微服务通常需要配合自动化测试,部署,服务发现

Part 29 - Go 语言学习 - Gin 框架使用

gin 框架使用 packagemainimport("github.com/gin-gonic/gin""go.uber.org/zap""math/rand""time")funcmain(){r:=gin.Default()logger,err:=zap.NewProduction()iferr!=nil{panic(err)}//Middleware 调用 r.Use(func(c*gin.Cont