Mac + Docker + K8S 本地搭建K8S集群
建议采用阿里云的k8s-for-docker-desktop, 同时可以解决经常遇到的 Docker for Desktop 中的 K8S 一直卡在 starting 状态。
Nginx 面试 40 连问,快顶不住了~~
来源:blog.csdn.net/wuzhiwei549/article/details/122758937 什么是Nginx?Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网
php+redis实现超时取消订单功能
业务场景:秒杀案例秒杀业务逻辑:多个用户同时抢单,通过mysql行锁抢到的用户进入待支付页面(倒计时)。 当用户没有支付订单超时时则取消该订单并归还库存。 应用thinkphp + redis + workerman(可以自定义命令常驻) thinkphp安装workerman。这里就过了,thinkphp手册去找。安装好redis及扩展。用宝塔的直接搞就完了,过。生产者:用户创建订单向
PHP高并发商品秒杀问题的解决方案
前言秒杀会产生一个瞬间的高并发,使用数据库会增加数据库的访问压力,也会降低访问速度,所以我们应该使用缓存,来降低数据库的访问压力;可以看出这里的操作和原来的下单是不一样的:产生的秒杀预订单不会马上写入数据库,会先写入缓存,等用户支付成功时,修改状态,写入数据库。 假设num是存储在数据库中的字段,保存了被秒杀产品的剩余数量。 if($num > 0){ //用户抢购成功,记录用户信
GO项目实战 — Gorm格式化时间字段
goshop开源项目的更新 备注:前面项目中用到的代码已经分享到GitHub中去了,并且以后所有项目中会出现的代码都会提交上去,欢迎查阅。感兴趣的可以点个star哦~https://gitee.com/jobhandsome/goshop/ 在使用 gorm 查询时,如果未对时间字段进行处理,结构体内的字段类型咱们使用的是 time.Time : type Model struct {
Go项目实战—参数绑定,类型转换
goshop开源项目的更新 备注:前面项目中用到的代码已经分享到GitHub中去了,并且以后所有项目中会出现的代码都会提交上去,欢迎查阅。感兴趣的可以点个star哦~https://gitee.com/jobhandsome/goshop/ 最近在研究微服务框架go-zero,没有更新,在这里说声抱歉,后面会持续更新新的功能。请继续关注~~~~ 今天考虑参数绑定获取。这里肯定有些疑惑,之
从一个例子看Go的逃逸分析
关注公众号 「程序员小乔」 1. 从一个例子开始下面是一段 c 代码,函数 getStr 生成了 a-z 的串,我们分别在函数内部和 main 中对字串进行了输出。 //例1.1 #include <stdio.h> //返回字串 char* getStr(){ //char数组 函数栈上分配内存 char buf[27]; int
Go 处理大数组:使用 for range 还是 for 循环?
我们知道,Go 的语法比较简洁。它并不提供类似 C 支持的 while、do...while 等循环控制语法,而仅保留了一种语句,即 for 循环。 for i := 0; i < n; i++ { ... ... } 但是,经典的三段式循环语句,需要获取迭代对象的长度 n。鉴于此,为了更方便 Go 开发者对复合数据类型进行迭代,例如 array、slice、channe
从项目的一个 panic 说起:Go 中 Sync 包的分析应用
项目开发中遇到一个错误 “fatal error: concurrent map read and map write”。 有过一两年 Golang 开发经验的同学应该都不陌生,这是 Golang 内建的 map 并发非安全 导致的。 解决办法也不复杂 —- 用 sync.map 代替了内建的 map 。 //初始化,多维度数据分开 s.pmap = new(sync.Map) s.tm
GO项目实战—开发上传图片功能 【20220527更新】
goshop开源项目的更新备注:前面项目中用到的代码已经分享到GitHub中去了,并且以后所有项目中会出现的代码都会提交上去,欢迎查阅。地址 goshop 感兴趣的可以点个star哦~https://gitee.com/jobhandsome/goshop/ 今天图片上传功能,下面是技术点: 限制图片上传的类型:jpg|png|jpeg保存图片并以时间(天)作为动态目录存储接下来咱
如何判断一个 interface{} 的值是否为 nil ?
引言在开始之前,先考你一个非常 Go 味的经典问题:如何判断一个 interface{} 的值是否为 nil ? 这也是面试有可能会被问到的一个问题,这个问题很 “迷”,平时没有特别留心的朋友,很容易在这边裁了。 我相信很多人会下意识的回答,直接 v == nil 进行判断不就好了吗? 很久之前,我也是那么想的,可写了个 demo 后,才发现事情没那么简单。 请看下面这段代码,可以先猜测一
Go项目实战之验证码的生成和使用(易扩展方式)【goshop开源项目 | 20220516更新】
封装验证码生成,验证码验证等功能,以便多复用;封装session的中间件