- 优化API参考文档的段落排版和表格对齐 - 补充签名机制和支付接口的详细说明- 完善错误码与解决方案的描述 - 统一文档中的代码引用和示例格式 docs(beego):优化Beego框架集成文档结构 - 改进Beego框架文档的换行和段落布局 - 完善控制器继承和中间件集成的说明 - 优化ORM模型注册和路由机制的描述- 统一文档中的技术术语表达方式 docs(docker): 改进Docker部署指南文档格式 - 优化Dockerfile多阶段构建的描述 - 完善docker-compose配置文件说明 - 改进本地部署步骤和故障排除指南- 统一文档中的命令行示例格式feat(supplier): 新增LianIns卡发送任务类型- 在枚举中添加SendCardTaskTypeEnumLianIns类型 - 更新GetAllSendCardTaskType函数返回值 - 实现LianIns任务类型的工厂方法 chore(deps): 更新项目依赖版本 - 升级github.com/bytedance/sonic至v1.14.2 - 升级github.com/duke-git/lancet/v2至v2.3.8 - 升级github.com/bytedance/sonic/loader至v0.4.0 - 移除natefinch/lumberjack和yaml.v2依赖- 清理间接依赖中的toml库引用
8.7 KiB
配置文件详解
**Referenced Files in This Document** - [app.conf](file://conf/app.conf) - [config.go](file://internal/config/config.go) - [proxy.go](file://internal/config/proxy.go) - [proxy_pool.go](file://internal/utils/proxy_pool.go) - [config.go](file://internal/proxy/config.go)目录
应用配置
app.conf配置文件中的[appname]区块定义了应用的基本信息,包括应用名称和运行模式。
appname = jhgateway
runmode = prod
appname:设置应用名称为jhgateway,该名称用于标识系统实例runmode:设置运行模式为prod(生产环境),系统根据此模式加载相应的配置和行为
Section sources
HTTP端口配置
[httpport]区块配置了HTTP服务的监听端口和网络地址。
httpport = 12309
RemoteAddr = 0.0.0.0
RemotePort = 12309
HTTPAddr = 0.0.0.0
httpport:设置HTTP服务监听端口为12309RemoteAddr和HTTPAddr:设置为0.0.0.0,表示监听所有网络接口RemotePort:远程服务端口,与httpport保持一致
这些配置共同定义了应用的网络访问入口,客户端通过http://<服务器IP>:12309访问服务。
Section sources
日志配置
[logs]区块详细配置了系统的日志记录行为。
[logs]
level =7
filepath= ./logs/jhmerchant.log
separate="["emergency","alert","critical","error","warning","notice","info","debug"]"
maxdays=10
level:日志级别设置为7,对应DEBUG级别,记录所有级别的日志信息filepath:日志文件保存路径为./logs/jhmerchant.logseparate:配置需要分离记录的日志类型,包含从紧急到调试的所有级别maxdays:日志文件最大保存天数为10天,超过此期限的日志将被自动清理
日志级别0-7分别对应:
- 0: emergency (紧急)
- 1: alert (警报)
- 2: critical (严重)
- 3: error (错误)
- 4: warning (警告)
- 5: notice (通知)
- 6: info (信息)
- 7: debug (调试)
Section sources
数据库配置
[mysql]区块配置了MySQL数据库的连接参数。
[mysql]
dbhost = 127.0.0.1
dbport = 3306
dbuser = root
dbpasswd = Woaizixkie!123
dbbase = kami
debug = true
dbhost:数据库主机地址为127.0.0.1(本地)dbport:数据库端口为3306dbuser:数据库用户名为rootdbpasswd:数据库密码为Woaizixkie!123dbbase:连接的数据库名为kamidebug:启用调试模式,便于开发和问题排查
这些配置用于建立与MySQL数据库的连接,支持系统数据的持久化存储。
Section sources
Redis配置
[redis]区块配置了Redis缓存服务的连接信息。
[redis]
host = 127.0.0.1:6379
db = 0
password = ""
host:Redis服务地址和端口为127.0.0.1:6379db:使用的Redis数据库编号为0password:Redis密码为空,表示无需认证
Redis主要用于缓存频繁访问的数据,提高系统性能和响应速度。
Section sources
消息队列配置
[mq]区块配置了消息队列服务的连接参数。
[mq]
host = 127.0.0.1
port = 61613
host:消息队列服务主机为127.0.0.1port:消息队列服务端口为61613
消息队列用于实现系统组件间的异步通信,提高系统的可扩展性和可靠性。
Section sources
第三方服务API配置
配置文件中包含了多个第三方服务的API端点和回调地址配置。
MF服务配置
[mf]
submit_card_url = http://test.shop.center.mf178.cn/userapi/card/submit_card
query_card_url = http://test.shop.center.mf178.cn/userapi/card/order_info
Apple卡服务配置
[appleCard]
submit_card_url = http://kami_backend:12401/api/cardInfo/appleCard/submit
query_card_url = http://kami_backend:12401/api/cardInfo/appleCard/query
notify_url = http://kami_gateway:12309/appleCard/notify
京东卡服务配置
[jdCard]
submit_card_url = http://kami_backend:12401/api/cardInfo/jdCard/submit
query_card_url = http://kami_backend:12401/cardInfo/jdCard/query
notify_url = http://kami_gateway:12309/jdCard/notify
其他服务配置
[tMallGame]
submit_card_url=http://test.shop.center.mf178.cn/recharge/tMallGame/order/submit
notify_url=http://test.shop.center.mf178.cn/api/recharge/tMallGame/order/notify
query_card_url=http://test.shop.center.mf178.cn/userapi/card/order_info
这些配置定义了与各个第三方服务交互的API端点,包括:
submit_card_url:提交卡密的接口地址query_card_url:查询卡密状态的接口地址notify_url:接收第三方服务回调通知的地址
Section sources
代理配置
[proxy]区块配置了代理服务的相关参数。
[proxy]
proxies = []
proxies:代理数组,当前为空,表示不使用静态代理列表
代理配置与环境变量proxyUrl协同工作,用于获取动态代理IP,实现请求的IP轮换,避免被目标网站封禁。
Section sources
环境变量与配置文件的协同
系统通过环境变量与配置文件的协同工作来实现灵活的代理配置。internal/config/proxy.go文件中定义了代理信息的获取逻辑:
func GetProxyInfo() ProxyInfo {
return ProxyInfo{
Url: env.Get("proxyUrl", "https://share.proxy.qg.net/get?key=7ASQH2BI&num=2&area=&isp=0&format=txt&seq=\\r\\n&distinct=false"),
AuthKey: env.Get("proxyAuthKey", "7ASQH2BI"),
AuthPwd: env.Get("proxyAuthPwd", "34D6652FE7B6"),
}
}
proxyUrl:代理服务API地址,从环境变量获取,若不存在则使用默认值proxyAuthKey和proxyAuthPwd:代理认证密钥和密码,同样优先从环境变量获取
这种设计实现了配置的灵活性:
- 生产环境中通过环境变量设置敏感信息,避免硬编码在配置文件中
- 开发环境中使用默认值,简化配置
- 可以根据不同环境动态调整代理服务
代理系统的工作流程如下:
flowchart TD
A[请求开始] --> B{获取代理}
B --> C[检查缓存代理]
C --> |存在且有效| D[使用缓存代理]
C --> |不存在或失效| E[调用代理API]
E --> F[获取新代理IP]
F --> G[验证代理可用性]
G --> |可用| H[使用新代理]
G --> |不可用| I[重试获取]
H --> J[执行HTTP请求]
D --> J
J --> K[请求完成]
Diagram sources
Section sources
生产与测试环境对比
生产环境配置特点
runmode = prod
dbpasswd = Woaizixkie!123
proxyUrl = https://secure.proxy.enterprise.com/api
- 使用生产数据库和密码
- 启用生产模式,关闭调试信息
- 使用企业级代理服务
- 日志级别可能调整为较低级别(如3-4),减少日志量
测试环境配置特点
runmode = dev
dbpasswd = test123
proxyUrl = https://test.proxy.service.com/api
- 使用测试数据库和简单密码
- 启用开发模式,便于调试
- 使用测试代理服务
- 日志级别设置为7(DEBUG),记录详细信息
配置项对系统行为的影响
| 配置项 | 影响范围 | 生产环境建议 | 测试环境建议 |
|---|---|---|---|
runmode |
系统行为模式 | prod | dev |
level |
日志详细程度 | 3-4 (error-warning) | 7 (debug) |
maxdays |
存储空间占用 | 30-90天 | 7-14天 |
debug |
性能与安全性 | false | true |
proxyUrl |
请求IP轮换 | 高质量代理服务 | 测试代理服务 |
通过合理配置这些参数,可以确保系统在不同环境中以最优方式运行,既保证生产环境的稳定性和安全性,又满足测试环境的调试需求。
Section sources