久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SLS日志服務的集成配置是怎樣的

162次閱讀
沒有評論

共計 5706 個字符,預計需要花費 15 分鐘才能閱讀完成。

SLS 日志服務的集成配置是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

配置 pom.xml 依賴

!--  服務器 -- 
  dependency 
  groupId com.aliyun.openservices /groupId 
  artifactId log-loghub-producer /artifactId 
  version 0.1.4 /version 
  exclusions 
  exclusion 
  groupId com.alibaba /groupId 
  artifactId fastjson /artifactId 
  /exclusion 
  /exclusions 
  /dependency 
  dependency 
  groupId com.aliyun.openservices /groupId 
  artifactId aliyun-log-producer /artifactId 
  version 0.3.4 /version 
  /dependency 
  dependency 
  groupId com.aliyun.openservices /groupId 
  artifactId aliyun-log /artifactId 
  version 0.6.33 /version 
  /dependency 
  dependency 
  groupId com.google.protobuf /groupId 
  artifactId protobuf-java /artifactId 
  version 2.5.0 /version 
  /dependency 
  dependency 
  groupId com.aliyun.openservices /groupId 
  artifactId loghub-client-lib /artifactId 
  version 0.6.16 /version 
  /dependency

配置 AliLogConfig

package com.yhzy.doudoubookserver.global.alilog;
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.producer.LogProducer;
import com.aliyun.openservices.log.producer.ProducerConfig;
import com.aliyun.openservices.log.producer.ProjectConfig;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
 * @author zhangqinghe
 * @version 1.0.0
 * @email her550@dingtalk.com
 * @date 2020/12/23
 * @since 1.0.0
 */
@Configuration
@Scope(singleton)
public class AliLogConfig {
 public static String accessKeyId =  
 public static String accessKeySecret =  
 public static String endPoint =  
 public static String projectName = SLSEnvironment.BOOK_PROJECT;
 @Bean
 @ConditionalOnClass(LogProducer.class)
 public LogProducer getLogProducer() { LogProducer producer = new LogProducer(producerConfig());
 producer.setProjectConfig(projectConfig());
 return producer;
 }
 @Bean
 @ConditionalOnClass(ProducerConfig.class)
 public ProducerConfig producerConfig() { ProducerConfig producerConfig = new ProducerConfig();
 // 被緩存起來的日志的發送超時時間,如果緩存超時,則會被立即發送,單位是毫秒
 producerConfig.packageTimeoutInMS = 1000;
 // 每個緩存的日志包的大小的上限,不能超過 5MB,單位是字節
 producerConfig.logsBytesPerPackage = 5 * 1024 * 1024;
 // 每個緩存的日志包中包含日志數量的最大值,不能超過 4096
 producerConfig.logsCountPerPackage = 4096;
 // 單個 producer 實例可以使用的內存的上限,單位是字節
 producerConfig.memPoolSizeInByte = 1000 * 1024 * 1024;
 //IO 線程池最大線程數量,主要用于發送數據到日志服務
 producerConfig.maxIOThreadSizeInPool = 50;
 // 當使用指定 shardhash 的方式發送日志時,這個參數需要被設置,否則不需要關心。后端 merge 線程會將映射到同一個 shard 的數據 merge 在一起,而 shard 關聯的是一個 hash 區間, //producer 在處理時會將用戶傳入的 hash 映射成 shard 關聯 hash 區間的最小值。每一個 shard 關聯的 hash 區間,producer 會定時從 loghub 拉取,該參數的含義是每隔 shardHashUpdateIntervalInMS 毫秒, producerConfig.shardHashUpdateIntervalInMS = 10 * 60 * 1000;
 producerConfig.retryTimes = 3;
 return producerConfig;
 }
 @Bean
 @ConditionalOnClass(ProjectConfig.class)
 public ProjectConfig projectConfig() { return new ProjectConfig(projectName, endPoint, accessKeyId, accessKeySecret);
 }
 /**
 *  讀取 sls 對象   用于讀取數據
 * @return
 */
 @Bean
 public Client client(){
 String accessId =  
 String accessKey =  
 String host =  
 return new Client(host, accessId, accessKey);
 }
}

配置 AliLogUtil

package com.yhzy.doudoubookserver.common;
import com.aliyun.openservices.log.common.LogItem;
import com.aliyun.openservices.log.producer.LogProducer;
import com.yhzy.doudoubookserver.global.alilog.AliLogConfig;
import com.yhzy.doudoubookserver.global.alilog.CallbackLogInfo;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Vector;
 * @author zhangqinghe
 * @version 1.0.0
 * @email her550@dingtalk.com
 * @date 2020/12/23
 * @since 1.0.0
 */
@Component
public class AliLogUtil {
 @Resource
 private AliLogConfig aliLogConfig;
 public void saveLog(String projectName,String logStore, Vector LogItem  logGroup, String topic, String source,Long millis) throws InterruptedException { final LogProducer logProducer = aliLogConfig.getLogProducer();
 //  并發調用  send  發送日志
 logProducer.send(projectName, logStore, topic, source, logGroup,
 new CallbackLogInfo(projectName, logStore, topic,null, source, logGroup, logProducer));
 // 主動刷新緩存起來的還沒有被發送的日志
 logProducer.flush();
 // 等待發送線程退出
 Thread.sleep(millis);
 // 關閉后臺 io 線程,close 會將調用時刻內存中緩存的數據發送出去
 logProducer.close();
 }
}

配置 CallbackLogInfo

package com.yhzy.doudoubookserver.global.alilog;
import com.aliyun.openservices.log.common.LogItem;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.producer.ILogCallback;
import com.aliyun.openservices.log.producer.LogProducer;
import com.aliyun.openservices.log.response.PutLogsResponse;
import java.util.Vector;
 * @author zhangqinghe
 * @version 1.0.0
 * @email her550@dingtalk.com
 * @date 2020/12/23
 * @since 1.0.0
 */
public class CallbackLogInfo extends ILogCallback {
 //  保存要發送的數據,當時發生異常時,進行重試
 public String project;
 public String logstore;
 public String topic;
 public String shardHash;
 public String source;
 public Vector LogItem  items;
 public LogProducer producer;
 public int retryTimes = 0;
 public CallbackLogInfo(String project, String logstore, String topic, String shardHash, String source,
 Vector LogItem  items, LogProducer producer) { super();
 this.project = project;
 this.logstore = logstore;
 this.topic = topic;
 this.shardHash = shardHash;
 this.source = source;
 this.items = items;
 this.producer = producer;
 }
 public void onCompletion(PutLogsResponse response, LogException e) { if (e != null) {
 //  打印異常
 System.out.println(e.GetErrorCode() +  ,   + e.GetErrorMessage() +  ,   + e.GetRequestId());
 //  最多重試三次
 if (retryTimes++   3) { producer.send(project, logstore, topic, source, shardHash, items, this);
 }
 } else {
 // 請求 id
 System.out.println(send success, request id:   + response.GetRequestId());
 }
 }
}

配置 SLSEnvironment

記錄 sls 日志相關 project logStore 參數名配置

package com.yhzy.doudoubookserver.global.alilog;

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計5706字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 木里| 定襄县| 松滋市| 来宾市| 临泉县| 荔波县| 治多县| 梨树县| 平顺县| 唐山市| 米易县| 福州市| 沙田区| 兴安县| 塔河县| 景洪市| 临安市| 扎囊县| 厦门市| 醴陵市| 神木县| 左权县| 茌平县| 凭祥市| 乐昌市| 甘肃省| 青海省| 齐河县| 腾冲县| 香格里拉县| 兴宁市| 马山县| 广德县| 罗山县| 长乐市| 巴林右旗| 红河县| 获嘉县| 彰化市| 同仁县| 临沂市|