SpringBootAdmin邮件通知

在上一篇中我们学习到了 Admin Service Clustering 分布式缓存配置 ,这一篇我们来学习,客户端离线,出现故障的时候,我们这么能及时知道呢,发现邮件通知也许是最简单的方式了!

邮件通知

邮件通知将作为使用Thymeleaf模板呈现的HTML电子邮件进行传递。要启用邮件通知
将spring-boot-starter-mail添加到admin Service 依赖中:
pom.xml:


    org.springframework.boot
    spring-boot-starter-mail

配置文件中加入配置

application.properties:

spring.mail.host = smtp.163.com
[email protected]
spring.mail.password=xxxxxxxxx //自己的授权码
[email protected] //邮件收件人
[email protected] //邮件发件人

我们这里以网易邮箱来做测试,在做发送测试前,大家先去注册一下,并且在设置里面去开启服务;
SpringBootAdmin邮件通知_第1张图片
开启后会给一个授权码,一定要保持起来,这就是配置文件中的密码,请大家注意

代码中配置通知提醒配置

客户端离线和重启的时候发送邮件通知,创建NotifierConfiguration类:

/**
 * @author qrn
 * @version 1.0
 * @date 2021/4/9 17:53
 * 邮箱事件配置: 通知提醒 每10分钟发送一次提醒
 */
@Configuration(proxyBeanMethods = false)
public class NotifierConfiguration {

    private final InstanceRepository repository;

    private final ObjectProvider> otherNotifiers;


    public NotifierConfiguration(InstanceRepository repository, ObjectProvider> otherNotifiers) {
        this.repository = repository;
        this.otherNotifiers = otherNotifiers;
    }

    @Bean
    public FilteringNotifier filteringNotifier() { // <1>
        CompositeNotifier delegate = new CompositeNotifier(this.otherNotifiers.getIfAvailable(Collections::emptyList));
        return new FilteringNotifier(delegate, this.repository);
    }

    /**
     * 重启/离线应用程序发送提醒
     * @return
     */
    @Primary
    @Bean(initMethod = "start", destroyMethod = "stop")
    public RemindingNotifier remindingNotifier() { // <2>
        RemindingNotifier notifier = new RemindingNotifier(filteringNotifier(), this.repository);
        notifier.setReminderPeriod(Duration.ofMinutes(10)); //提醒将每10分钟发送一次
        notifier.setCheckReminderInverval(Duration.ofSeconds(10)); //安排每10秒发送一次到期提醒
        return notifier;
    }
}

配置成功了之后,启动adminservice,在启动客服端,在然后停掉客户端,等待片刻,看是否会有邮件发送,如果收到那么就是配置成功了
客服端离线发送的邮件:
SpringBootAdmin邮件通知_第2张图片
当前客户端重新启动上线发送的邮件:
SpringBootAdmin邮件通知_第3张图片
说明上述我们配置成功了。

邮件通知配置选项

名称 描述 默认值
spring.boot.admin.notify.mail.enabled 启用邮件通知 true
spring.boot.admin.notify.mail.ignore-changes 以逗号分隔的状态更改列表将被忽略。格式:“ <从状态>:<至状态>”。允许使用通配符。 "UNKNOWN:UP"
spring.boot.admin.notify.mail.template 用于渲染的Thymeleaf模板的资源路径。 "classpath:/META-INF/spring-boot-admin-server/mail/status-changed.html"
spring.boot.admin.notify.mail.to 逗号分隔的邮件收件人列表 "root@localhost"
spring.boot.admin.notify.mail.cc 逗号分隔的复本收件人列表
spring.boot.admin.notify.mail.from 邮件发件人 "Spring Boot Admin "
spring.boot.admin.notify.mail.additional-properties 可以从模板访问的其他属性

配置实例demo代码地址:
SpringBootAdminDemo
欢迎大家在下面讨论,学习。

你可能感兴趣的:(java)