配置中心配置说明
配置中心是指项目中的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
文件说明
7.0
文件名 | 说明 | 必须 |
---|---|---|
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: true
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/default_database?useUnicode=true&characterEncoding=utf8&autoReconnect=true
username: root
password: your-pwd
如果多个库的数据库用户名密码不一致,则可分别配置如:
datasource:
names: ds1
ds1:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://ip:3306/default_database1?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配置
无密码:
data:
elasticsearch:
cluster-name: docker-cluster
cluster-nodes: ip1:9300,ip2:9300
index-name: javashop
通过我们的docker镜像部署的默认配置:
cluster-name: docker-cluster
index-name:随便写,但是需要和部署程序初始化的index name一致
auto_create_index: 自动创建索引。
有密码:
data:
elasticsearch:
cluster-name: elasticsearch-cluster
cluster-nodes: ip1:9300,ip2:9300
xpack:
security:
user: username:password
注:基于swarm式的可伸缩式集群,上述ip只需要配置为所有swarm node的ip即可
日志等级设置
可修改为DEBUG,INFO,ERROR等,对应不同的日志量
logging:
config: classpath:logback-custom.xml #日志文件自定义名
# 可独立的日志ES
es:
action:
auto_create_index: true
cluster-name: docker-cluster
cluster-nodes: 127.0.0.1:9300
xpack:
security:
user:
level:
org.springframework: ERROR
com.enation.app : ERROR
Redis配置
请参考《redis配置说明》
授权配置
product配置,stand代表7.0标准版,microservice代表微服务版,一般不需要修改,license部分即授权配置,可以添加多个授权,license[0],license[1],license[2]以此类推,将我们提供的授权文件中的内容复制过来即可
javashop:
product: stand
license[0]: 622aae5788dbf36d7a01c87a2febecf3d794b6118b85635a401727af642603696222efa1732ad0ab1d4ae1c3026e50e538aeed623cda2db329cdf2a3644b01eae045cf0df8e0359cf5bf0887c09a05c16ca9b1117ba4d2d3d02c86ba8d3c746878e792893003b9529cd971e70982227ca99cb3b64b81a4409b60259896c51921,4a0a2e796ef27271c887b4e52d1670f6df2f490babd7a6af7c8889ebf26107c3b41fde494ddf5414cb9bce8e822872fef644274784449056338112748f906ec7
超时设置,是否为示例站点,是否开启https
超时设置以秒为单位
timeout:
accessTokenTimeout: 1200 #登录权限超时
refreshTokenTimeout: 1800 #登录权限更新超时
captchaTimout: 120 #图片验证码超时
smscodeTimout: 120 #短信验证码超时
isDemoSite: no #是否是示例站点
ssl: off #是否开启https
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 执行器日志清理天数
域名配置
ssl: off #如果使用https,请设置为on
domain:
buyer: buyer.domain.com #买家端访问域名
mobileBuyer: m.buyer.domain.com #手机端买家访问域名
callback: api.buyer.domain.com #支付回调地址,后端buyer-api域名
tip
此处配置涉及到支付和信任登录,属于必要配置!
referer配置
关闭referer配置:
javashop:
referer:
checked: false
开启referer配置:
javashop:
referer:
- '*.javamall.com.cn' #前端ui的域名可以用*开头
- '192.168.2.13'
如pc端pc.javamall.com.cn,wap端wap.javamall.com.cn,则可以用*.javamall.com.cn配置,如果主域名不同,则可配置多个
小程序与支付宝同步回调referer配置,必要的配置,否则相关功能无法使用javashop:
referer:
- 'servicewechat.com' #小程序referer
- '*.alipay.com' #支付宝同步回调 referer
- '*.weixin.qq.com'
商品库存缓冲池开关
off:关闭(如果配置文件中没有配置此项,则默认为off)
javashop:
pool:
stock: off
true:开启(优点:缓解程序压力;缺点:有可能会导致商家中心商品库存数量显示延迟;)
javashop:
pool:
stock: on
max-lazy-second: 10 #缓冲时间(秒数)
max-pool-size: 10 #缓冲区大小
max-update-timet: 50 #缓冲次数
Token加密秘钥
javashop:
token-secret: 123456
文件上传限制
文件上传限制,适配小视频上传,小视频上传前端限制最大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
注意以上两处的用户名密码要一致