Coder Social home page Coder Social logo

dataagg / daframework Goto Github PK

View Code? Open in Web Editor NEW
25.0 7.0 22.0 6.22 MB

云南数聚基础框架

Home Page: https://watano.gitbooks.io/daframework/content/

License: MIT License

Java 99.81% Batchfile 0.19%
spring-boot spring-cloud spring-mvc spring-se mybatis docker

daframework's Introduction

DAFramework -- 云南数聚基础框架

DAFramework是云南数聚科技开源的微服务基础框架, 基于Spring-boot, Spring-security, Spring-cloud, Spring-data和Docker构建. 这是一个Spring-cloud的脚手架项目, 提供一些基础服务, 帮助更多的开发人员更快速地构建他们的项目. DAFramework源于PiggyMetrics项目.

基础组件

为何选择DAFramework


  • 基于Spring-boot, Spring-MVC, Spring-security和Spring-cloud构建, 减少用户的学习成本;
  • 基于Docker构建, 帮助开发人员快速实施DevOps;
  • 完整的 微服务体系结构模式(Microservice Architecture Pattern)实现, 更先进的架构设计;
  • 模块化设计,层次结构清晰, 封装重用业务组件, 减少二次开发; 包含服务注册发现、配置中心、智能路由、负载均衡、性能监控、缓存、用户角色权限控制等;
  • 完整的代码生成工具,帮助快速开发新功能,减少重复coding工作;
  • 后端输出纯JSON(可配置为其他格式:XML,protobuf等),方便前后端分离;

基础组件


  • 配置中心: Spring-cloud config server和client
  • 服务注册发现: Spring-cloud NetFlix Eureka
  • 熔断器: Spring-cloud NetFlix Hystrix客户端和Hystrix Dashboard
  • 客户端负载均衡:Spring-cloud NetFlix Ribbon
  • 智能路由: Spring-cloud NetFlix Zuul
  • REST client: Spring-cloud NetFlix Feign
  • 监控系统: Spring-cloud NetFlix Turbine
  • 权限检查: Spring-cloud Security
  • 消息队列代理: Spring-cloud Bus
  • 数据持久化访问: Spring-Data和NutDao
  • 前端技术: ES2015/TypeScript、LESS、VueJs、Vue-router、vux、echarts、axios和EsLint
  • 前端组件:ElementMint-UI和Bootstrap4 grid.css
  • 构建工具: GradleCooking
  • 容器技术: Docker

环境搭建


后端部分

  1. 安装gradle, 去官网下载v3.x版本,并安装;
  2. 在命令行中进入DAFramework目录, 执行以下命令编译打包:
cd DAFramework
gradle bootrepackage
  1. 进入codegen目录, 执行以下命令启动Docker容器:
cd codegen
docker-compose up
  1. 在浏览器中访问系统:

前端部分

  1. 安装nodejs, 去官网下载v7.x版本NodeJs,并安装;
  2. 在命令行下安装cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
  1. 进入web目录,安装相关全局工具和相关依赖:
cd web
cnpm install -g vue-cli webpack eslint gulp cooking-cli
cnpm install
  1. 运行dev开发模式
npm run dev
  1. 运行lint检查代码文件(注:dev模式自动检查,build是也检查,lint一般只是快速检查时使用)
npm run lint
  1. 运行build工具编译生成静态文件(发布时使用)
npm run build

关于我们

daframework's People

Contributors

watano avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

daframework's Issues

使用异步消息队列处理微服务间的事件传递

使用异步消息队列处理微服务间的事件传递,解耦相关业务代码;
例如:

  1. 注册后异步创建相关业务数据
  2. 短信/站内消息/通知发送
  3. 业务数据更新后通知所有微服务作废相关缓存;

本地环境和生产环境切换

根据project.yml和projects.pro.yml配置生成相关的文件,切换不同的环境
本地环境

  1. 没有service-center,并且所有微服务都没有eurekaClient;
  2. 前端代码直接编译到\core-service\src\main\resources\public\目录下;
  3. 可以使用gradle bootrun或java jar或java app方式直接启动;
    生产环境
  4. 使用Nginx转发静态资源文件和后台API Gateway服务; 前端web代码编译到静态资源文件夹;
  5. 启动service-center,进行服务注册与发现;
  6. 使用Ribbon进行负载均衡处理;
  7. 使用 Turbine和Hystrix Dashboard作为性能监测;
  8. 可以使用docker compose进行docker运行管理;

在API Gateway层进行token和权限检查

使用ZuulFilter在路由前进行token和权限检查.

  1. 登录后使用cookies在前端保存token信息, 每次服务端请求都在header中附带token;
  2. 在Zuul路由请求时实现一个ZuulFilter进行token检查及url的权限检查;(URL权限检查)
  3. 在commons中使用公用方法根据token检查对应用户是否拥有权限;(数据权限检查)

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.