成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Cloud Admin健康檢查 郵件、釘釘群通知

開發 前端
SpringBootAdmin是一個用于管理和監控SpringBoot微服務的社區項目,可以使用客戶端注冊或者Eureka服務發現向服務端提供監控信息。

[[393804]]

源碼地址:https://github.com/muxiaonong/Spring-Cloud/tree/master/cloudadmin

Admin 簡介

官方文檔:What is Spring Boot Admin?

SpringBootAdmin是一個用于管理和監控SpringBoot微服務的社區項目,可以使用客戶端注冊或者Eureka服務發現向服務端提供監控信息。注意,服務端相當于提供UI界面,實際的監控信息由客戶端Actuator提供 通過SpringBootAdmin,你可以通過華麗大氣的界面訪問到整個微服務需要的監控信息,例如服務健康檢查信息、CPU、內存、操作系統信息等等

本篇文章使用SpringBoot 2.3.3.RELEASE、SpringCloud Hoxton.SR6、SpringBoot Admin 2.2.3版本,此外,服務注冊中心采用eureka

一、SpringCloud使用SpringBoot Admin

1.1 創建一個SpringBoot項目,命名為admin-test,引入如下依賴

  1. <!-- Admin 服務 --> 
  2.  <dependency> 
  3.      <groupId>de.codecentric</groupId> 
  4.      <artifactId>spring-boot-admin-starter-server</artifactId> 
  5.      <version>2.2.1</version> 
  6.  </dependency> 
  7.  <!-- Admin 界面 --> 
  8.  <dependency> 
  9.      <groupId>de.codecentric</groupId> 
  10.      <artifactId>spring-boot-admin-server-ui</artifactId> 
  11.      <version>2.2.1</version> 
  12.  </dependency> 

1.2 啟動類

  1. @SpringBootApplication 
  2. @EnableAdminServer 
  3. public class AdminTestApplication { 
  4.  
  5.     public static void main(String[] args) { 
  6.         SpringApplication.run(AdminTestApplication.class, args); 
  7.     } 
  8.      
  9.   } 

1.3 配置文件

  1. spring.application.name=admin-test 
  2.  
  3. management.endpoints.jmx.exposure.include=* 
  4. management.endpoints.web.exposure.include=* 
  5. management.endpoint.health.show-details=always 
  6.  
  7. # spring cloud access&secret config 
  8. alibaba.cloud.access-key=**** 
  9. alibaba.cloud.secret-key=**** 

1.4 啟動項目

輸入項目地址:http://localhost:8080/applications

二、配置郵件通知

2.1 pom

  1. <dependency> 
  2.   <groupId>org.springframework.boot</groupId> 
  3.   <artifactId>spring-boot-starter-mail</artifactId> 
  4. </dependency> 

2.2 郵件配置

  1. spring.mail.host=smtp.qq.com 
  2. spring.mail.username=單純QQ號 
  3. spring.mail.password=授權碼 
  4. spring.mail.properties.mail.smpt.auth=true 
  5. spring.mail.properties.mail.smpt.starttls.enable=true 
  6. spring.mail.properties.mail.smpt.starttls.required=true 
  7.  
  8. #收件郵箱 
  9. spring.boot.admin.notify.mail.to=xxxx@qq.com 
  10. # 發件郵箱 
  11. spring.boot.admin.notify.mail.from= xxxx@qq.com 

2.3 QQ郵箱設置

找到自己的QQ郵箱

QQ郵箱 》 設置 》 賬戶 》紅框處獲取 授權碼

我們將 consumer 服務下線后,

接著我們就收到了郵件通知,告訴我們服務關閉了


三、發送釘釘群通知

找到群里面的 群設置 》 智能群助手 》 添加機器人

注意:這里的自定義關鍵詞一定要和項目的關鍵字匹配

獲取 Webhook 到項目中,這個是后面要使用到的 

啟動類:

  1. import org.springframework.boot.SpringApplication; 
  2. import org.springframework.boot.autoconfigure.SpringBootApplication; 
  3. import org.springframework.context.annotation.Bean; 
  4.  
  5. import de.codecentric.boot.admin.server.config.EnableAdminServer; 
  6. import de.codecentric.boot.admin.server.domain.entities.InstanceRepository; 
  7.  
  8. @SpringBootApplication 
  9. @EnableAdminServer 
  10. public class AdminApplication { 
  11.  
  12.   public static void main(String[] args) { 
  13.     SpringApplication.run(AdminApplication.class, args); 
  14.   } 
  15.      @Bean 
  16.       public DingDingNotifier dingDingNotifier(InstanceRepository repository) { 
  17.           return new DingDingNotifier(repository); 
  18.       } 

 通知類:

  1. import java.util.Map; 
  2.  
  3. import com.alibaba.fastjson.JSONObject; 
  4.  
  5. import de.codecentric.boot.admin.server.domain.entities.Instance; 
  6. import de.codecentric.boot.admin.server.domain.entities.InstanceRepository; 
  7. import de.codecentric.boot.admin.server.domain.events.InstanceEvent; 
  8. import de.codecentric.boot.admin.server.notify.AbstractStatusChangeNotifier; 
  9. import reactor.core.publisher.Mono; 
  10.  
  11. public class DingDingNotifier extends AbstractStatusChangeNotifier  { 
  12.   public DingDingNotifier(InstanceRepository repository) { 
  13.         super(repository); 
  14.     } 
  15.     @Override 
  16.     protected Mono<Void> doNotify(InstanceEvent event, Instance instance) { 
  17.         String serviceName = instance.getRegistration().getName(); 
  18.         String serviceUrl = instance.getRegistration().getServiceUrl(); 
  19.         String status = instance.getStatusInfo().getStatus(); 
  20.         Map<String, Object> details = instance.getStatusInfo().getDetails(); 
  21.         StringBuilder str = new StringBuilder(); 
  22.         str.append("服務預警 : 【" + serviceName + "】"); 
  23.         str.append("【服務地址】" + serviceUrl); 
  24.         str.append("【狀態】" + status); 
  25.         str.append("【詳情】" + JSONObject.toJSONString(details)); 
  26.         return Mono.fromRunnable(() -> { 
  27.             DingDingMessageUtil.sendTextMessage(str.toString()); 
  28.         }); 
  29.     } 

發送工具類

  1. import java.io.InputStream; 
  2. import java.io.OutputStream; 
  3. import java.net.HttpURLConnection; 
  4. import java.net.URL; 
  5.  
  6. import com.alibaba.fastjson.JSONObject; 
  7.  
  8. public class DingDingMessageUtil { 
  9.   public static String access_token = "Token"
  10.     public static void sendTextMessage(String msg) { 
  11.         try { 
  12.             Message message = new Message(); 
  13.             message.setMsgtype("text"); 
  14.             message.setText(new MessageInfo(msg)); 
  15.             URL url = new URL("https://oapi.dingtalk.com/robot/send?access_token=" + access_token); 
  16.             // 建立 http 連接 
  17.             HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
  18.             conn.setDoOutput(true); 
  19.             conn.setDoInput(true); 
  20.             conn.setUseCaches(false); 
  21.             conn.setRequestMethod("POST"); 
  22.             conn.setRequestProperty("Charset""UTF-8"); 
  23.             conn.setRequestProperty("Content-Type""application/Json; charset=UTF-8"); 
  24.             conn.connect(); 
  25.             OutputStream out = conn.getOutputStream(); 
  26.             String textMessage = JSONObject.toJSONString(message); 
  27.             byte[] data = textMessage.getBytes(); 
  28.             out.write(data); 
  29.             out.flush(); 
  30.             out.close(); 
  31.             InputStream in = conn.getInputStream(); 
  32.             byte[] data1 = new byte[in.available()]; 
  33.             in.read(data1); 
  34.             System.out.println(new String(data1)); 
  35.         } catch (Exception e) { 
  36.             e.printStackTrace(); 
  37.         } 
  38.     } 

消息類:

  1. public class Message { 
  2.   private String msgtype; 
  3.     private MessageInfo text; 
  4.     public String getMsgtype() { 
  5.         return msgtype; 
  6.     } 
  7.     public void setMsgtype(String msgtype) { 
  8.         this.msgtype = msgtype; 
  9.     } 
  10.     public MessageInfo getText() { 
  11.         return text; 
  12.     } 
  13.     public void setText(MessageInfo text) { 
  14.         this.text = text; 
  15.     } 

  1. public class MessageInfo { 
  2.     private String content; 
  3.     public MessageInfo(String content) { 
  4.         this.content = content; 
  5.     } 
  6.     public String getContent() { 
  7.         return content; 
  8.     } 
  9.     public void setContent(String content) { 
  10.         this.content = content; 
  11.     } 

我們下線一個服務后,就可以看到釘釘群就發了消息的通知

同時,當我們啟動服務的時候,也會有消息通知我們服務啟動了

 

四 總結

上面就是我們對admin 健康檢查的實際應用,在企業中一般會有短信通知+釘釘群通知和郵件,感興趣的小伙伴可以去試試看,還是挺好玩的,還有一個就是微信通知,在服務號 模板消息感興趣的小伙伴可以自行去研究看看,大家加油~

 

責任編輯:姜華 來源: 牧小農
相關推薦

2023-03-02 07:20:10

GRPC服務健康檢查協議

2022-02-28 07:40:23

Nacos注冊中心客戶端

2023-03-03 08:19:35

KubernetesgRPC

2017-08-25 10:20:46

Docker容器機制

2023-03-01 08:33:37

gRPC健康檢查代碼

2020-02-17 15:17:57

釘釘

2021-07-15 10:25:15

集群節點檢查

2021-04-21 09:16:04

Python開發釘釘群機器人

2020-04-14 15:33:37

Python 釘釘機器人

2021-05-29 14:14:16

阿里云釘釘低代碼開發

2023-10-14 15:36:14

PodKubernetes

2024-02-27 17:30:11

2020-12-07 06:29:13

SpringBoot

2023-05-09 07:34:25

Docker健康檢查方式

2021-09-18 16:10:48

Spring BootJava微服務

2018-08-10 12:56:00

大數據

2023-08-22 20:48:06

模型釘釘阿里云

2022-12-06 08:00:16

awscli工具監控

2020-06-10 14:01:46

阿里云釘釘Windows

2024-02-02 09:36:14

自定義排序釘釘群
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 麻豆久久精品 | 罗宾被扒开腿做同人网站 | 国产成人高清 | 天堂一区二区三区 | 久久久性色精品国产免费观看 | 91精品国产91久久久久久最新 | 在线看一区二区 | 欧美日韩黄色一级片 | 精品亚洲视频在线 | 成人深夜福利 | 99免费视频 | 亚洲午夜一区二区 | 精品欧美一区二区精品久久 | 欧美成人一区二区三区 | 成人小视频在线观看 | 日本久久久一区二区三区 | 天天视频一区二区三区 | 天天色天天色 | 91欧美精品成人综合在线观看 | 日韩精品一区二区三区视频播放 | 久久久久久综合 | 一区二区三区免费在线观看 | 中文字幕一区二区不卡 | 日韩伦理一区二区三区 | 国产视频一区二区三区四区五区 | 亚洲精品一区二区三区中文字幕 | 日日干天天操 | 成人久久久久 | 97成人免费 | 精品久久香蕉国产线看观看亚洲 | 精品视频在线免费观看 | 九色综合网| 亚洲视频欧美视频 | 亚洲国产精品久久久久秋霞不卡 | av看片网| 一区二区三区在线观看视频 | 日本又色又爽又黄的大片 | 91.com在线观看 | 狠狠爱视频 | 在线播放国产视频 | 日本三级线观看 视频 |