中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現Cat中的Server+client+預警

發布時間:2021-09-29 16:50:21 來源:億速云 閱讀:121 作者:iii 欄目:大數據

這篇文章主要講解了“如何實現Cat中的Server+client+預警”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何實現Cat中的Server+client+預警”吧!

一.服務端部署

1.從github上下載源碼,導入idea,加載依賴,插件

2.加載完畢之后 maven打包 (打包比較容易失敗  失敗就多打包幾次)
 mvn clean install -DskipTests

3.打成war包之后可以放在linux下tomcat中啟動,也可以直接在idea中配置tomcat本地啟動(這里以window舉例)

4.啟動之后會自動生成項目讀取配置的目錄(此目錄需要有讀寫權限)

/data/appdatas/cat/

5.此時項目會啟動失敗,因為只有目錄沒有配置文件

6.在/data/appdatas/cat/目錄下創建client.xml,datasources.xml配置文件 內容如下

client.xml

<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
    <servers>
		#這里配置的是Cat服務端的地址和端口
        <server ip="127.0.0.1" port="2280" http-port="8080"/>
    </servers>
</config>

datasources.xml

<?xml version="1.0" encoding="utf-8"?>

<data-sources>
	<data-source id="cat">
		<maximum-pool-size>3</maximum-pool-size>
		<connection-timeout>1s</connection-timeout>
		<idle-timeout>10m</idle-timeout>
		<statement-cache-size>1000</statement-cache-size>
		<properties>
			<driver>com.mysql.jdbc.Driver</driver>
                         #服務端的Cat數據庫地址
			<url>jdbc:mysql://127.0.0.1:3306/cat</url>
			<user>root</user>
			<password>123456</password>
			<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000&useSSL=false]]></connectionProperties> 
		</properties>
	</data-source>
</data-sources>

7.項目的script目錄下會有初始化sql  加載進我們上面填的數據庫

8.配置完成之后再啟動,啟動的項目訪問路徑需要是  /cat  

9.啟動成功,訪問http://localhost:8080/cat/s/config?op=routerConfigUpdate,成功進入服務端頁面

10.默認用戶名:admin 默認密碼:admin

11.此時服務端就已經接入成功

二.客戶端接入(以springBoot項目為例)

1.導入依賴 (根據我們服務端的版本)

       <dependency>
            <groupId>com.dianping.cat</groupId>
            <artifactId>cat-client</artifactId>
            <version>3.0.0</version>
        </dependency>

2.新增配置類

@Configuration
public class CatFilterConfigure {

    @Bean
    public FilterRegistrationBean catFilter() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        CatFilter filter = new CatFilter();
        registration.setFilter(filter);
        registration.addUrlPatterns("/*");
        // registration.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        registration.setName("cat-filter");
        registration.setOrder(2);
        return registration;
    }
}

3.在resources下建立如下結構,Cat才能找到對應的項目名稱

如何實現Cat中的Server+client+預警

app.name=phoenix

4.客戶端啟動的根目錄也要有/data/appdatas/cat/ 目錄,此目錄中只需要有client.xml即可  里面需要把地址換成服務端的ip+端口,目的是讓客戶端能找到服務端的地址

5.至此,客戶端啟動就成功接入到Cat服務端,我們訪問客戶端接口URL,就能在服務端中看到

三.預警功能,以異常預警為例

1.告警服務端

觸發預警之后,它會根據我們配的地址,發送http請求,因此,具體的預警業務需要我們自己去寫

<?xml version="1.0" encoding="utf-8"?>
<sender-config>      #這里配置我們寫的接口地址,預警觸發之后會調此接口   #200是指,我們接口的返回需要是"200"
   <sender id="mail" url="http://127.0.0.1:8089/cat/test5" type="post" successCode="200" batchSend="true">                                               
      <par id="type=1500"/>
      <par id="key=title,body"/>
      <par id="re=test@test.com"/>
      <par id="to=${receiver}"/>
      <par id="value=${title},${content}"/>
   </sender>
   <sender id="weixin" url="http://127.0.0.1:8089/cat/test5" type="post" successCode="success" batchSend="true">
      <par id="domain=${domain}"/>
      <par id="email=${receiver}"/>
      <par id="title=${title}"/>
      <par id="content=${content}"/>
      <par id="type=${type}"/>
   </sender>
   <sender id="sms" url="http://test/" type="post" successCode="200" batchSend="false">
      <par id="jsonm={type:808,mobile:'${receiver}',pair:{body='${content}'}}"/>
   </sender>
</sender-config>

2.服務端配置

<?xml version="1.0" encoding="utf-8"?>
<server-config>
   <server id="default">
      <properties>
         <property name="local-mode" value="false"/>
         <property name="job-machine" value="true"/>       #別的配置不用動
         <property name="send-machine" value="true"/>  #定義當前服務告警是否發送 這兩個要為true
         <property name="alarm-machine" value="true"/> #定義當前服務是否為報警機
         <property name="hdfs-enabled" value="false"/>
         <property name="remote-servers" value="127.0.0.1:8080"/>
      </properties>
      <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="2" local-logivew-storage-time="1" har-mode="true" upload-thread="5">
         <hdfs id="dump" max-size="128M" server-uri="hdfs://127.0.0.1/" base-dir="/user/cat/dump"/>
         <harfs id="dump" max-size="128M" server-uri="har://127.0.0.1/" base-dir="/user/cat/dump"/>
         <properties>
            <property name="hadoop.security.authentication" value="false"/>
            <property name="dfs.namenode.kerberos.principal" value="hadoop/dev80.hadoop@testserver.com"/>
            <property name="dfs.cat.kerberos.principal" value="cat@testserver.com"/>
            <property name="dfs.cat.keytab.file" value="/data/appdatas/cat/cat.keytab"/>
            <property name="java.security.krb5.realm" value="value1"/>
            <property name="java.security.krb5.kdc" value="value2"/>
         </properties>
      </storage>
      <consumer>
         <long-config default-url-threshold="1000" default-sql-threshold="100" default-service-threshold="50">
            <domain name="cat" url-threshold="500" sql-threshold="500"/>
            <domain name="OpenPlatformWeb" url-threshold="100" sql-threshold="500"/>
         </long-config>
      </consumer>
   </server>
   <server id="127.0.0.1">
      <properties>
         <property name="job-machine" value="true"/>
         <property name="send-machine" value="true"/>
         <property name="alarm-machine" value="true"/>
      </properties>
   </server>
</server-config>

3.異常一般都出現在Event中,因此我們只需要配置Event告警配置即可

如何實現Cat中的Server+client+預警

4.別的配置默認即可,此時回到Event列表,如果1分鐘之內出現一次Exception,就會觸發報警

5.如果項目被try catch或者是異常被捕捉了 ,是監控不到異常的,需要在異常出現的地方埋點

Cat.logError(e);

5.至此一個簡單的異常監控報警就完成了

四.Exception+Event埋點

Event一般用來記錄異常多一點,Transaction可以根據業務來記錄

# Transaction埋點
Transaction t = Cat.newTransaction("DDDDDType", "DDDDDTypeName");
# Event埋點
Cat.logEvent("dddEventType", "dddEventName", Event.SUCCESS, "keyValuePairs");
try {
    yourBusiness();
    t.setStatus(Transaction.SUCCESS);
} catch (Exception e) {
    t.setStatus(e);
    # Event異常埋點
    Cat.logError(e);
} finally {
    t.complete();
}

這段代碼執行之后,我們在Translation和Event列表就能看到

如何實現Cat中的Server+client+預警

五.注意

1.客戶端中\data\appdatas\cat  中的 clent.xml 不可缺! 里面配置為指向服務器的ip+端口

2.服務端部署到服務器上后 , 全局系統配置 =>>客戶端路由   中的幾個ip需要替換為自己服務器的實際ip

3.建議服務端配置中的ip也都替換為服務器的實際ip

4.服務端配置中的server模型 如果有改動,需要重啟服務器

感謝各位的閱讀,以上就是“如何實現Cat中的Server+client+預警”的內容了,經過本文的學習后,相信大家對如何實現Cat中的Server+client+預警這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绵竹市| 罗甸县| 南部县| 偃师市| 连州市| 新邵县| 南城县| 武隆县| 酒泉市| 荣昌县| 巢湖市| 嘉义县| 临泉县| 千阳县| 翼城县| 平安县| 新乡县| 施甸县| 永胜县| 芷江| 龙井市| 峨眉山市| 中山市| 鹿邑县| 江川县| 克拉玛依市| 莱芜市| 天峨县| 定日县| 望谟县| 辰溪县| 安化县| 益阳市| 通城县| 孙吴县| 福海县| 德昌县| 兴国县| 图片| 巫山县| 珲春市|