随手记(持续更新)

1. 名词

  • RDD(Resilient Distributed Datasets):弹性分布式数据集
  • BDASamplab
  • 周日期计算公式:吉姆拉尔森公式、蔡勒公式
  • nashorn:Java 8 嵌入式 JavaScript 引擎
  • Harbor:由 VMware 公司开源的企业级的 Docker Registry 管理项目,包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能
  • Service Mesh:微服务时代的 TCP/IP 协议
  • TSDB(Time Series Database ):时间序列数据库
  • AkkaAkka是一个开发库和运行环境,可以用于构建高并发、分布式、可容错、事件驱动的基于JVM的应用,使构建高并发的分布式应用更加容易,是个 Actor 模型
  • JMSJMX:分别是 Java Message ServiceJava Management Extensions 的缩写。JMS 是一种用于发送和接收消息的技术,JMX 是一种用于管理 Java 应用程序运行时的技术。Jolokia 可以提供 JMX 的远程访问方法,把 JMX 接口给强制转化成 HTTP 接口,以便于其他的监控系统进行功能对接。
  • OLAP(On-Line Analytical Processing):在线分析处理
  • OLAP(On-Line Transaction Processing):在线事务处理
  • OLAP(Analytical Massively Parallel Processing):大规模并行分析

2. 产品

介绍各种领域产品,以及以一些常用名词,方便集中记忆,也提供对比参考,希望在开发和产品角度,提供一些帮助。

1. hadoop 生态圈

  • YARN
  • Pig
  • Solr
  • ZooKeeper
  • Hbase
  • Mahout
  • Hive
  • Avro
  • Sqoop
  • Hue
  • HCatalog
  • Oozie
  • Bigtop
  • Flume
  • Drill
  • Kafka
  • Impala
  • Tez
  • Spark
  • Sentry
  • Parquet
  • Flink
  • Knox
  • Falcon
  • Ibis
  • RecordService
  • Kudu

2. js 运行时环境

3. java webFlux

  • Mockito
  • webFlx
  • vite.x

4. java 序列化

  • hessian2
  • Protostuff
  • kryo

5. 服务监控系统

  • Prometheus: Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud.
  • InfluxDB: Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
    • Telegraf: Telegraf is the open source server agent to help you collect metrics from your stacks, sensors, and systems.
  • Grafana: Operational dashboards for your data here, there, or anywhere
  • StatsD: A network daemon that runs on the Node.js platform and listens for statistics, like counters and timers, sent over UDP or TCP and sends aggregates to one or more pluggable backend services (e.g., Graphite)
  • Datadog
  • Graphite: Graphite 是应用程序监控度量值的可视化工具,包括三个组件 (Carbon, Whisper, 和Graphite-web),它的开源特性使得它能被方便定制和改进。
  • Whisper: RRD(round-robin-database) 样式的数据库,希望样本以固定的时间间隔到达。每个时间序列都存储在一个单独的文件中,新样本在一定时间后会覆盖旧样本。
  • OpenTSDB: The Scalable Time Series Database. Store and serve massive amounts of time series data without losing granularity
  • Nagios: The Open Source Standard In Monitoring
  • Sensu: 免费和付费,面向应用和系统服务的开源监控框架。它能收集和使用多种工具的度量值,并提供已定义事件报警。使用 Ruby 实现,采用“检查和处理器”设定,周期性运行检查脚本,查找预定义条件,如果条件满足,则向处理器报告。处理器用于发送通告或采取其他处置方法。
  • Kapacitor: 用于处理、监测和预警时间序列数据的开源框架。
  • TSM: 内存索引和时间结构合并树

6. APM 工具

APM(Application Performance Monitor),即应用性能监控,现代 APM 体系,基本都是参考 Google 的 Dapper(大规模分布式系统的跟踪系统)的体系来做的

1. Pinpoint

java 领域的性能分析开源项目,这个是一个韩国团队开源出来的,通过JavaAgent 的机制来做字节码代码植入,实现加入 traceid 和抓取性能数据的目的。NewRelic、Oneapm 之类的工具在 java 平台上的性能分析也是类似的机制。

2. SkyWalking

对 java 分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统,功能相对 pinpoint 稍弱一些

3. Zipkin

twitter 开源,参考 Dappe。Zipkin 的 java 应用端是通过一个叫 Brave 的组件来实现对应用内部的性能分析数据采集。

4. CAT

大众点评开源,要在代码里硬编码写一些“埋点”,也就是侵入式的。

5. Xhprof/Xhgui

两个工具的组合,是针对 PHP 应用提供 APM 能力的工具,也是非侵入式的。

7. SaaS 工具

SaaS(Software-as-a-Service),软件即服务

1. Datadog

付费 SaaS 监测工具,针对 DevOps 团队,从你的 app 或者其他各种工具获取数据并提供数据可视化功能。它把从你基础设备和软件采集的数据统一处理并存储。允许你创建仪表盘和搜索访问你提供的数据。他们目前提供数据的聚合和展示而不是提供数据分析。

  • 优点 : 开放所有 API,可以让你很灵活的开发自己的指标或整合
  • 缺点 : 尚未提供太多数据统计功能,还需要植入你的代码

2. Ruxit

付费,由 Dynatrace 开发,Ruxit 是一个应用性能监控工具,它作用于 SaaS 模型。它通过 SaaS 提供不同的 APM(Application Performance Management) 体验,并工作在高扩展性环境中。它作为一个代理安装,不需要你配置环境,它还提供了一个类似于 New Relic 的易于安装的工具。他们监控用户的活动,应用性能,服务器和网络活动。

  • 缺点 : 没有在空间上提供很多深度功能给其他的 APM 工具

3. Takipi

免费和付费,Takipi 告知你生产环境下的代码在什么时候、因什么原因而终止执行。它对所有错误进行检测,同时会给出出现错误时代码的位置和变量的状态。Takipi 是以 Java 代理的身份运行的,与任何日志文件无关,这样就会减少小于 %3 的 CPU 和 IO 运行花费。安装 Takipi 的时候,也不需要进行代码更改,不需要安装二进制依赖包或者进行构建配置的设置。就像集成 JIRA 和 Slack 那样,Takipi 可以非常简单地插入到工作流程中

  • 缺点 : 它是一个只可用在 JVM 层上的工具,因此 JVM 不支持的语言它也不支持。目前,它也没有可以与其他告警工具集成在一起的 API。

4. Rollbar

免费和付费,Rollbar 着眼于错误追踪与监控。它使用堆栈追踪来捕捉应用中出现的错误。这样做的好处是可以支持更多的语言和环境。Rollbar 也提供手工方式深入异常、事件内部,并提供报告的能力。除提供强大的异常捕获能力外,还提供了一些警报和分析能力。

  • 缺点 : Rollbar 仅能捕获“程序未捕捉异常”。如果你打算捕获程序捕捉异常或其他,只好手工来做。由于依赖顶层程序未捕捉异常处理器,它能忽略由框架产生的异常,避免线程死锁。

8. 依赖注入框架

  • Guice
  • Dagger

9. java/jvm 框架

  • Play framework: 全栈框架,它包含了Web应用和Rest服务所需要的所有组件,如:http服务器、表单处理、跨域请求保护、强大的路由机制、国际化等等。Play集成了很多ORM层。

  • Grails: A powerful Groovy-based web application framework for the JVM built on top of Spring Boot.

  • Quarkus: GraalVM OpenJDK HotSpot 量身定制的一个 Kurbernetes Native Java 框架。

  • MicroProfile: Optimizing Enterprise Java for a Microservices Architecture.

  • Micronaut: 它是一个现代化的基于 JVM 的全栈框架,用于构建模块化且易于测试的微服务或无服务程序。

  • SparkJava: A micro framework for creating web applications in Kotlin and Java 8 with minimal effort.

  • Javalin: A simple web framework for Java and Kotlin.

10. 网站搭建

工具 概述 特点 安装环境
jekyll Ruby
WordPress 开源建站系统,可用于建造个人博客,企业官网,电商平台 特点:傻瓜式、多主题、插件丰富 PHP,mysql
docsify 文档站点生成器 特点:使用简单,可装插件、响应式
dumi 文档站点生成器,适合项目、产品的官网 特点:使用简单,专为组件开发场景而生 nodejs
imgcook 根据设计稿一键智能生成代码 特点:傻瓜式操作,随意修改,AI生成代码
ant design landing 网站首页生成器 特点:模板丰富,可视化编辑网页元素,可一键上传网站,不需要购买服务器、域名等
TX兔小巢 产品反馈平台 特点:免费,一键生成网站反馈社区
百度统计 网站数据统计 特点:多场景统计分析,简单易用
one nav 导航网站搭建 特点:收费
Discuz Q PC端开源社区软件 特点:开源,功能丰富
GitHub搜索admin后sort排序 后台管理系统 特点:开箱即用
Storybook 用于开发、测试和演示可复用组件的工具
Styleguidist React 组件文档生成器
Docz React 组件文档生成器
Docusaurus 创建、维护和部署静态网站的工具
vuepress 基于 Vue.js 的静态网站生成器
vitepress vuepress升级版
idoc 文档生成工具

11. OLAP/OLDP

  • Apache Pinot : Realtime distributed OLAP datastore, designed to answer OLAP queries with low latency
  • Presto : Distributed SQL Query Engine for Big Data
  • Trino : Fast distributed SQL query engine for big data analytics
  • Apache Impala : Apache Impala is the open source, native analytic database
    for Apache Hadoop
  • Apache Doris : A fast MPP database for all modern analytics on big data

12. 流处理框架

  • Flink
  • Spark
  • samza : A distributed stream processing framework.
  • nemo : A Data Processing System for Flexible Employment With Different Deployment Characteristics.
  • Dataflow : Google Cloud Dataflow.
  • Hazelcast Jet : Hazelcast Jet is a distributed batch and stream processing system that can do stateful computations over massive amounts of data with consistent low latency.
  • Siddhi : Cloud Native Stream Processor.Tool for building fully-fledged event-driven applications.

14. 调度 ETL 工具

  • Seatunnel : About
    SeaTunnel is a distributed, high-performance data integration platform for the synchronization and transformation of massive data (offline & real-time).
  • DolphinScheduler : Apache DolphinScheduler is a distributed and extensible workflow scheduler platform with powerful DAG visual interfaces, dedicated to solving complex job dependencies in the data pipeline and providing various types of jobs available out of box.

15. 任务调度工作流工具

  • Apache Airflow : Airflow is a platform created by the community to programmatically author, schedule and monitor workflows.
  • Apache NiFi : An easy to use, powerful, and reliable system to process and distribute data.
  • Azkaban : Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs.
  • Apache Oozie : Oozie is a workflow scheduler system to manage Apache Hadoop jobs.
  • Prefect : 它是一个 Python 的开源工作流程管理器,支持在各种环境中进行分布式执行,还提供了丰富的 API 和用户界面
  • Luigi : 由 Spotify 创建的一个 Python 开源工具,用于创建复杂的长期运行的管道。Luigi 提供了许多内置的任务类型,支持多种任务之间的依赖关系
  • Dagster : 是一个用于构建、测试和部署数据工作流的 Python 开源框架,它提供了一个用于定义数据管道和数据类型的强类型系统,以及可扩展的执行引擎
  • Argo Workflows : Argo 是一个基于 Kubernetes 的工作流引擎,用于在 Kubernetes 集群上编排任务。它支持多种编排模式,如直接的任务依赖关系、条件执行和循环

16. 数据治理

  • OpenMetadata : Open Standard for Metadata. A Single place to Discover, Collaborate and Get your data right.
  • OpenLineage : An Open Standard for lineage metadata collection.
  • Apache Atlas : 大数据的元数据管理和数据治理平台
  • Marquez : Collect, aggregate, and visualize a data ecosystem’s metadata.
  • Egeria : Open metadata and governance for enterprises - automatically capturing, managing and exchanging metadata between tools and platforms, no matter the vendor.
  • Amundsen : Amundsen is a metadata driven application for improving the productivity of data analysts, data scientists and engineers when interacting with data.
  • Datahub : The Metadata Platform for the Modern Data Stack.
  • Metacat : Metacat is a unified metadata exploration API service.

17. 数据采集

  • Apache Sqoop : 已退休。Apache Sqoop is a tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases.
  • Apache Flume : Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data.
  • Morphlines : 降低了 Hadoop 平台上开发和维护 ETL 流程的时间和成本,可以抽取、转换并加载数据
  • Apache Gobblin : A distributed data integration framework that simplifies common aspects of big data integration such as data ingestion, replication, organization and lifecycle management for both streaming and batch data ecosystems.

18. 内存数据库

  • Redis
  • MemCached : Free & open source, high-performance, distributed memory object caching system.
  • HANA : Hana is a header-only library for C++ metaprogramming suited for computations on both types and values.

19. 数据湖

  • Apache Iceberg : Iceberg is a high-performance format for huge analytic tables.
  • Apache Hudi : Hudi brings transactions, record-level updates/deletes and change streams to data lakes.

20. 容器

  • Docker
  • Podman : A tool for managing OCI containers and pods.
  • Buildah : A tool that facilitates building OCI images.
  • Skopeo : Work with remote images registries - retrieving information, images, signing content.

21. 其他

  • Alluxio : 以内存为中心的虚拟的分布式存储系统,它统一了数据访问的方式,为上层计算框架和底层存储系统构建了桥梁
  • Apache Kyuubi : 统一多租户 JDBC 接口,拓展了在 spark 中多租户的支持

22. 通信框架

1. 网络通信框架

  • Netty
  • Mina : Really fast deployer and server automation tool.(Written in Ruby)
  • Grizzly : NIO Event Development Simplified.

2. Web Servlet 容器

  • Tomcat
  • Jetty
  • undertow : Undertow is a flexible performant web server written in java, providing both blocking and non-blocking API’s based on NIO.

3. Web 服务器

  • Apache
  • Nginx

23. 配置文件

  • properties
  • json
  • xml
  • yaml
  • toml
  • hocon

24. 一些工具包

  • Archaius : 实现了动态修改配置值的功能,在修改配置无需重启服务。其核心思想是轮询配置源,定时从配置中心读取数据,并通知监听器更新内容
  • Antlr4 : 语法生成器工具,可用于读取、处理、执行和翻译结构化的文本或二进制文
  • Dropwizard : 一个 Java 框架,用于开发易于运维,高性能的 RESTful 网络服务

25. 语法分析器

  • Antlr
  • Javacc
  • SqlParser(位 于Alibaba 的 Druid 库中)

26. 日志收集器

  • Logstash
  • Filebeat
  • Fluentd : Fluentd is an open source data collector for unified logging layer
  • Fluent Bit : Fluent Bit is a super fast, lightweight, and highly scalable logging and metrics processor and forwarder. It is the preferred choice for cloud and containerized environments
  • Vector : A lightweight, ultra-fast tool for building observability pipelines
  • rsyslog
  • syslog-ng
  • Logagent
  • logtail

27. python 工具

  • Poetry : Python 依赖管理和打包工具

28. 可视化

  • tableau:一个可视化分析平台,它改变了我们使用数据解决问题的方式,使个人和组织能够充分利用自己的数据。收费。
  • Apache Superset:An open-source modern data exploration and visualization platform。使用 Python+React+jQuary。
  • Metabase:Fast analytics with the friendly UX and integrated tooling to let your company explore data on their own。
  • Redash:Connect and query your data sources, build dashboards to visualize data and share them with your company。使用 Python+Angular+React。