Eurekaサービス上下線監視


マイクロサービスアーキテクチャの下で、サービスの数が少なければ数十、多ければ百、サービスに対する監視は少なくない.以前の単体プロジェクトであれば、いくつかのプロジェクトを起動して固定されており、サードパーティのモニタリングツールでモニタリングし、リアルタイムで警告することができます.マイクロサービスでは、サービス数が多すぎて、いつでも拡張できます.このとき、サードパーティの監視機能は適用されません.Spring Boot Admin接続登録センターでサービスステータスを表示することができます.これはページでしか表示できません.多くの場合、自動的に監視し、メールで警告し、○○サービスがラインオフしたという機能を望んでいる.Spring Boot Adminではすでにこのような機能があり、メールの情報を構成するだけで使用できます.まず、メールに必要な依存度を導入します.

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

次に、プロファイルにメールサーバの情報を追加します.
spring.mail.host=smtp.qq.com
[email protected]
spring.mail.password=qq      
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
#     
[email protected]
#        
[email protected]

構成が完了すると、サービスがオフラインになると、メールボックスにメールが届きます.次に、Eurekaサービスで検出通知を行い、Eurekaではイベントリスニングをサポートする方法を紹介します.
  • E urekaInstanceCanceledEventサービスダウンリンクイベント
  • E urekaInstanceRegisteredEventサービス登録イベント
  • E urekaInstanceRenewedEventサービス継続イベント
  • E urekaRegistryAvailableEvent Eurekaレジストリセンター起動イベント
  • EurekaServerStartedEvent Eureka ServerStartイベント
    
    import com.netflix.appinfo.InstanceInfo;
    import org.springframework.cloud.netflix.eureka.server.event.*;
    import org.springframework.context.event.EventListener;
    import org.springframework.stereotype.Component;
    /**
    * Eureka    
    *
    * @author yinjihuan
    * @create 2018-03-09 13:45
    **/
    @Component
    public class EurekaStateChangeListener {
    
    @EventListener
    public void listen(EurekaInstanceCanceledEvent event) {
        System.err.println(event.getServerId() + "\t" + event.getAppName() + "     ");
    }
    
    @EventListener
    public void listen(EurekaInstanceRegisteredEvent event) {
        InstanceInfo instanceInfo = event.getInstanceInfo();
        System.err.println(instanceInfo.getAppName() + "    ");
    }
    
    @EventListener
    public void listen(EurekaInstanceRenewedEvent event) {
        System.err.println(event.getServerId() + "\t" + event.getAppName() + "       ");
    }
    
    @EventListener
    public void listen(EurekaRegistryAvailableEvent event) {
        System.err.println("       ");
    }
    
    @EventListener
    public void listen(EurekaServerStartedEvent event) {
        System.err.println("Eureka Server   ");
    }
  • }
    
               ,               ,          ,         。
      : Eureka     ,          ,                ,               。
               ,         :
    
    ![](https://s4.51cto.com/images/blog/202008/04/7b193479d669779dfbfd65ba03af4166.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)