跳到主要内容

配置中心配置说明

配置中心是指项目中的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的配置方式,请根据您的版本进行相应的配置

无密码

  data: 
elasticsearch:
cluster-name: docker-cluster
cluster-nodes: ip1:9300,ip2:9300
index-name: javashop

有密码

 data: 
elasticsearch:
cluster-name: elasticsearch-cluster
cluster-nodes: ip1:9300,ip2:9300
xpack:
security:
user: 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