日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring Boot Admin實現服務健康預警功能

瀏覽:236日期:2023-09-05 17:16:14

Over View

上一篇文章主要介紹了Spring Boot Admin的概況以及我們如何在系統中引入和使用Spring Boot Admin,以此來幫助我們更加了解自己的系統,做到能快速發現、排查問題。本篇文章將用代碼演示Spring Boot Admin的消息通知功能,并利用這個開箱即用的特性來個性化我們的需求,優化我們在服務治理方面的工作效率。

Spring Boot Admin內置了多種開箱即用的系統通知渠道,包括郵件、Slack、Telegram、Hipchat等多種社交媒體的通知渠道。但是考慮到它所支持的大都是一些國外的主流社交媒體,在國內的本地化可能并不是那么的友好。不過沒關系Spring Boot Admin也提供了通用的接口,使得用戶可以基于他所提供的接口來自定義通知方式。下面使用Spring Boot Admin的通知功能來實現基于郵件和國內辦公軟件“飛書”的服務健康預警。

郵件預警

依賴引入

在Spring Boot Admin的服務端項目中引入郵件相關依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>

添加配置

添加Spring Mail相關配置,我們配置好我們郵箱的Smtp服務器相關信息

spring.mail.host=your email smtp serverspring.mail.password=your passwordspring.mail.port=your email smtp server portspring.mail.test-connection=truespring.mail.username=837718548@qq.com

添加Spring Boot Admin(SBA)中相關的郵件配置,以下是SBA官方提供的郵件相關參數

Property name Description Default value spring.boot.admin.notify.mail.enabled Enable mail notifications true spring.boot.admin.notify.mail.ignore-changes Comma-delimited list of status changes to be ignored. Format: '<from-status>:<to-status>'. Wildcards allowed. 'UNKNOWN:UP' spring.boot.admin.notify.mail.template Resource path to the Thymeleaf template used for rendering. 'classpath:/META-INF/spring-boot-admin-server/mail/status-changed.html' spring.boot.admin.notify.mail.to Comma-delimited list of mail recipients 'root@localhost' spring.boot.admin.notify.mail.cc Comma-delimited list of carbon-copy recipients spring.boot.admin.notify.mail.from Mail sender 'Spring Boot Admin <noreply@localhost>' spring.boot.admin.notify.mail.additional-properties Additional properties which can be accessed from the template

我們這里使用如下配置

spring.boot.admin.notify.mail.from=837718548@qq.comspring.boot.admin.notify.mail.ignore-changes=''spring.boot.admin.notify.mail.to=目標郵箱

配置中的ignore-changes參數表示服務從一個狀態變成其他狀態時發出預警,例如:'UNKNOWN:UP' 表示服務從未知狀態變成UP時,發出通知。當其值是''時,表示任何狀態變更都會發出預警。若想指定其他參數,參考上面的參數表。完成上述操作后,重啟Spring Boot Admin服務端,當客戶端服務注冊進來并且狀態變為UP時,我們可以收到一封郵件:

Spring Boot Admin實現服務健康預警功能

添加郵件模版

Spring Boot admin發送的郵件可以自定義模板樣式,我們使用thymeleaf語法編寫郵件模板,示例模板代碼可參考本文在Github的代碼示例倉庫,編寫完模板文件之后,將文件放入項目src/main/resources/templates中,并且在配置文件中增加指定模板文件的地址:

spring.boot.admin.notify.mail.template=classpath:/templates/status-changed.html

重啟Spring Boot Admin服務端,當客戶端服務注冊進來并且狀態變為UP時,我們可以收到一封郵件,如下是我們對郵件進行本地化之后的樣式:

Spring Boot Admin實現服務健康預警功能

飛書預警

由于Spring Boot Admin內置的通知渠道都是國外的社交媒體,不過它也提供了自定義通知渠道的接口,所以我們很容易就可以自定義通知渠道,下面演示集成辦公軟件飛書的通知。

獲取通知地址

飛書中提供了聊天機器人,我們只需調用機器人的WebHook就可以實現詳細的推送(企業微信,釘釘也具有類似功能)。

Spring Boot Admin實現服務健康預警功能

自定義通知渠道

Spring Boot Admin中提供了一個AbstractStatusChangeNotifier抽象類,我們可以通過繼承它來自定義通知渠道

public class FlyBookNotifier extends AbstractStatusChangeNotifier { private static final String DEFAULT_MESSAGE = '#{instance.registration.name} (#{instance.id}) 狀態發生轉變 #{lastStatus} ➡️ #{instance.statusInfo.status} ' + 'n' + 'n 實例詳情:#{instanceEndpoint}'; private final SpelExpressionParser parser = new SpelExpressionParser(); private RestTemplate restTemplate; private URI webhookUrl; private Expression message; public FlyBookNotifier(InstanceRepository repository, RestTemplate restTemplate) { super(repository); this.restTemplate = restTemplate; this.message = parser.parseExpression(DEFAULT_MESSAGE, ParserContext.TEMPLATE_EXPRESSION); } @Override protected Mono<Void> doNotify( InstanceEvent event, Instance instance) { if (webhookUrl == null) { return Mono.error(new IllegalStateException('’webhookUrl’ must not be null.')); } return Mono .fromRunnable(() -> restTemplate.postForEntity(webhookUrl, createMessage(event, instance), Void.class)); } public void setRestTemplate(RestTemplate restTemplate) { this.restTemplate = restTemplate; } protected Object createMessage(InstanceEvent event, Instance instance) { Map<String, Object> messageJson = new HashMap<>(); messageJson.put('title', '👹警告&👼提醒'); messageJson.put('text', getText(event, instance)); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); return new HttpEntity<>(messageJson, headers); } protected String getText(InstanceEvent event, Instance instance) { Map<String, Object> root = new HashMap<>(); root.put('event', event); root.put('instance', instance); root.put('instanceEndpoint', instance.getEndpoints().toString()); root.put('lastStatus', getLastStatus(event.getInstance())); StandardEvaluationContext context = new StandardEvaluationContext(root); context.addPropertyAccessor(new MapAccessor()); return message.getValue(context, String.class); } public URI getWebhookUrl() { return webhookUrl; } public void setWebhookUrl(URI webhookUrl) { this.webhookUrl = webhookUrl; } public String getMessage() { return message.getExpressionString(); } public void setMessage(String message) { this.message = parser.parseExpression(message, ParserContext.TEMPLATE_EXPRESSION); }}

上面代碼是一個示例,用戶可以根據自己的需求來自定義消息體的格式和內容。隨后我們在Spring中創建該通知類的bean

@Configurationpublic static class NotifierConfiguration { @Bean @ConditionalOnMissingBean @ConfigurationProperties('spring.boot.admin.notify.flybook') public FlyBookNotifier flyBookNotifier(InstanceRepository repository) { return new FlyBookNotifier(repository, new RestTemplate()); }}

最后我們在項目的配置文件中添加我們飛書渠道的配置信息

spring.boot.admin.notify.flybook.ignore-changes=''spring.boot.admin.notify.flybook.webhook-url=https://open.feishu.cn/open-apis/bot/hook...

完成上述操作后,重啟Spring Boot Admin服務端,當客戶端服務注冊進來并且狀態變為UP時,我們可以在飛書端收到Spring Boot Admin自動推過來的預警信息:

Spring Boot Admin實現服務健康預警功能

至此,我們的自定義消息渠道就已經完成。通過繼承AbstractStatusChangeNotifier抽象類,我們可以很輕易的自定義自己想要實現的推送渠道(設計模式:模板方法模式)。

總結

本文主要介紹了Spring Boot Admin中所提供的多種消息預警推送渠道,并且我們可以通過自定義消息預警渠道來滿足我們自身的需求,整個過程并不需要耗費太多的人力和時間成本。我們用了兩個示例來演示如何實現Spring Boot Admin的消息預警功能,分別是郵件預警和自定義的飛書預警。

本文的示例代碼SBA-client:https://github.com/cg837718548/sba-client-demo.gitSBA-server:https://github.com/cg837718548/sba-server-demo.git

到此這篇關于Spring Boot Admin實現服務健康預警功能的文章就介紹到這了,更多相關spring boot 健康預警內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产亚洲精品久久久久婷婷瑜伽| 国内不卡的一区二区三区中文字幕| 亚洲精品国产精品粉嫩| 国产精品免费看| 亚洲精品91| 成人亚洲精品| 国产99亚洲| 制服诱惑一区二区| 午夜久久一区| 在线视频亚洲| 日韩一区网站| 国产精品一区二区精品视频观看| 欧美日韩一区二区高清| 久久爱www.| 日韩精品首页| 日韩成人一级| 国产精品白丝av嫩草影院| 欧美极品中文字幕| 国产va免费精品观看精品视频| 日韩在线观看| 日韩视频精品在线观看| 婷婷成人基地| 91精品国产自产观看在线| 国产精品s色| 国产综合视频| 高清久久一区| 国产成年精品| 亚洲一区日韩在线| 欧美激情91| 久久精品av| 亚洲色图国产| 久久精品国产68国产精品亚洲| 男女激情视频一区| 国产在线不卡一区二区三区| 国产亚洲一级| 国产探花在线精品| 7m精品国产导航在线| 97精品国产| 日韩精彩视频在线观看| 国产99精品| 精品久久国产一区| 日韩在线一二三区| 亚洲福利专区| 久久av网站| 69堂免费精品视频在线播放| 黄色av一区| 日韩国产欧美三级| 不卡一区2区| 岛国av在线播放| 欧美精品中文字幕亚洲专区| 蜜芽一区二区三区| 亚洲精品欧洲| 天堂√8在线中文| 精品视频高潮| 久久伊人国产| 美腿丝袜亚洲三区| 亚洲人成在线网站| 欧美激情在线精品一区二区三区| 亚洲我射av| 亚洲综合激情在线| 亚洲欧美高清| 首页国产欧美日韩丝袜| 欧美日韩国产高清电影| 亚洲不卡系列| 99视频精品全部免费在线视频| 日韩成人精品一区| 久久婷婷av| 亚洲在线观看| 亚洲免费中文| 亚洲精品婷婷| 日本欧美大码aⅴ在线播放| 日韩精品视频中文字幕| 婷婷精品在线观看| 日韩中文字幕一区二区三区| 热久久国产精品| 日本一区中文字幕| 欧美日韩 国产精品| 天堂va欧美ⅴa亚洲va一国产| 国产成人久久精品一区二区三区| 精品网站aaa| 久久人人精品| 中文字幕日韩高清在线| 国产一区白浆| 国产高清视频一区二区| 国产成人在线中文字幕| 亚洲精品一区二区妖精| 中文视频一区| 欧美国产免费| 欧美日韩国产传媒| 日韩成人a**站| 欧美日韩一区二区综合| 丝袜诱惑制服诱惑色一区在线观看| 欧美精品自拍| 91精品尤物| 精品捆绑调教一区二区三区| 在线视频精品| 国产精品久久久久久av公交车| 久久国产生活片100| 国产欧美一区二区三区精品酒店| 日韩精品免费一区二区在线观看| 伊人网在线播放| 亚洲在线免费| 美女国产一区二区三区| 1024精品久久久久久久久| 日韩欧美中文字幕在线视频| 国产成人精选| 日韩区一区二| 国产专区一区| 老司机免费视频一区二区| 老鸭窝毛片一区二区三区| 国产精品亚洲欧美一级在线| 国产精品伦一区二区| 日韩a一区二区| 日本一不卡视频| 国内精品99| 精品日韩在线| 97精品久久| 亚洲精品中文字幕99999| 日韩大片在线播放| 国产精品福利在线观看播放| 亚州av日韩av| 麻豆久久精品| 久久久久蜜桃| 国产视频亚洲| 欧美大黑bbbbbbbbb在线| 你懂的国产精品永久在线| 免费视频最近日韩| 日韩网站中文字幕| 国产精品jk白丝蜜臀av小说| 日本不卡在线视频| 亚洲ab电影| 中文一区一区三区免费在线观 | 天堂网在线观看国产精品| 欧美激情视频一区二区三区在线播放| 日韩高清不卡在线| 日本不卡高清视频| 日韩和欧美一区二区| 蜜桃久久精品一区二区| 久久精品123| 亚洲精品一区二区在线看| 伊人久久大香线蕉av不卡| 久久精品高清| 国产精品日韩欧美一区| 午夜精品久久久久久久久久蜜桃| 亚洲免费观看高清完整版在线观| 亚洲精一区二区三区| 久久精品 人人爱| 国产精品扒开腿做爽爽爽软件| 国产精品久久久久久妇女| 国内在线观看一区二区三区| 国产精品久久久久av电视剧| 欧美91视频| 丝袜亚洲另类欧美| 亚洲欧美在线综合| 国产精品伦一区二区| 久久精品亚洲人成影院| 日韩国产欧美在线视频| 水蜜桃精品av一区二区| 女人av一区| 欧美亚洲人成在线| 日韩免费看片| 一区二区三区网站| 日韩国产专区| 日本不卡中文字幕| 久久裸体视频| 国产精品一区二区三区美女| 尤物tv在线精品| 亚洲91视频| 你懂的亚洲视频| 伊人精品在线| 国产精品久久久久久久久免费高清| 国产日韩欧美一区在线| 美女视频黄 久久| 三级一区在线视频先锋| 国产极品模特精品一二| 欧美特黄一级大片| 中文字幕成人| 日韩1区在线| 日韩国产欧美三级| 日韩高清不卡在线| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 麻豆国产欧美一区二区三区| 久久精品三级| 精品久久久久中文字幕小说| 蜜臀va亚洲va欧美va天堂 | 亚洲91视频| 国产精品一区二区精品视频观看| 日本久久成人网| 麻豆一区二区三区| 亚洲青青久久| 日韩成人免费| 精品不卡一区| 亚洲视频二区| 欧美一区二区三区高清视频| www成人在线视频| 欧美日韩精品免费观看视完整| 精品免费av在线| 亚洲资源av| 麻豆精品视频在线观看免费| 奶水喷射视频一区|