Статья содержит следующее.
- Основная информация
- конфигурация контейнера
- Управление конфигурацией
- Endpoint
- Конфигурация чванства
- Эврика конфигурация
- Фейк и лента
- цепочка вызовов
- Общая конфигурация
- Конфигурация пула соединений
- Конфигурация Mybatis
Основная информация
Основная информация используется для отображения версии, разработчика и т. д. проекта. Может использоваться для разработки единого фона управления для контроля над проектом.
info:
businessSide: 研发部
serviceName: ${artifactId}
version: @version@
jdk-version: @java.version@
spring-boot.version: @spring-boot.version@
spring-cloud.version: @spring-cloud.version@
author: 小姐姐
Как правило, посещая/info, вы можете получить интерпретированный JSON.
Конфигурация Tomcat
Он используется для печати журнала доступа и журнала операций сервера, и, что более важно, естьcontextPath. Хороший формат журнала необходим для последующего анализа и статистики.
Обратите внимание, что некоторые версии
basedirизменился наfile:.грамматика, пишите прямо.сообщит об ошибке.
server:
port: 8888
context-path: /
tomcat:
basedir: .
accesslog:
enabled: true
directory: /export/logs/example/
pattern: "%{X-Forwarded-For}i %a %{X-B3-TraceId}i %t %m %U %s %b %D"
rename-on-rotate: true
suffix: .log
prefix: access
rotate: true
buffered: false
file-date-format: yyyy-MM-dd
uri-encoding: UTF-8
Undertow,Jettyконфигурация аналогична.
управлять
Включите безопасность в Интернете. Кроме тогоcontextPathВ лучшее единство, я думаю/opsЛучше, вы можете использовать его тоже.
management:
security:
enabled: false
context-path: /ops
Какую информацию можно получить через управление? Я резюмировал это здесь Компоненты, такие как Spring-admin, берут данные из него, и вы можете легко сделать бэкэнд.
| дорожка | содержание |
|---|---|
| /ops/jolokia/list jolokia | открытый интерфейс |
| /ops/info | вывод основной информации о проекте |
| ops/health | вывод информации о здоровье |
| /ops/autoconfig | Вывод автоматически настроенной информации |
| /ops/configprops | Конфиденциальная информация, поэтому обязательно закройте доступ к внешней сети |
| /ops/beans Spring | Какие там бины, только для отладки |
| /ops/dump | Информация о дампе JVM, например сводка потоков и т. д. |
| /ops/env | среда запуска |
| /ops/mappings | Все сопоставления URL |
| /ops/metrics | Данные мониторинга, использование отчетов |
| /ops/trace | недавняя трассировка доступа |
Есть много интерфейсов повышенного риска, поэтому уделяйте внимание безопасности во время вождения.
Конечная точка (как описать, 囧)
endpoints:
shutdown:
enabled: false
sensitive: false
jolokia:
enabled: true
Вот где открывается наша джолокия, не правда ли просто?
Интерфейс выключения очень полезен, чтобы сделать что-то вроде隔离функция. Но мы предпочитаем контролировать реестр, чтобы делать эти вещи, поэтому отключите его. Если вы включите его, будьте осторожны, чтобы не выставить его в Интернет.
Swagger
Как инструмент визуального тестирования, Swagger также является мостом для проектной коммуникации, в то же время он может использоваться как документ и должен быть оборудован в проекте.
swagger:
title: ${artifactId}
version: @version@
contact:
name: 小姐姐
email: xjj@sayhiai.com
base-package: com.sayhiai.controller
base-path: /**
exclude-path: /error, /ops/**
Эврика конфигурация
Служба может действовать как поставщик или как вызывающая сторона. такclientа такжеinstanceдолжны быть оборудованы. Среди них параметры настраиваются, нужно понимать смысл. Рекомендуется ссылаться на эту официальную учетную запись «Плавная онлайн-функция и онлайн-функция Spring Cloud Services».
eureka:
client:
register-with-eureka: true
fetch-registry: false
#eureka client获取服务注册状态
registry-fetch-interval-seconds: 5
healthcheck:
enabled: true
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
metadata-map:
management.context-path: ${server.context-path}
statusPageUrlPath: ${server.context-path}ops/info
health-check-url-path: ${server.context-path}ops/health
lease-expiration-duration-in-seconds: 15
lease-renewal-interval-in-seconds: 5
Фейк и лента
Feignа такжеRibbonКак базовый, ответственный за межслушный коммуникацию. Многие параметры ленты распространены. Чтобы поддержать плавные функции конфигурации тайм-аута, разумные также необходимые.
feign:
hystrix:
enabled: true
ribbon:
ReadTimeout: 8000
ConnectTimeout: 1000
OkToRetryOnAllOperations: true
MaxAutoRetriesNextServer: 2
MaxAutoRetries: 0
ServerListRefreshInterval: 3000
retryableStatusCodes: 404,500
# Цепочка вызовов
Цепочка вызовов должна быть важнейшей функцией распределенной системы, иначе она увязнет в трясине проблем и не сможет выбраться. я предпочитаюjaeger,zipkinИнтеграция похожа,opentracingЕсть общие решения.
opentracing.jaeger.log-spans: true
opentracing.jaeger.udp-sender.host: localhost
opentracing.jaeger.udp-sender.port: 5775
Общая конфигурация
Еще два важных момента, о которых стоит упомянуть:
- аоп должен быть включен
proxyTargetClass, используются многие функции, такие как различныеstarter. - jmx должен быть включен, его можно использовать после включения
jolokiaинструменты будутjmxПревратиться вhttp, который затем можно использоватьtelegrafДождитесь сбора данных, чтобы составить графики мониторинга.
spring:
application:
name: ${artifactId}
http:
encoding:
charset: UTF-8
force: true
enabled: true
profiles:
active: @profileActive@
aop:
proxyTargetClass: true
auto: true
jmx:
enabled: true
Конфигурация базы данных
в общемDruidПул соединений с базой данных стал стандартным. Для этого пула соединений с базой данных существует множество элементов конфигурации, которые можно активировать по мере необходимости.
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5
min-idle: 5
max-active: 200
max-wait: 10000
#test-while-idle: true
#validation-query: SELECT 1 FROM DUAL
test-on-borrow: false
test-on-return: false
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 15000
default-auto-commit: true
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 30000
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
#filters: stat,wall,slf4j
#有多个数据源时,配置公用监控数据
use-global-data-source-stat: true
filter:
stat:
enabled: false
db-type: mysql
log-slow-sql: true
slow-sql-millis: 2
slf4j:
data-source-log-enabled: true
data-source-logger-name: DRUID
statement-executable-sql-log-enable: true
statement-logger-name: DRUID
MyBatis
Какой? Все еще использую ORM, затем MyBatis. Или, при таком количестве вариантов, зачем использовать SQL?
mybatis:
mapper-locations: classpath*:sqlmap/*Mapper.xml
type-aliases-package: ${package}.entity
configuration:
# 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。
lazy-loading-enabled: false
# 使全局的映射器启用或禁用缓存
cache-enabled: true
# 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。
aggressive-lazy-loading: false
# 是否允许单条sql 返回多个数据集 (取决于驱动的兼容性) default:true
multiple-result-sets-enabled: true
# 是否可以使用列的别名 (取决于驱动的兼容性) default:true
use-column-label: true
# 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。 default:false
use-generated-keys: false
# 指定 MyBatis 如何自动映射 数据基表的列 NONE:不隐射 PARTIAL:部分 FULL:全部
auto-mapping-behavior: partial
# 这是默认的执行类型 (SIMPLE: 简单; REUSE: 执行器可能重复使用prepared statements语句;BATCH: 执行器可以重复执行语句和批量更新)
default-executor-type: simple
# 使用驼峰命名法转换字段。
map-underscore-to-camel-case: true
# 设置本地缓存范围 session:就会有数据的共享 statement:语句范围 (这样就不会有数据的共享 ) defalut:session
local-cache-scope: session
# 设置但JDBC类型为空时,某些驱动程序 要指定值,default:OTHER,插入空值时不需要指定类型
jdbc-type-for-null: 'null'
Наконец, с диаграммой, когда система растет, общие модули могут быть размещены в application.yml как общая конфигурация.