https://github.com/knowstack/knowframework
KnowFramework是滴滴基于开源技术组件构建Paas服务体系过程中,沉淀的业务无关的通用技术能力组件库
https://github.com/knowstack/knowframework
elasticsearch job-scheduler open-telemetry rbac
Last synced: 9 months ago
JSON representation
KnowFramework是滴滴基于开源技术组件构建Paas服务体系过程中,沉淀的业务无关的通用技术能力组件库
- Host: GitHub
- URL: https://github.com/knowstack/knowframework
- Owner: KnowStack
- License: apache-2.0
- Created: 2022-10-27T05:06:07.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-10-17T00:59:59.000Z (almost 3 years ago)
- Last Synced: 2025-01-30T18:48:21.256Z (over 1 year ago)
- Topics: elasticsearch, job-scheduler, open-telemetry, rbac
- Language: Java
- Homepage:
- Size: 14.6 MB
- Stars: 15
- Watchers: 0
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# 项目概述
KnowFramework是滴滴基于开源技术组件构建Paas服务体系过程中沉淀的业务无关通用技术能力组件库。组件设计遵从简单易用,轻量高效,低耦合、高扩展的设计理念,核心组件如下:
- 基于 open-telemetry 规范构建的可观性 SDK 组件库:[kf-observability](./kf-observability)
- 基于quarz+mysql构建的分布式定时调度组件库:[kf-job](./kf-job-spring-boot-starter)
- 基于资源、权限、角色构建的权限管控组件库:[kf-security](./kf-security-spring-boot-starter)
## [1. kf-observability](./kf-observability)
### 1.1 介绍
遵从open-telemetry 规范的可观性SDK组件库,融入Grafana生态,为业务应用提供低门槛的Metrics+Log+Trace观测能力。详情参见:[kf-observability](./kf-observability)/[README.md](./kf-observability/README.md)
### 1.2 功能支持
- HttpClient组件:
根据需要,调用HttpUtils类对应方法,即可自动在Http头注入对应符合OpenTelemetry规范的上下文信息。
- Servlet Filter 组件
作为Http网关拦截入口,用于解析 & 注入Http头部符合OpenTelemetry规范的上下文信息,构建对应span,并对请求处理过程是否出现异常与非200状态码进行监控。
**Filter 仅对 Http 响应状态码为非 200,进行错误标注,对于应用内置状态码不做对应校验控制**。
- Spring AOP 组件
作为对Spring应用内部方法调用拦截入口,用于解析 & 注入符合OpenTelemetry规范的上下文信息,构建对应span,并对方法处理过程是否出现异常进行监控。
- Mybatis Interceptor 组件
作为对Mybatis内部SQL调用拦截入口,用于解析 & 注入符合OpenTelemetry规范的上下文信息,构建对应span,并对SQL调用过程是否出现异常进行监控。
- Thread 组件
作为线程池创建入口,用于解析 & 注入符合OpenTelemetry规范的上下文信息,构建对应span,并对线程运行方法处理过程是否出现异常进行监控。支持基于返回值 Future 的多个不同线程的上下文串联、支持两种类型的线程池接口:
1. ExecutorService
2. ScheduledExecutorService
## [2. kf-job](./kf-job-spring-boot-starter)
### 2.1 介绍
基于quarz+mysql构建的分布式定时调度服务。详情参见:[kf-job-spring-boot-starter](./kf-job-spring-boot-starter)/[README.md](./kf-job-spring-boot-starter/README.md)
### 2.2 功能支持
主要提供:分布式定时调度服务、任务管理、分布式锁等功能
- 分布式定时调度服务:添加指定注解,并实现规定的接口,编写待调度的方法;
- 任务管理模块:提供查看任务列表、任务详情、手动执行任务、手动添加执行任务、指定任务执行 node、变更任务状态、任务日志等功能;
- 分布式锁机制:确保多系统下,对于临界资源的保护,和调节调度秩序,防饿死。
## [3. kf-security](./kf-security-spring-boot-starter)
### 3.1 介绍
kf-security 提供PaaS平台基础功能(用户、角色、权限、登录、注册、操作记录),详情参见:[kf-security-spring-boot-starter](./kf-security-spring-boot-starter)/[README.md](./kf-security-spring-boot-starter/README.md)
### 3.2 功能支持
主要提供:用户、项目、角色、部门、界面权限、资源权限、操作日志、消息通知
- 用户模块:提供了注册、登录、认证功能,以及用户信息的展示等基础功能;
- 项目模块:提供了创建、删除、展示、更改运行状态等功能;
- 部门模块:提供了部门信息导入、部门树形结构展示等功能;
- 界面权限模块:提供界面权限信息的导入、界面功能展示控制等功能;
- 资源权限模块:提供对项目具体资源的权限管理;
- 操作日志模块:记录用户的操作记录,展示记录;
- 消息通知模块:用户拥有的角色、拥有的资源权限变更等通知。
## [4. kf-log](./kf-log)
### 4.1 介绍
know-framework日志组件,集成了:kf-log:ILog、kf-log:log4j2。详情参见:[kf-log](./kf-log)/[README.md](./kf-log/README.md)
### 4.2 功能支持
- ILog:
ILog是基于slf4j封装的组件,为用户提供日志相关功能,如日志聚合、日志采样等等。各个业务可以选择log4j,logback,log4j2,只要配置上桥接就可以使用。
- log4j2:
kf-log提供的log4j2,是基于log4j2 2.17.1封装的,支持日志发送到kafka、ES,以及过滤重复日志功能。