前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务框架saf-1:saf工程结构拓扑解析

微服务框架saf-1:saf工程结构拓扑解析

作者头像
千里行走
发布2019-12-16 17:44:43
9220
发布2019-12-16 17:44:43
举报
文章被收录于专栏:千里行走千里行走千里行走

目录

(1).关于saf

(2).saf主要工程

(3).saf工程结构拓扑与概述

(1).关于saf

项目地址:

https://github.com/saf-group

1.一个微服务框架,完全基于注解的方式开发。

2.适用于云原生(K8S)下的微服务体系搭建,为技术中台提供底层支撑。

3.解放业务,使业务方专注于业务逻辑本身:通过注解以搭积木方式引入各式资源,每个资源都是一行注解,极大提升业务方产出效率。

(2).saf主要工程

工程名

类型

主要作用

saf

核心工程

实现所有的核心功能。

saf-boot-starter

boot-starter

封装出不同的经典boot-starter供业务使用,免去业务的调包的痛苦过程。

saf-sample

demo

用于测试saf,如调依赖包,集成测试等。

saf-boot-starter-sample

demo

用于测试saf-boot-starter,如调依赖包,集成测试等。

saf-doc

doc

saf相关的各类实战文档。

(3).saf工程结构拓扑与概述

下图为saf工程结构拓扑,由于图很大,所以本文提供原图地址,位于:

https://github.com/saf-group/saf-doc/blob/master/images/saf%E6%A1%86%E6%9E%B6%E5%B7%A5%E7%A8%8B%E6%8B%93%E6%89%91%E8%A7%A3%E6%9E%90.jpg

注意:

绿色部分是已经实现,并且生产可用。

关于saf-boot-starter, saf-boot-starter-sample, saf-sample的作用在图中,和本文的”(2).saf主要工程”中已经做了清晰的语义描述(可以类比spring, spring-boot, spring-boot-starter理解),这里主要描述saf中的各个包。

工程saf主要分5层包结构,从下到上依次为:

层级(从下到上)

名称

包组成

主要作用

一级包

二级包

1

saf基层包依赖与基层代码

saf-basic

----------

定义saf框架必须的依赖包。无代码。

saf-core

----------

saf的基础代码,主要是util,IOC,saf顶级接口抽象等核心基础代码。

2

saf基础模块

saf-monitor

saf-monitor-basic

定义监控的抽象监控,方便集成不同的监控实现。注:但实际上这个封装很鸡肋,因为不同的监控实现都很个性。

saf-monitor-prometheus

封装prometheus的监控实现。更方便saf框架和业务使用。saf中的所有组件都使用它进行度量统计与监控。

saf-logging

saf-logging-basic

定义saf依赖的基础log包。

saf-logging-apollo

使用哪种分布式配置中心实现log的一些动态调节,比如热更新日志级别等。

saf-configcenter

saf-configcenter-basic

封装分布式配置中心的顶级抽象接口,方便saf框架与业务能够自行任意选用不同的分布式配置中心。

saf-configcenter-apollo

提供apollo分布式配置中心的封装支持。

saf-configcenter-nacos

目前未支持。

3

saf基础中间件

saf-cache

saf-cache-jvm

封装guava,提供JVM内存级别的缓存。

saf-cache-redis

注解方式封装redis,同时提供metric的统计度量,以及分布式配置中心支持。

saf-cache-mongo

目前未支持。

saf-mq

saf-mq-rocketmq

注解方式封装rocketmq,同时提供metric的统计度量,以及分布式配置中心支持。

saf-mq-kafka

目前未支持。

saf-search

saf-search-elasticsearch-6.4.3-spring-data

注解方式封装es,以及分布式配置中心支持。ES这类很麻烦,因为小版本之间都存在api差异,更不必说大版本,而且还有很多封装实现,所以有可能提供很多实现,以应对生产上的不同es集群版本。其实redis也有这个问题,但是一般都是线上统一版本,这么做性价比相对高,es是真不能这么干。

saf-search-elasticsearch-7.5.0-spring-data

目前未支持。

saf-db

saf-db-druid

注解方式封装datasource,同时提供metric的统计度量,以及分布式配置中心支持。

saf-db-tidb

目前未支持。

4

rpc

saf-rpc

saf-rpc-motan

注解封装motan,同时提供metric的统计度量,以及分布式配置中心支持。

saf-rpc-motan-manager

目前未支持。这个应该有,因为只有统一在一起,才能保证admin和rpc的版本一致,降低版本风险。

saf-rpc-dubbo

目前未支持。这个实现起来工作量很大,因为要支持provider, consumer的配置放到分布式配置中心,官方注解是不支持的,需要自己再实现一套,相当于重写一遍官方注解,然后加入分布式配置中心的支持。同时要加入metric的度量统计支持。这个工作量非常大。特别注:dubbo官方虽然也支持apollo,但只是把他当做zookeeper用,注册provider和consumer。

5

web

saf-web

saf-web-basic

封装web通用的基础代码。

saf-web-classic

提供springboot内置的tomcat的web支持,同时提供health等metirc度量统计。

saf-web-webflux

目前未支持kubernetes用这类异步可能有问题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 千里行走 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档