-
Notifications
You must be signed in to change notification settings - Fork 7
saf工程编排设计
survior edited this page Nov 7, 2019
·
2 revisions
主模块名称 | 用途 | 面向的使用者 |
---|---|---|
saf-boot-parent | 只有一个pom文件呢,抽象/封装了saf提供的基础构建,开发者选择合适的基础构建进行开发。 | 业务开发同学。 |
saf-samples | 多个工程,saf的各个例子,供业务开发同学借鉴。 | 业务开发同学。 |
saf-boot-starters | 多个pom文件,定义了saf-boot-parent中每个基础构建的组成结构。saf架构师对其进行合理的抽象与封装。 | saf架构师 |
saf-parent | 只有一个pom文件,saf用到的所有包及其版本都只能在这里定义(注1)。saf架构师对其进行合理的定义。 | saf架构师 |
saf-projects | 多个工程,saf的核心目录,所有的框架代码都在这里。 | saf架构师 |
这样的体系编排,将saf底层实现与上层业务开发完全隔离开来,更高维度上的抽象与实现,更容易实现不影响业务使用前提下的架构升级。
这个工程下全部是pom文件,可以认为是"接口定义",基于springboot的spring.factories机制进行可插拔式扩展。
子模块名称 | 用途 | 备注 |
---|---|---|
saf-boot-starter-basic | 基础工程,saf的基本/核心代码,以及最基础的包依赖。 | |
saf-boot-starter-cache | 使用注解封装缓存。 | 目前支持jvm-cache(guava),redis缓存。 |
saf-boot-starter-configcenter | 使用注解封装配置中心。 | 目前支持apollo配置中心。 |
saf-boot-starter-db | 使用注解封装数据库。 | 目前支持druid。 |
saf-boot-starter-monitor | 提供监控功能。 | 目前集成的是prometheus监控,saf的各个子模块都集成了monitor,比如用prometheus监控redis, rocketmq, mapper等。 |
saf-boot-starter-mq | 使用注解封装mq。 | 目前支持rocketmq。 |
saf-boot-starter-rpc | 使用注解封装rpc。 | 目前支持motan。 |
saf-boot-starter-search | 使用注解封装search。 | 目前支持elasticsearch。 |
saf-boot-starter-web | web服务的基础构建。 | 目前支持springboot原生的tomcat。 |
saf-boot-starter-logging | log基础构建,与配置中心结合,支持自动更新日志级别等功能。 | 目前支持apollo配置中心。 |
如果业务工程使用多个组件,同时引入对应的saf-starter即可。
注意: saf-boot-starter-basic与saf-boot-starter-logging,saf-boot-starter-monitor是基础构建,其余的saf-boot-starter默认引入这3个基础构建。
业务方需求 | saf使用方式 | 备注 |
---|---|---|
业务工程使用jvm-cache | pom引入saf-boot-starter-cache-jvm | |
业务工程使用redis | pom引入saf-boot-starter-cache-redis | 注意redis-cli的版本,和server是否匹配。如果不匹配,需要在redis下新建工程目录支持新的redis-cli版本。 |
业务工程使用apollo配置中心 | pom引入saf-boot-starter-configcenter-apollo | |
业务工程使用mysql | pom引入saf-boot-starter-db-druid | |
业务工程使用rocketmq | pom引入saf-boot-starter-mq-rocketmq | |
业务工程使用motan(rpc) | pom引入saf-boot-starter-rpc-motan | |
业务工程使用elasticsearch | pom引入saf-boot-starter-search-elasticsearch | 注意elasticsearch的client与server端版本是否和saf中支持的一致,如果不一致,需要在saf的search-elasticsearch目录下新建支持新版的工程。 |
业务工程使用web | pom引入saf-boot-starter-web-classic。 |
是saf-boot-starters下各个工程的实现,与saf-boot-starters结构设计类似,不再赘述。
saf完全基于springboot构建,所有组件的集成全部基于注解,各类组件的配置全部基于配置中心,本地做到0配置文件。
(1).saf设计文档
(2).如何使用saf开发
(3).saf核心代码原理
(4).TODO