1 Star 0 Fork 0

buelev / dew

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0
Note

本分支构建 Dew 3.x 版本,此版本移除了 Spring Cloud,服务调度完全基于 k8s 以进一步简化服务开发。

如需基于 Spring boot 1.x 的非容器版本请切换到 1.5.1-RC tag.

基于Rust的微服务框架见: https://github.com/ideal-world/tardis

Dew微服务体系 Dew Microservice System

dew
aacfdad1579043f0a2c1928b53096b7b
Apache License 2
Maven Central

微服务一站式解决方案( http://doc.dew.idealworld.group ),提供:架构指南、容器优先/兼容Spring与Service Mesh的框架、最佳实践。

Dew [du:] 意为 露水 ,希望此体系可以像晨间的露水一样透明、静谧、丰盈。让使用者尽量不要感知Dew的存在,专注业务实现。

设计理念

微服务架构的尴尬

几乎人人都在谈微服务,每个IT企业都在做微服务架构,但大部分项目都会存在这样的尴尬:

  • 什么是微服务?怎么做微服务架构?为什么这么乱?

缺乏微服务架构设计思想 导致成功的微服务项目屈指可数,只听说微服务的好,却不知微服务的坑

  • 架构好了,框架怎么选择? dubbo、Spring Boot/Cloud、Istio、Vert.x、还是自研?大一点的企业都会选择自研,但自研又会遇到如下问题:

    • 无法传承,框架的研发人员离职后没有可以接手

    • 上手难度大,很多框架喜欢重复造轮子,做出来的与业界主流思想/标准格格不入,导致学习培训成本很高

    • 功能片面,不通用,服务框架讲求通用性,尽量让整个公司使用同一套规范以方便维护,但很多框架只实现了某些特定场景的功能,无法通用化

    • 维护成本高,尤其是对于完全自研的框架,往往需要专职人员维护

    • 与主流脱节,无法分享微服务化、容器化、服务网格化的红利

没有合适的微服务框架 导致人员技能要求高、项目研发成本高

  • 框架选型也有了,但怎么测试、发布与运维?都在说容器化,要怎么做?

缺少一体化的研发流程支撑 导致各项目规范不统一、发布效率低、容器化问题频出

Dew设计理念

上述问题是Dew必须面对的,应对的设计核心理念是:

提供微服务架构指南 + 扩展主流微服务框架
提供微服务架构指南

项目要上微服务,其架构思想是前提,《微服务架构设计》(https://gudaoxuri.gitbook.io/microservices-architecture) 做为入门书籍非常合适。

扩展主流微服务框架
  1. 简单,用最通用的、标准的、开发人员都熟悉的开发模型

  2. 全面,尽量重用市场已有能力实现,减少框架自身的维护成本

  3. 轻量,原则上不引入高侵入性的三方框架/类库

  4. 可替换,只做扩展,尽量不修改基础框架代码,开发人员完全可以直接基于基础框架开发

  5. 主流,整合流行的微服务框架

实现上我们选择 Spring Boot 这一业界主流框架,对上兼容 Spring BootService Mesh

项目结构

|- framework
|-  |- modules
|-  |-  |- parent-starter                  // 父Pom模块
|-  |-  |- boot-starter                    // 核心模块,包含Spring Boot Web相关依赖
|-  |-  |- cluster-common                  // 集群能力接口
|-  |-  |- cluster-common-test             // 集群测试模块
|-  |-  |- cluster-hazelcast               // Hazelcast集群能力实现
|-  |-  |- cluster-rabbit                  // RabbitMQ集群能力实现
|-  |-  |- cluster-redis                   // Redis集群能力实现
|-  |-  |- cluster-mqtt                    // MQTT集群能力实现
|-  |-  |- cluster-rocket                  // Rocket MQ集群能力实现
|-  |-  |- cluster-skywalking              // Skywalking集群能力实现
|-  |-  |- idempotent-starter              // 幂等处理模块
|-  |-  |- dbutils-starter                 // 动态数据库处理模块
|-  |-  |- ossutils-starter                // OSS处理模块
|-  |-  |- hbase-starter                   // Spring Boot HBase Starter 模块
|-  |-  |- test-starter                    // 单元测试模块
|-  |- assists                             // 框架辅助工具
|-  |-  |- sdkgen-maven-plugin             // SDK自动生成、上传插件
|-  |- checkstyle                          // 项目CheckStyle
|- devops                                  // DevOps部分 【!新版本暂不可用!】
|-  |- maven                               // DevOps使用到的Maven插件
|-  |-  |- dew-maven-plugin                // DevOps核心插件
|-  |-  |- dew-maven-agent                 // DevOps部署优化插件
|-  |- sh                                  // DevOps执行脚本
|-  |- cicd                                // 各CI服务的 CI/CD 配置
|-  |-  |- gitlabci                        // Gitlab CI CI/CD配置
|-  |-  |- jenkins                         // Jenkins CI/CD配置
|-  |- docker                              // DevOps使用到的镜像
|-  |-  |- dew-devops                      // 集成 Java Maven Node Git 的镜像
|-  |- it                                  // 集成测试
|- docs                                    // 文档
Copyright 2022. the original author or authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

微服务一站式解决方案,提供:架构指南、容器优先/兼容Spring Cloud与Service Mesh的框架、最佳实践及Devops标准化流程。 展开 收起
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/buelev/dew.git
git@gitee.com:buelev/dew.git
buelev
dew
dew
master

搜索帮助