业务任务与 Outbox 消息同一事务落库,避免“数据库成功但消息没发出去”。 RabbitMQ 使用持久化消息、发布确认、手动 ACK、Quorum Queue、死信队列。 增加处理租约、心跳、异常重试、最大重试次数和幂等状态控制。 保留 InMemory 模式,开发环境无需安装 RabbitMQ。 支持多实例竞争消费,后续可以横向扩容。 新增 /health/messaging 消息系统健康检查。
52 lines
2.2 KiB
Bash
52 lines
2.2 KiB
Bash
# 复制为发布目录中的 .env。真实密钥和密码不要提交到仓库。
|
|
ASPNETCORE_ENVIRONMENT=Production
|
|
ASPNETCORE_URLS=http://0.0.0.0:8080
|
|
|
|
Database__Provider=MySql
|
|
Database__ApplyMigrationsOnStartup=false
|
|
Database__CommandTimeoutSeconds=30
|
|
ConnectionStrings__MySql="Server=db.example.edu.cn;Port=3306;Database=jiaowu;User=APP_USER;Password=REPLACE_WITH_A_STRONG_PASSWORD;SslMode=VerifyFull;SslCa=/etc/jiaowu/mysql-ca.pem;"
|
|
# Redis 是可选加速器;留空时应用仅使用进程内缓存。
|
|
# ConnectionStrings__Redis="redis.example.edu.cn:6380,user=jiaowu,password=REPLACE_WITH_A_STRONG_PASSWORD,ssl=true,abortConnect=false"
|
|
|
|
# 单机可继续使用 InMemory;多实例生产部署建议启用 RabbitMQ。
|
|
BackgroundJobs__Transport=InMemory
|
|
# RabbitMq__HostName=rabbitmq.example.edu.cn
|
|
# RabbitMq__Port=5671
|
|
# RabbitMq__UserName=jiaowu
|
|
# RabbitMq__Password=REPLACE_WITH_A_STRONG_PASSWORD
|
|
# RabbitMq__VirtualHost=/jiaowu
|
|
# RabbitMq__UseTls=true
|
|
# RabbitMq__TlsServerName=rabbitmq.example.edu.cn
|
|
|
|
Cache__Enabled=true
|
|
Cache__KeyPrefix=jiaowu:v1
|
|
Cache__ReferenceExpirationMinutes=30
|
|
Cache__ReferenceLocalExpirationSeconds=120
|
|
Cache__TimetableExpirationMinutes=10
|
|
Cache__TimetableLocalExpirationSeconds=30
|
|
Cache__AnalyticsExpirationMinutes=3
|
|
Cache__AnalyticsLocalExpirationSeconds=30
|
|
Cache__MaximumPayloadKilobytes=2048
|
|
|
|
Jwt__Issuer=Jiaowu.Api
|
|
Jwt__Audience=Jiaowu.Web
|
|
Jwt__Key=REPLACE_WITH_AT_LEAST_32_RANDOM_BYTES
|
|
Jwt__ExpireMinutes=60
|
|
|
|
AllowedHosts=jiaowu.example.edu.cn
|
|
Cors__Origins__0=https://jiaowu.example.edu.cn
|
|
|
|
# 二维码使用的公网根地址;反向代理部署时必须填写最终 HTTPS 地址。
|
|
OfficialDocuments__InstitutionName=明序大学
|
|
OfficialDocuments__IssuingOffice=教务处
|
|
OfficialDocuments__DocumentNumberPrefix=MXU
|
|
OfficialDocuments__PublicBaseUrl=https://jiaowu.example.edu.cn
|
|
# 默认使用系统中文字体;仅在自定义字体部署时填写绝对路径。
|
|
# OfficialDocuments__FontPath=/usr/share/fonts/noto/NotoSansCJK-Regular.ttc
|
|
|
|
# 仅首次创建管理员时临时取消注释,创建成功后立即删除。
|
|
# SeedAdmin__UserName=admin
|
|
# SeedAdmin__Password=REPLACE_WITH_A_STRONG_ADMIN_PASSWORD
|
|
# SeedAdmin__DisplayName=系统管理员
|