配置中心配置说明
配置中心是指项目中的config-server工程,config-server有一个application.properties配置,在这个配置文件中指向配置了mysql,redis等配置的application.yml配置,application.yml等文件可以拉取我们码云上的b2b2c-config仓库中的示例配置。
cd /opt/source
git clone https://gitee.com/enation/b2b2c-config.git
配置方式
这里提供配置中心的两种配置方式,一种是指向远端的git仓库(k8s推荐),一种是指向本地的普通目录(非k8s推荐)。
指向远端git仓库:
spring.cloud.config.server.git.uri=your-git-uri #你的git仓库路径
spring.cloud.config.server.git.username=your-username #你的用户名
spring.cloud.config.server.git.password=your-password #你的密码
spring.cloud.config.label=master #分支
指向本地的普通目录
这样配置,修改b2b2c-config中application.yml等配置后,不再需要git add 和git commit
spring.profiles.active=native
spring.cloud.config.server.native.search-locations=/opt/source/b2b2c-config
运行环境
支持三种运行环境:
dev(开发环境)
test(测试环境) 注意:测试环境供junit测试使用,使用前端访问后端api时不适用
prod(生产环境)
由每个api的bootstrap.yml 中的profile决定,如下图是consumer的bootstrap.yml:
spring:
application:
name: consumer
cloud:
config:
uri: http://localhost:8888
label: master
profile: dev #这里标注了读取开发环境的配置
server:
port: 6001
文件说明
文件名 | 说明 | 必须 |
---|---|---|
application.yml | 公用的配置文件,做为所有配置的基础 | 是 |
application-dev.yml | 开发环境配置文件,会覆盖application.yml,重叠部分以application-dev.yml为准,缺少部分以application.yml为准,所以这里可以只定义dev环境的个性化部分 | 否 |
application-test.yml | 测试环境配置文件,会覆盖application.yml,重叠部分以application-test.yml为准,缺少部分以application.yml为准,所以这里可以只定义test环境的个性化部分 | 否 |
application-prod.yml | 生产环境配置文件,会覆盖application.yml,重叠部分以application-prod.yml为准,缺少部分以application.yml为准,所以这里可以只定义生产环境的个性化部分 | 否 |
mysql配置
#分库分表配置
shardingsphere:
props:
sql:
show: false
sharding:
default-data-source-name: ds0
#定义分库的数据源
datasource:
names: ds0
ds0:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://ip:3306/javashop?useUnicode=true&characterEncoding=utf8&autoReconnect=true
username: root
password: your-pwd
RabbitMq配置
非集群方式
rabbitmq:
host: 192.168.2.10
port: 5672
username: your-username
password: your-password
virtual-host: / #你的租户目录
通过我们的docker镜像部署的默认配置:
username: guest password: guest virtual-host: /
注意:不推荐使用guest用户
集群方式
rabbitmq:
addresses: ip1:5672,ip2:5672 #集群的所有节点
username: your-username
password: your-password
virtual-host: / #你的租户目录
注:基于swarm式的可伸缩式集群,上述ip只需要配置为所有swarm node的ip即可
elasticsearch配置
tip
通过我们的docker镜像部署的默认配置:
cluster-name: docker-cluster
index-name:随便写,但是需要和部署程序初始化的index name一致
auto_create_index: 自动创建索引
7.2.3我们调整了es的配置方式,请根据您的版本进行相应的配置
无密码
- v7.2.2
- v7.2.3
data:
elasticsearch:
cluster-name: docker-cluster
cluster-nodes: ip1:9300,ip2:9300
index-name: javashop
elastic-jest:
index-name: b2b2c # 索引名称
ssl: off # https方式访问,一般默认是http
cluster-ips: ip # 如果是多节点:ip,ip,ip....
cluster-rest-port: 9200 # http默认端口
有密码
- v7.2.2
- v7.2.3
data:
elasticsearch:
cluster-name: elasticsearch-cluster
cluster-nodes: ip1:9300,ip2:9300
xpack:
security:
user: username:password
elastic-jest:
index-name: b2b2c # 索引名称
ssl: off # https方式访问,一般默认是http
cluster-ips: ip # 如果是多节点:ip,ip,ip....
cluster-rest-port: 9200 # http默认端口
username:
password:
日志等级设置
可修改为DEBUG,INFO,ERROR等,对应不同的日志
logging:
level:
com.alibaba: ERROR
springfox.documentation: ERROR
io.searchbox: ERROR
org.springframework: ERROR
io.seata: ERROR
com.enation.app : DEBUG
Redis配置
请参考《redis配置说明》
XXL-Job配置说明
xxl:
job:
admin:
addresses: http://ip:8080/xxl-job-admin
executor:
appname: timing-job-execute
ip:
port: 6999
logpath: /opt/xxl-serverlogs
logretentiondays: -1
tip
addresses xxl-job调度中心地址
appname appname必须要与xxl-job调度中心中创建的执行器的appname一致
ip,port 执行器服务信息IP、端口
logpath 此配置项是存储执行器产生的日志的路径
logretentiondays 执行器日志清理天数
文件上传限制
文件上传限制,适配小视频上传,小视频上传前端限制最大20M
# 上传文件大小上限设置
spring:
servlet:
multipart:
enabled: true
max-file-size: 25MB
max-request-size: 25MB
说明:如果nginx中有限制,也需要相应的修改
sba-server监控配置
application-dev.yml(总配置文件,具体看模式)
spring:
boot:
admin:
client:
# 这个URL地址是SBA Server的服务地址,你需要将你的应用注册到该地址上
url: http://localhost:7006 #更换sba-server所在的ip
# 配置连接到监测管理平台的Security安全密码
username: admin
password: admin
# 暴露client服务自身的actuator的所有端口信息
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: ALWAYS
sba-server.yml(此处建议更改用户名密码)
spring:
jackson:
property-naming-strategy: LOWER_CAMEL_CASE
security:
user:
# 监测管理平台的Security安全密码
name: admin
password: admin
注意以上两处的用户名密码要一致
Javashop配置
授权配置
tip
授权码是我们针对您的授权域名生成的一段授权码,需要配置在license配置项中
可以添加多个授权,license[0],license[1],license[2]以此类推
javashop:
product: stand #stand代表标准版,microservice代表微服务版,一般不需要修改
license[0]: xxx #授权码
超时设置
以秒为单位
timeout:
accessTokenTimeout: 1200 #登录权限超时
refreshTokenTimeout: 1800 #登录权限更新超时
captchaTimout: 120 #图片验证码超时
smscodeTimout: 120 #短信验证码超时
ssl: off #是否开启https
域名配置
tip
这些域名的配置决定了我们前后端的一些数据交互,以及三方支付平台回调时的数据交互
务必填写正确
ssl: off #如果使用https,请设置为on
domain:
buyer: buyer.domain.com #买家端访问域名
mobileBuyer: m.buyer.domain.com #手机端买家访问域名
callback: api.buyer.domain.com #支付回调地址,后端buyer-api域名
referer配置
tip
referer规定了可以访问我们api的站点,在很大程度上保证了站点安全,务必配置正确
支持用*
匹配所有子域名,如:
pc端pc.javamall.com.cn,wap端wap.javamall.com.cn,则可以用*.javamall.com.cn配置
如果主域名不同,则可配置多个
在测试环境或开发环境,可以选择关闭referer的检查
关闭:
javashop:
referer:
checked: false
开启referer配置,配置允许访问api的域名:
javashop:
referer:
- '*.javamall.com.cn' #前端ui的域名可以用*开头
- '192.168.2.13'
小程序与支付宝同步回调referer配置,必要的配置,否则相关功能无法使用:
javashop:
referer:
- 'servicewechat.com' #小程序referer
- '*.alipay.com' #支付宝同步回调 referer
- '*.weixin.qq.com'
商品库存缓冲池开关
tip
商品库存的缓冲池可以在一定程度上降低数据库的压力,但会导致商家中心商品库存数量显示延迟
建议在并发量不是特别大(1万并发以内)的情况不需要开启
off:关闭(如果配置文件中没有配置此项,则默认为off)
javashop:
pool:
stock: off
true:开启
javashop:
pool:
stock: on
max-lazy-second: 10 #缓冲时间(秒数)
max-pool-size: 10 #缓冲区大小
max-update-timet: 50 #缓冲次数
Token加密秘钥
tip
token秘钥用来生成访问系统的token,非常关键,务必设置一个复杂的、和默认值不同的秘钥
否则可能会导致利用默认秘钥生成的token来入侵系统
建议可以使用某个字串的md5值
javashop:
token-secret: xxxxx