微服务架构之Spring Boot(五十二)

2022-05-23 15:36:52 浏览数 (1)

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 属性定义的默认缓存的方法。

还可以透明地 更新或 逐出缓存中的数据。

0 人点赞