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

您的位置:首頁技術(shù)文章
文章詳情頁

Spring Boot Admin實現(xiàn)服務(wù)健康預(yù)警功能

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

Over View

上一篇文章主要介紹了Spring Boot Admin的概況以及我們?nèi)绾卧谙到y(tǒng)中引入和使用Spring Boot Admin,以此來幫助我們更加了解自己的系統(tǒng),做到能快速發(fā)現(xiàn)、排查問題。本篇文章將用代碼演示Spring Boot Admin的消息通知功能,并利用這個開箱即用的特性來個性化我們的需求,優(yōu)化我們在服務(wù)治理方面的工作效率。

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

郵件預(yù)警

依賴引入

在Spring Boot Admin的服務(wù)端項目中引入郵件相關(guān)依賴

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

添加配置

添加Spring Mail相關(guān)配置,我們配置好我們郵箱的Smtp服務(wù)器相關(guān)信息

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)中相關(guān)的郵件配置,以下是SBA官方提供的郵件相關(guān)參數(shù)

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=目標(biāo)郵箱

配置中的ignore-changes參數(shù)表示服務(wù)從一個狀態(tài)變成其他狀態(tài)時發(fā)出預(yù)警,例如:'UNKNOWN:UP' 表示服務(wù)從未知狀態(tài)變成UP時,發(fā)出通知。當(dāng)其值是''時,表示任何狀態(tài)變更都會發(fā)出預(yù)警。若想指定其他參數(shù),參考上面的參數(shù)表。完成上述操作后,重啟Spring Boot Admin服務(wù)端,當(dāng)客戶端服務(wù)注冊進(jìn)來并且狀態(tài)變?yōu)閁P時,我們可以收到一封郵件:

Spring Boot Admin實現(xiàn)服務(wù)健康預(yù)警功能

添加郵件模版

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

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

重啟Spring Boot Admin服務(wù)端,當(dāng)客戶端服務(wù)注冊進(jìn)來并且狀態(tài)變?yōu)閁P時,我們可以收到一封郵件,如下是我們對郵件進(jìn)行本地化之后的樣式:

Spring Boot Admin實現(xiàn)服務(wù)健康預(yù)警功能

飛書預(yù)警

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

獲取通知地址

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

Spring Boot Admin實現(xiàn)服務(wù)健康預(yù)警功能

自定義通知渠道

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

public class FlyBookNotifier extends AbstractStatusChangeNotifier { private static final String DEFAULT_MESSAGE = '#{instance.registration.name} (#{instance.id}) 狀態(tài)發(fā)生轉(zhuǎn)變 #{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); }}

上面代碼是一個示例,用戶可以根據(jù)自己的需求來自定義消息體的格式和內(nèi)容。隨后我們在Spring中創(chuàng)建該通知類的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服務(wù)端,當(dāng)客戶端服務(wù)注冊進(jìn)來并且狀態(tài)變?yōu)閁P時,我們可以在飛書端收到Spring Boot Admin自動推過來的預(yù)警信息:

Spring Boot Admin實現(xiàn)服務(wù)健康預(yù)警功能

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

總結(jié)

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

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

到此這篇關(guān)于Spring Boot Admin實現(xiàn)服務(wù)健康預(yù)警功能的文章就介紹到這了,更多相關(guān)spring boot 健康預(yù)警內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
黑丝一区二区| 久久久男人天堂| 伊伊综合在线| 亚洲国产影院| 蜜桃视频第一区免费观看| 日韩三级一区| 97视频热人人精品免费| 日韩亚洲一区在线| 精品视频一区二区三区四区五区| 精品国产午夜| 免费在线观看一区| 国产精品日本一区二区三区在线 | 91福利精品在线观看| а√天堂8资源在线| 午夜性色一区二区三区免费视频| 国产福利资源一区| 中文字幕在线官网| 亚洲精品1区| 99riav1国产精品视频| 999国产精品| 日韩免费一区| 欧美一区久久久| 精品久久亚洲| 久久影院一区二区三区| 日韩欧美中文字幕电影| 高清久久精品| 日本一区二区高清不卡| 免费视频久久| 美女久久久久久 | 精品欠久久久中文字幕加勒比| 亚洲一级黄色| 久久国产三级| 久久婷婷久久| 巨乳诱惑日韩免费av| 蜜臀va亚洲va欧美va天堂| 中文字幕日韩亚洲| 麻豆精品蜜桃| 久久精品高清| 欧美激情视频一区二区三区免费| 亚洲深夜福利在线观看| 精品欧美久久| 久久婷婷一区| 亚洲香蕉久久| 国产精品高潮呻吟久久久久| 亚洲三级观看| 国产精品大片| 国产videos久久| 久久黄色影院| 国产亚洲一级| 午夜av一区| 久久国产精品毛片| 91视频一区| 久久精品不卡| 亚洲男人在线| jizzjizz中国精品麻豆| 成人高清一区| 99热精品在线| 国产亚洲一卡2卡3卡4卡新区| 久久青草久久| 麻豆91小视频| 免费在线小视频| 婷婷综合激情| 精品一区二区三区的国产在线观看 | 麻豆成人在线| 伊人精品一区| 中文精品在线| 99精品视频精品精品视频| 欧美精品不卡| 中文字幕一区日韩精品| 日韩欧美一区二区三区免费观看| 亚洲激情二区| 国产调教精品| 麻豆精品久久久| 美女视频黄 久久| 最新国产精品久久久| 国产成人精选| 国产精品久久久久久av公交车| 麻豆精品新av中文字幕| 一区三区视频| 欧美日韩精品一本二本三本| 日本aⅴ亚洲精品中文乱码| 久久九九99| 国产精品porn| 亚洲97av| 美女网站一区| 欧美激情日韩| 麻豆视频在线看| 欧美二三四区| 欧美日韩免费观看视频| 欧美日韩一视频区二区| 免费精品视频最新在线| 老色鬼精品视频在线观看播放| 羞羞答答国产精品www一本| 欧美日韩水蜜桃| av中文字幕在线观看第一页| 国产日产一区| 欧美专区一区| 午夜国产精品视频免费体验区| 亚洲免费影视| 亚洲毛片在线| 麻豆91精品| 男女男精品网站| 亚洲免费中文| 亚洲人成亚洲精品| 欧美网站在线| 国产欧美日韩影院| 成人片免费看| 一区二区精品伦理...| 国产精品成人一区二区不卡| 国产精品1区| 手机在线电影一区| 国产麻豆精品| 神马午夜在线视频| а√天堂8资源在线| 免费在线亚洲欧美| 精品久久美女| 日韩av网站在线免费观看| 国产免费av国片精品草莓男男| 久久亚洲精品中文字幕| 色综合五月天| 美女久久一区| 国产精品分类| 久久国产主播| 精品午夜视频| 日韩久久一区| 性一交一乱一区二区洋洋av| 国产精品成久久久久| 久久激五月天综合精品| av不卡在线| 亚洲资源av| 亚洲丝袜美腿一区| 亚洲精品系列| 亚洲精品九九| 婷婷精品久久久久久久久久不卡| 欧美精品一区二区三区精品| www.51av欧美视频| 欧美男人天堂| 久久精品国产久精国产爱| 国产精品亚洲综合在线观看| 日韩高清国产一区在线| 亚洲精品欧美| 国产女人18毛片水真多18精品| 久久国内精品自在自线400部| 亚洲天堂免费| 国产美女精品视频免费播放软件| 国产精品久久久久久av公交车| 国产精品中文字幕制服诱惑| 欧美中文一区| 四季av一区二区凹凸精品| 成午夜精品一区二区三区软件| 亚洲黄色免费av| 亚洲午夜91| 日韩亚洲在线| 青青久久av| 国产另类在线| 麻豆久久精品| 欧美一区二区三区激情视频| 国产欧美在线观看免费| 精品久久久久久久| 日日夜夜免费精品视频| 亚洲欧美日韩高清在线| 国产精品国产一区| 97久久亚洲| 亚洲精品乱码日韩| 国产精品日本欧美一区二区三区| 中文字幕一区久| 精品久久福利| 婷婷久久免费视频| 日韩一区二区免费看| 久久一级电影| 日本免费久久| 日韩国产一区二区| 成人亚洲一区二区| 成人污污视频| 精品欧美视频| 免费观看亚洲| 群体交乱之放荡娇妻一区二区| 色婷婷色综合| 四虎国产精品免费观看| 精品国产18久久久久久二百| 欧美精品第一区| 国产一区二区久久久久| 国产精品国码视频| 麻豆精品蜜桃视频网站| 国精品产品一区| 亚洲欧洲美洲av| 欧美jjzz| 国产一区一一区高清不卡| 国产精品女主播一区二区三区| 爽爽淫人综合网网站| 欧美日中文字幕| 超碰成人av| 日韩欧美精品| 一本大道色婷婷在线| 日韩亚洲一区在线| 亚洲a在线视频| 在线午夜精品| 国产精品嫩草99av在线| 亚洲福利久久| 亚洲一区欧美|