Giter Site home page Giter Site logo

yjjn / knowframework Goto Github PK

View Code? Open in Web Editor NEW

This project forked from knowstack/knowframework

0.0 0.0 0.0 14.95 MB

KnowFramework是滴滴基于开源技术组件构建Paas服务体系过程中,沉淀的业务无关的通用技术能力组件库

License: Apache License 2.0

Shell 0.01% Java 99.99%

knowframework's Introduction

项目概述

KnowFramework是滴滴基于开源技术组件构建Paas服务体系过程中沉淀的业务无关通用技术能力组件库。组件设计遵从简单易用,轻量高效,低耦合、高扩展的设计理念,核心组件如下:

  • 基于 open-telemetry 规范构建的可观性 SDK 组件库:kf-observability
  • 基于quarz+mysql构建的分布式定时调度组件库:kf-job
  • 基于资源、权限、角色构建的权限管控组件库:kf-security

1.1 介绍

遵从open-telemetry 规范的可观性SDK组件库,融入Grafana生态,为业务应用提供低门槛的Metrics+Log+Trace观测能力。详情参见: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.1 介绍

基于quarz+mysql构建的分布式定时调度服务。详情参见:kf-job-spring-boot-starter/README.md

2.2 功能支持

主要提供:分布式定时调度服务、任务管理、分布式锁等功能

  • 分布式定时调度服务:添加指定注解,并实现规定的接口,编写待调度的方法;
  • 任务管理模块:提供查看任务列表、任务详情、手动执行任务、手动添加执行任务、指定任务执行 node、变更任务状态、任务日志等功能;
  • 分布式锁机制:确保多系统下,对于临界资源的保护,和调节调度秩序,防饿死。

3.1 介绍

kf-security 提供PaaS平台基础功能(用户、角色、权限、登录、注册、操作记录),详情参见:kf-security-spring-boot-starter/README.md

3.2 功能支持

主要提供:用户、项目、角色、部门、界面权限、资源权限、操作日志、消息通知

  • 用户模块:提供了注册、登录、认证功能,以及用户信息的展示等基础功能;
  • 项目模块:提供了创建、删除、展示、更改运行状态等功能;
  • 部门模块:提供了部门信息导入、部门树形结构展示等功能;
  • 界面权限模块:提供界面权限信息的导入、界面功能展示控制等功能;
  • 资源权限模块:提供对项目具体资源的权限管理;
  • 操作日志模块:记录用户的操作记录,展示记录;
  • 消息通知模块:用户拥有的角色、拥有的资源权限变更等通知。

4.1 介绍

know-framework日志组件,集成了:kf-log:ILog、kf-log:log4j2。详情参见:kf-log/README.md

4.2 功能支持

  • ILog: ILog是基于slf4j封装的组件,为用户提供日志相关功能,如日志聚合、日志采样等等。各个业务可以选择log4j,logback,log4j2,只要配置上桥接就可以使用。

  • log4j2: kf-log提供的log4j2,是基于log4j2 2.17.1封装的,支持日志发送到kafka、ES,以及过滤重复日志功能。

knowframework's People

Contributors

kklsibulrjh65274 avatar zyler0510 avatar pencexie avatar ggzed avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.