首页
关于叶子
Search
1
Win10突然出现不能连接共享打印机一例
118,155 阅读
2
[经验存档] 微星(MSI)B150M-Pro-VD Plus安装系统蓝屏一例
69,688 阅读
3
Laravel“高并发”导致数据“统计”异常一例
37,815 阅读
4
[iOS|Xcode]iOS-App自定义启动页制作(uniapp适用)
28,224 阅读
5
Laravel 9高并发API数据操作的最佳实践
19,190 阅读
代码
分享
琐事
MySQL
数码
前端
MacOS
软件
Windows
PHP
GoLang学习
登录
Search
标签搜索
Laravel
PHP
Windows
Laravel-Admin
Vue
uniapp
CSS
前端
chartjs
HTML
微信
小程序
web
App
iOS
工具
Golang
微服务
高并发
MySQL
Yesr00
累计撰写
63
篇文章
累计收到
7
条评论
首页
栏目
代码
分享
琐事
MySQL
数码
前端
MacOS
软件
Windows
PHP
GoLang学习
页面
关于叶子
搜索到
34
篇与
的结果
2025-03-23
Golang | Go+PHP混合开发模式实战指南
一、API网关集成(Go中间层)1. 核心架构模式客户端 → Go网关 → PHP服务 ↓ 缓存/限流/鉴权2. Go网关实现示例// 使用Gin框架实现基础网关 func main() { r := gin.Default() // 反向代理中间件 r.Use(func(c *gin.Context) { targetURL := "http://php-service" + c.Request.URL.Path proxy := httputil.NewSingleHostReverseProxy(&url.URL{ Scheme: "http", Host: "php-service:80", }) proxy.ServeHTTP(c.Writer, c.Request) }) // 限流中间件(每秒100请求) r.Use(rate.NewLimiter(100, func(c *gin.Context) { c.AbortWithStatus(429) })) r.Run(":8080") }学习重点:反向代理实现原理(修改Host头)中间件执行顺序对性能的影响连接池管理与超时配置二、微服务分工策略1. 职责划分原则组件PHP业务层职责Go基础设施层职责订单服务优惠计算/库存校验支付流水处理用户服务资料管理/权限验证登录态加密分发商品服务SKU管理/分类维护搜索索引构建2. 通信协议选择矩阵场景推荐协议示例高频数据查询HTTP/2+JSON商品详情获取实时消息推送WebSocket订单状态通知跨语言服务调用gRPC支付服务交互大数据量传输Protobuf日志上报分析三、共享存储方案1. Redis缓存策略PHP配置示例:$redis = new Redis(); $redis->pconnect('redis-master', 6379, 2.5); // 持久连接 $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_JSON);Go连接池配置:pool := &redis.Pool{ MaxIdle: 100, MaxActive: 500, IdleTimeout: 240 * time.Second, Dial: func() (redis.Conn, error) { c, err := redis.Dial("tcp", "redis-master:6379") if err != nil { return nil, err } return c, nil }, }重点注意事项:序列化格式统一(推荐JSON/MessagePack)PHP长连接与Go连接池的存活时间匹配缓存击穿防护策略:// Go单飞模式实现 var g singleflight.Group value, err := g.Do("cache_key", func() (interface{}, error) { return fetchFromDB(key) })四、混合部署架构1. Docker编排示例version: '3.7' services: go-gateway: image: golang:1.21 ports: - "8080:8080" deploy: resources: limits: cpus: '2' memory: 1G php-service: image: php:8.2-fpm environment: PHP_FPM_MAX_CHILDREN: 50 volumes: - ./php:/var/www/html redis: image: redis:6.2-alpine command: redis-server --save 60 1 --loglevel warning2. 性能调优参数对比参数Go服务建议值PHP服务建议值工作线程/协程数CPU核数*2pm.max_children=CPU*1.5内存限制不设限(自动GC)memory_limit=256M请求超时30smax_execution_time=30日志级别WarnE_ALL & ~E_NOTICE学习路线建议:先实现基础通信(HTTP API互调)添加中间件层(鉴权/限流)引入共享缓存优化QPS容器化部署验证扩展性实施监控告警(Prometheus+ELK)某社交平台实战数据:采用混合架构后,API响应时间从320ms降至85ms,服务器成本降低40%附:常见问题排查表现象PHP侧检查点Go侧检查点接口超时FPM进程阻塞Goroutine泄漏数据不一致本地缓存未清除事务隔离级别设置内存持续增长循环引用/全局变量未关闭响应BodyCPU跑满慢SQL查询死锁竞争
2025年03月23日
9,531 阅读
0 评论
0 点赞
2025-03-23
GoLang | Golang与PHP技术栈深度对比:架构选型的理性抉择
深度解析Golang与PHP技术栈的核心差异:从Runtime原理、并发模型到内存管理机制的全面对比。掌握如何根据业务场景选择技术方案,了解混合架构下的gRPC集成与性能优化技巧。获取真实压测数据与架构迁移案例,解决高并发场景下的技术选型难题。
2025年03月23日
9,083 阅读
0 评论
0 点赞
2025-03-23
GoLang & PHP 融合学习大纲
掌握Golang与PHP混合开发:解锁高并发处理与快速迭代的双重优势。Learn integration strategies与performance optimization技巧,实现从Legacy System到Microservices的平滑迁移。包含REST/GRPC通信代码示例、Redis共享缓存方案和Docker容器化部署指南。解决PHP系统性能瓶颈,利用Go的并发优势提升10倍吞吐量。
2025年03月23日
9,026 阅读
0 评论
0 点赞
2025-02-12
【CSS系统化学习】 - 盒模型与文本属性
第三部分:盒模型与文本属性3. 盒模型盒模型是CSS布局的核心概念,它定义了元素的内容、填充、边框和边距之间的关系。边框(border)作用:设置元素的边框样式、宽度和颜色。语法:.box { border: 2px solid #000; /* 宽度 | 样式 | 颜色 */ }细分属性:border-width:边框宽度。border-style:边框样式(如solid, dashed, dotted)。border-color:边框颜色。填充(padding)作用:设置元素内容与边框之间的空间。语法:.box { padding: 10px; /* 上下左右 */ padding: 10px 20px; /* 上下 | 左右 */ padding: 10px 20px 30px 40px; /* 上 | 右 | 下 | 左 */ }注意:填充会增加元素的尺寸。边距(margin)作用:设置元素与其他元素之间的空间。语法:.box { margin: 10px; /* 上下左右 */ margin: 10px 20px; /* 上下 | 左右 */ margin: 10px 20px 30px 40px; /* 上 | 右 | 下 | 左 */ }注意:负边距可用于重叠元素。盒模型计算标准盒模型:width和height仅包含内容区域。替代盒模型:width和height包含内容、填充和边框。.box { box-sizing: border-box; /* 启用替代盒模型 */ }4. 文本属性文本属性用于控制文本的样式和布局。字体系列(font-family)作用:设置文本的字体。语法:body { font-family: "Arial", sans-serif; }注意:提供备用字体以确保兼容性。字体大小(font-size)作用:设置文本的大小。语法:h1 { font-size: 24px; }常用单位:px, em, rem, %。字体粗细(font-weight)作用:设置文本的粗细。语法:.bold-text { font-weight: bold; /* 或数值如700 */ }文字颜色(color)作用:设置文本的颜色。语法:p { color: #333; }行高(line-height)作用:设置文本行之间的间距。语法:p { line-height: 1.5; /* 无单位表示倍数 */ }文本对齐方式(text-align)作用:设置文本的水平对齐方式。语法:.center-text { text-align: center; }文本装饰(text-decoration)作用:设置文本的装饰线(如下划线、删除线)。语法:a { text-decoration: none; /* 去除下划线 */ }文本转换(text-transform)作用:控制文本的大小写。语法:.uppercase { text-transform: uppercase; /* 大写 */ }
2025年02月12日
4,727 阅读
0 评论
0 点赞
2025-02-12
【CSS系统化学习】- CSS选择器
2. CSS选择器以下是CSS中常用的选择器及其示例:元素选择器作用:通过HTML标签名选择元素。语法:p { font-size: 16px; }示例:选中所有<p>标签并设置字体大小。类选择器作用:通过类名(class)选择元素。语法:.warning { color: #ff0000; border: 1px solid red; }示例:选中所有class="warning"的元素并设置红色文本和边框。注意:一个元素可以有多个类(如class="button primary")。ID选择器作用:通过唯一ID(id)选择元素。语法:#header { background-color: #333; padding: 20px; }示例:选中id="header"的元素并设置背景颜色。注意:ID在页面中应是唯一的。属性选择器作用:根据元素的属性或属性值选择元素。语法:/* 选中包含title属性的元素 */ [title] { cursor: help; } /* 选中type="text"的输入框 */ input[type="text"] { border: 1px solid #ccc; }示例:为所有带有title属性的元素添加帮助光标。伪类选择器作用:选择元素的特定状态(如悬停、聚焦等)。语法:/* 悬停状态 */ a:hover { text-decoration: underline; } /* 第一个子元素 */ li:first-child { font-weight: bold; } /* 无效的输入框 */ input:invalid { border-color: red; }常见伪类::hover, :active, :focus, :nth-child(n), :not(selector)。伪元素选择器作用:为元素的特定部分添加样式(如首行、首字母等)。语法:/* 段落的首字母 */ p::first-letter { font-size: 24px; } /* 元素内容前插入内容 */ .note::before { content: "⚠️ "; } /* 选中被用户选中的文本 */ ::selection { background: yellow; }常见伪元素:::before, ::after, ::first-line, ::placeholder。注意:伪元素使用双冒号(::),伪类用单冒号(:)。组合使用示例/* 类选择器 + 伪类 */ .button:hover { opacity: 0.8; } /* 后代选择器 */ nav ul li { list-style: none; } /* 子选择器 */ .container > .item { margin: 10px; }总结 CSS选择器是控制样式作用范围的核心工具,合理使用可大幅提升代码复用性和维护性。
2025年02月12日
4,901 阅读
0 评论
0 点赞
1
2
...
7