天天看點

元注解:@Retention 在hbase中用于擷取确定高優先級的RPC操作概念 在hbase中的使用代碼示例

        注解@retention可以用來修飾注解,是注解的注解,稱為元注解。

        retention注解有一個屬性value,是retentionpolicy類型的,enum retentionpolicy是一個枚舉類型,

        這個枚舉決定了retention注解應該如何去保持,也可了解為rentention 搭配 rententionpolicy使用。

        retentionpolicy有3個值:class  runtime   source

        用@retention(retentionpolicy.class)修飾的注解,表示注解的資訊被保留在class檔案(位元組碼檔案)中當程式編譯時,但不會被虛拟機讀取在運作的時候;

        用@retention(retentionpolicy.source )修飾的注解,表示注解的資訊會被編譯器抛棄,不會留在class檔案中,注解的資訊隻會留在源檔案中;

        用@retention(retentionpolicy.runtime )修飾的注解,表示注解的資訊被保留在class檔案(位元組碼檔案)中當程式編譯時,會被虛拟機保留在運作時,

        是以他們可以用反射的方式讀取。retentionpolicy.runtime 可以讓你從jvm中讀取annotation注解的資訊,以便在分析程式的時候使用.

        參見類org.apache.hadoop.hbase.regionserver.annotationreadingpriorityfunction

        用于确定高優先級的rpc操作

        1:如果請求的方法使用了qospriority of qos_high注釋,則認為是高優先級

        2:如果請求是操作meta region,則認為是高優先級(代碼層面針對此做了一些優化操作,避免過早的反序列化pb對象)