最近一直在忙著攻克個人開源的使用者中心中非同步日誌的功能,今天終於完成了這個困擾我許久的問題。
當我們沒有修改配置時,會遇到生產者連線伺服器失敗的情況
advertised.host
.name=47.94
.248
.38
我們需要把host設定為當前伺服器的ip
<?xml version="1.0" encoding="utf-8"?>
name="console_log_pattern"
value="%date | %highlight(%-5level) | %boldgreen(%msg%n)"/>
name="kafka"
name="console"
$pattern>
encoder>
level="info">
ref="kafka"/>
ref="console"/>
root>
// 關閉每次顯示kafka設定資訊
name="org.apache.kafka"
level="off"/>
configuration>
首先我們需要設定乙個formatter,即對訊息的格式化
public
inte***ce formatter
實現類
public
class
messageformatter
implements
formatter else
}}
@slf4j
public class
extends
super.start();
}@override
public void stop()
@override
mapprops = new hashmap<>();
props.put(producerconfig.bootstrap_servers_config, "");
props.put(producerconfig.key_serializer_class_config, stringserializer.class);
props.put(producerconfig.value_serializer_class_config, stringserializer.class);
props.put(producerconfig.request_timeout_ms_config, "1000");
props.put(producerconfig.retries_config, 0);
kafkatemplate = new kafkatemplate<>(new defaultkafkaproduce***ctory(props));
string logstr = this.formatter.format(event);
if (logstr != null)
}}
這裡遇到了乙個坑啊,博主直接使用了自己寫好的生產者不知道為什麼無法傳送訊息,所以新申請乙個kafkatemplate
iloggingevent 則可以進行捕獲日誌。
下面來看一下消費者
@slf4j
@component
public
class
consumer )
public
void
process(consumerrecord record)
string message = record.value().tostring();
if (login_stat.equals(topic)) else
if (log.equals(topic)) else
}long endtime = system.currenttimemillis();
log.info("submitconsumer.time=" + (endtime - starttime));
}}
log實體
@data
@allargsconstructor
@noargsconstructor
@equalsandhashcode(callsuper = true)
@table(name = "log")
@entity
public
class
logextends
baseentity
以上就是完整的非同步日誌
使用者中心位址
大家覺得好用可以給我的github賞點星星哦~
你所能想到的,就能實現,技術是沒有界限的
基於IP,基於port和基於網域名稱的三種
1 基於相同ip不同port的虛擬主機 2 將listen欄位改為 listen 80 listen 8888 以上設定表示使用80以及8888埠 3 更改虛擬主機部分為 documentroot var www html website1 documentroot var www html web...
基於函式的索引 建立基於函式的索引
基於函式的索引 1基於函式的索引是常規的b樹索引。2該索引存放的資料是由表中的資料應用函式後得到的,而不是直接存放表中的資料本身。3如果查詢條件包含與索引相同的函式,就可以使用基於函式的索引,提高查詢速度 舉例 測試表 create table student2 sno varchar2 10 pr...
基於Token的認證和基於宣告的標識
openid解決跨站點的認證問題,oauth解決跨站點的授權問題。認證和授權是密不可分的。而openid和oauth這兩套協議出自兩個不同的組織,協議上有相似和重合的之處,所以想將二者整合有些難度。好在openid connect作為openid的下一版本,在oauth 2.0的協議基礎上進行擴充套...