31.10 InfluxDB
InfluxDB是一个开源时间序列数据库,针对运营监控,应用程序指标,物联网传感器数据和实时分析等领域中的时间序列数据的快速,高可用性
存储和检索进行了优化。
31.10.1连接到InfluxDB
Spring Boot自动配置 InfluxDB 实例,前提是 influxdb-java 客户端在类路径上并且设置了数据库的URL,如以下示例所示:
spring.influx.url=http://172.0.0.1:8086
如果与InfluxDB的连接需要用户和密码,则可以相应地设置 spring.influx.user 和 spring.influx.password 属性。
InfluxDB依赖于OkHttp。如果您需要在后台调整http客户端 InfluxDB ,则可以注册 InfluxDbOkHttpClientBuilderProvider bean。
32.缓存
Spring框架支持透明地向应用程序添加缓存。从本质上讲,抽象将缓存应用于方法,从而根据缓存中可用的信息减少执行次数。缓存逻辑应用透
明,不会对调用者造成任何干扰。只要通过 @EnableCaching 注释启用了缓存支持,Spring Boot就会自动配置缓存基础结构。
简而言之,将缓存添加到服务操作就像在其方法中添加相关注释一样简单,如以下示例所示:
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Component;
@Component
public class MathService {
@Cacheable("piDecimals")
public int computePiDecimal(int i) {
// ...
}
}
此示例演示了如何在可能代价高昂的操作上使用缓存。在调用 computePiDecimal 之前,抽象在 piDecimals 缓存中查找与 i 参数匹配的条目。
如果找到条目,则缓存中的内容会立即返回给调用者,并且不会调用该方法。否则,将调用该方法,并在返回值之前更新缓存。
警告
您还可以透明地使用标准JSR-107(JCache)注释(例如 @CacheResult )。但是,我们强烈建议您不要混用和匹配
Spring Cache和JCache注释。
如果您不添加任何特定的缓存库,Spring Boot会自动配置在内存中使用并发映射的 简单提供程序。当需要缓存时(例如前面示例中
的 piDecimals ),此提供程序会为您创建缓存。简单的提供程序并不是真正推荐用于生产用途,但它非常适合入门并确保您了解这些功能。当
您决定使用缓存提供程序时,请务必阅读其文档以了解如何配置应用程序使用的缓存。几乎所有提供程序都要求您显式配置在应用程序中使用的
每个缓存。有些提供了一种自定义 spring.cache.cache-names 属性定义的默认缓存的方法。
还可以透明地 更新或 逐出缓存中的数据。