猪好多网创建于2017年,是生猪产业链垂直门户资讯网站、知名媒体。猪好多网希望利用互联网技术,加强养猪人与养猪人、养猪人与企业、企业与企业的交流与信息共享,加强养猪行业信息化、数字化的快速发展。公司运营团队致力于搭建生猪全产业链最具影响力的信息平台、知识平台、新媒体平台和畜牧营销互动平台。打造专业高效——服务于畜牧业、养猪全产业链的移动互联网与大数据服务平台。
养猪 360 门户及猪价行情平台(Go 后端)项目实现总结
项目简介:养猪产业信息服务平台的 Go 化改造/重建,一套二进制同时承载 PC 资讯站、移动资讯站(WAP)与"猪价行情"数据产品(日报、地图、报价、预测),兼容老 PHP(PHPCMS 体系)存量页面、URL 与会员数据。
1. 整体架构与设计思路,不同模块使用的技术栈
设计思路:原平台为 PHP 单体,全站伪静态 .html 且被百度大量收录,同时跑着 PC/WAP 门户和猪价数据产品,高并发时段 MySQL 压力大、发布扩容不便。因此选用 Go 重构并坚持"平滑迁移"原则:URL 结构不动、收录不动、会员会话不动、数据不动,用新引擎无缝替换旧服务。
单二进制多站架构:一次启动承载 4 个子站(PC 资讯、WAP 资讯、猪价 PC、猪价 WAP)。入口按请求 Host 分流(PcMobileShunt)到各自控制器和模板,模板按 7 套目录组织、共 71 个 .gohtml(约 8500 行),用 go:embed 打进二进制,产出单一可执行文件。
分层组织:入口 route 层统一注册路由并处理错误/404/301;controller 层(65 个 Go 文件)按 PC 资讯、移动资讯、猪价、专题、微信、系统运维分组,并按栏目类型分发到对应模板;db 层维护两个 MySQL(主站 yangzhu360 + 行情 zhujia),用 gorm.io/gen 自动生成 50+ 张表的模型/类型安全查询代码,Proxy 子层封装全部业务查询并统一接缓存;tools 层沉淀 config(viper)、logger(logrus)、redisClient、fileCache、aliOss、page 分页、engine 模板引擎、simpleHttp 等基础设施。
缓存与静态化双保险:进程内存缓存(由 cron 每 60 秒重建栏目/推荐/站点/地区等核心数据)→ Redis(泛型 CacheGetOrSet[T] + sonic 序列化)→ MySQL 三级递减;外层静态资源走 CDN,历史静态 HTML 存阿里云 OSS,Go 端 404 命中 .html/.xml/.txt 时按 PC/m 前缀回源 OSS 兜底;另起预热协程定期访问 PC/WAP 首页、新闻、行情等入口页"保温",让大流量期不直打数据库。
自动化运维:lego + 阿里云 DNS-01 自动申请/续期泛域名 HTTPS 证书;三套环境配置(dev/test/prod)由 viper 加载;CGO_ENABLED=0 交叉编译静态单文件,Linux 下 systemd 托管,发布即替换文件重启。
各模块技术栈:Web 层 Go 1.23 + Fiber v2(fasthttp)+ sonic JSON + gohtml 服务