LogiCommon首頁、文檔和下載- Java 通用功能組件- 科技資訊

LogiCommon 是滴滴開源的Java 版本的認證、鑑權、管理、任務調度通用功能組件和公共模塊,包括Logi-security、Logi-job。

LogiCommon 會盡量保持與具體業務的解耦,以簡單易用,輕量高效,盡可能減少用戶感知的方式做到多平台適配,同時提供可擴展的接口,讓用戶自由擴展LogiCommon 的功能,以滿足具體的業務。

  • Logi-security 主要提供基礎功能服務,主要分為認證、鑑權、管理三部分功能。其中認證包括了登錄、註冊、註銷等功能;鑑權包括了確定用戶的界面權限、資源權限的功能;管理包括了用戶、項目、角色、部門的基本操作的功能和操作日誌、消息通知的調控功能;
  • Logi-job 是分佈式的定時調度服務

1.logi-security

1.1 介紹

logi-security 提供項目大多都需要基礎的一些功能(用戶、角色、權限、登錄、註冊、操作記錄),這些功能開發簡單但是開發起來又比較繁瑣和有一定的工作量(開發、測試、聯調、編寫接口文檔等等),所以打算把這類的功能抽取出來,整合進Logi-security,讓這些項目開發人員更加專注於核心功能,避免時間花費在繁瑣的基礎功能的開發。

1.2 功能支持

主要提供:用戶、項目、角色、部門、界面權限、資源權限、操作日誌、消息通知

  • 用戶模塊:提供了註冊、登錄、認證功能,以及用戶信息的展示等基礎功能;
  • 項目模塊:提供了創建、刪除、展示、更改運行狀態等功能;
  • 部門模塊:提供了部門信息導入、部門樹形結構展示等功能;
  • 界面權限模塊:提供界面權限信息的導入、界面功能展示控制等功能;
  • 資源權限模塊:提供對項目具體資源的權限管理;
  • 操作日誌模塊:記錄用戶的操作記錄,展示記錄;
  • 消息通知模塊:用戶擁有的角色、擁有的資源權限變更等通知。

1.3 使用方式

1.3.1 添加Maven


<dependency>
    <groupId>io.github.zqrferrari</groupId>
    <artifactId>logi-security-spring-boot-starter</artifactId>
    <version>1.6.3</version>
</dependency>

1.3.2 配置文件

logi-security基於springBoot框架開發,需添加以下配置信息:


logi.security.app-name: ES
logi.security.resource-extend-bean-name: myResourceExtendImpl

# ---------------数据源信息---------------
logi.security.username=root
logi.security.password=123456
logi.security.url=jdbc:mysql://localhost:3306/logi_security?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
logi.security.driver-class-name=com.mysql.jdbc.Driver

  • app-name:表示應用的名稱,涉及到logi-security 的數據庫操作都會帶上這個條件(查詢、保存等操作);
  • resource-extend-bean-name:resourceExtend的實現類在spring容器bean的名稱,logi-security 中資源權限管理模塊,需要獲取具體資源的信息,所以用戶需實現ResourceExtend 接口並指定實現類在spring容器中bean的名稱;

1.3.3 需要實現接口

用戶可選的實現ResourceExtend 接口,如果不實現,則資源權限管理模塊的功能不能完整使用。接口詳情見代碼

1.3.4 導入數據

logi-security相關界面並沒提供【角色權限元數據、資源類別數據、部門信息數據、操作日誌相關(操作頁面、操作對象、對象分類)】的創建功能,logi-security提供了數據導入的接口。建議全部都導入,簡單的數據也行。

2.logi-job

2.1 介紹

是分佈式的定時調度服務。

2.2 功能支持

主要提供:分佈式定時調度服務、任務管理、分佈式鎖等功能

  • 分佈式定時調度服務:添加指定註解,並實現規定的接口,編寫待調度的方法;
  • 任務管理模塊:提供查看任務列表、任務詳情、手動執行任務、變更任務狀態、任務日誌等功能;
  • 分佈式鎖機制:確保多系統下,對於臨界資源的保護,和調節調度秩序,防餓死。

2.3 使用方式

2.3.1 添加Maven


<dependency>
    <groupId>io.github.zqrferrari</groupId>
    <artifactId>logi-job-spring-boot-starter</artifactId>
    <version>1.0.10</version>
</dependency>

2.3.2 配置信息

logi-job基於springBoot框架開發,在使用的時候需要在配置文件中增加幾項配置信息,如下:


spring:
  logi-job:
    jdbc-url: jdbc:mysql://localhost:3306/es_manager_test?useUnicode=true&characterEncoding=utf8&jdbcCompliantTruncation=true&allowMultiQueries=true&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    max-lifetime: 60000
    init-sql: true
    init-thread-num: 10
    max-thread-num: 20 #调度最大线程数
    log-exipre: 3  #日志保存天数,以天为单位
    app_name: arius_test02 #应用名,用户隔离机器和环境
    claim-strategy: com.didiglobal.logi.job.core.consensual.RandomConsensual #调度策略,有两种随机和广播,默认是随机

2.3.3 使用樣例


package com.didichuxing.datachannel.arius.admin.task.metadata;

import com.didichuxing.datachannel.arius.admin.metadata.job.cluster.monitor.esMonitorJob.MonitorJobHandler;
import com.didiglobal.logi.job.annotation.Task;
import com.didiglobal.logi.job.common.TaskResult;
import com.didiglobal.logi.job.core.job.Job;
import com.didiglobal.logi.job.core.job.JobContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

// @Task 注解自带了 @Component
@Task(name = "esMonitorJob", description = "monitor调度任务", cron = "0 0/1 * * * ? *", autoRegister = true)
public class ESMonitorJobTask implements Job {
    private static final Logger LOGGER = LoggerFactory.getLogger(ESMonitorJobTask.class);

    @Autowired
    private MonitorJobHandler monitorJobHandler;

    @Override
    public TaskResult execute(JobContext jobContext) throws Exception {
        LOGGER.info("class=ESMonitorJobTask||method=execute||msg=start");
        monitorJobHandler.handleJobTask("");
        return TaskResult.SUCCESS;
    }
}

3.logi-log

3.1 介紹

集成了:logi-log-log、logi-log-log4j2。

3.2 添加maven


<dependency>
    <groupId>io.github.zqrferrari</groupId>
    <artifactId>logi-log-log</artifactId>
    <version>1.0.4</version>
</dependency>

3.2 logi-log-log

logi-log-log是基於slf4j封裝的組件,為用戶提供日誌相關功能。各個業務可以選擇log4j,logback,log4j2,只要配置上橋接就可以使用。

#LogiCommon首頁文檔和下載 #Java #通用功能組件 #科技資訊

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *