/jbone

jbone基于Spring Cloud框架开发,全称JavaEE Bone,旨在为中小企业提供稳定的微服务解决方案,为开发人员提供基础开发骨架,jbone包含微服务中所有常用组件,例如注册中心、服务管理、服务监控、JVM监控、内存分析、调用链跟踪、API网关等等。业务功能包括系统权限的统一管理、单点登录、CMS、电商平台、工作流平台、支付平台等等。

Primary LanguageJavaApache License 2.0Apache-2.0

概述

jbone定位

对企业

jbone采用微服务架构,为中小企业提供系统管理、内容管理、电商平台等解决方案。使中小企业花最少的成本建立自己的电商平台、企业管理平台、支付平台等。 jbone功能包括服务管理、系统管理平台、内容管理平台、电商平台、支付平台、工作流平台等子系统。

对开发

jbone为企业提供解决方案的同时,更重视对前沿技术的学习和探索;jbone使用spring cloud生态体系技术,采用微服务架构,为企业微服务架构提供一种解决方案,供开发人员学习和交流。 其中包括服务注册与发现、服务监控、服务管理、服务治理、服务网关、服务熔断等常见微服务组件。

技术交流

QQ群:547104190

系统设计

jbone功能架构图

Jbone功能架构图

jbone物理结构图

Jbone物理架构图

项目模块划分

  • jbone-cas : 用户单点登录模块
    • jbone-cas-client:客户端jar包,用于集成到需要CAS授权的系统
    • jbone-cas-server:CAS服务端,单独部署,用于完成单点登录、票据管理等
  • jbone-sm : 服务管理模块
    • jbone-sm-admin : 服务管理系统,包括服务监控、服务管理等
    • jbone-sm-register : 服务注册中心,原则上所有服务都要注册进来
  • jbone-sys : 系统管理模块
    • jbone-sys-admin : 系统管理后台
    • jbone-sys-api : 系统服务对外接口定义
    • jbone-sys-api-feign : 基于Spring Cloud Feign的调用实现
    • jbone-sys-dao : 系统管理数据层
    • jbone-sys-service : 系统管理逻辑层
    • jbone-sys-server : 系统管理服务
  • jbone-cms :内容管理模块
  • jbone-bpm : 工作流模块
  • jbone-common : 共用模块
  • jbone-configuration : 公共配置模块
  • jbone-eb : 电商平台模块
  • jbone-pay : 支付平台模块
  • jbone-im : 即时通信模块
  • jbone-ui : 以webjars形式管理前端静态资源,所有包含页面的工程需要依赖此模块。

非功能设计

可用性

HA >=99.99%(无任何单点问题,对单点故障零容忍)

性能设计

RTT < 1S(客户端的感受会受客户机器和网络的影响)

单机QPS:>100(系统容量根据机器的大小伸缩)

伸缩性设计

所有系统可以根据访问量,通过添加/减少机器的数量,实现系统伸缩

耦合性

所有系统均单独部署,除权限等基础数据外,全都相互隔离

技术选型

技术 简介 网址
Spring Boot 基础构建框架,用于快速整合各资源 https://projects.spring.io/spring-boot/
Spring Framework 底层容器 https://projects.spring.io/spring-framework/
Spring Cloud 微服务框架 https://projects.spring.io/spring-cloud/
Spring Cloud Eureka 服务注册中心 https://projects.spring.io/spring-cloud/
Spring Cloud Zuul 服务网关 https://projects.spring.io/spring-cloud/
Spring Cloud Hystrix 服务容错框架 https://projects.spring.io/spring-cloud/
Spring Cloud Feign 微服务声明式调用框架 https://projects.spring.io/spring-cloud/
Spring Boot Admin 服务管理中心 https://github.com/codecentric/spring-boot-admin
Spring Data Jpa 持久化框架 https://projects.spring.io/spring-data-jpa/
Spring Data Redis 缓存框架 https://projects.spring.io/spring-data-redis/
Apache Shiro 安全框架 http://shiro.apache.org/
thymeleaf-extras-shiro thymeleaf的shiro标签 https://github.com/theborakompanioni/thymeleaf-extras-shiro
Apereo CAS 单点登陆框架 https://github.com/apereo/cas
Spring Validator 后端验证框架 https://projects.spring.io/spring-framework/
Hibernate Validator Hibernate验证框架 http://hibernate.org/
lombok 一个通过注解自动生成get/set方法的类库 https://projectlombok.org/
webjars 以jars的形式管理前端静态资源 http://www.webjars.org/
Thymeleaf 模板引擎 http://www.thymeleaf.org/
Maven 项目构建管理 http://maven.apache.org/
Redis 分布式缓存数据库 https://redis.io/
Mysql 对象关系数据库 https://www.mysql.com/

Jbone CAS(认证中心)

实现方式

服务采用Apereo CAS作为登录认证中心,底层集成Shiro,通过Spring Cloud Feign声明式调用权限数据,完成用户授权。

定制登录认证页面

考虑到不同系统可能有显示不同风格的登录页面,后端支持配置系统登录皮肤(登录皮肤需要自己开发),也可使用默认视图。

默认视图加载系统的名字和描述信息,以下为登录服务管理系统的视图: CAS登录

Jbone SM Admin(服务管理中心)

实现方式

集成Spring Boot Admin 、Spring Cloud Hystrix,完成服务和JVM的监控

进入方式

http://jbone-sm-admin.majunwei.com:100002/admin,调入CAS认证中心,输入jbone/jbone,即可进入

功能简介

篇幅有限,简单介绍下:

系统健康概况及内存和JVM概况

系统内存分析

环境变量

环境变量

Jbone系统管理

系统管理

Jbone系统管理

用户管理

用户管理

角色管理

角色管理

jbone功能和进度表

进度

jbone部署说明

关键开源技术介绍

Spring Boot架构图

Spring Boot架构图

Spring Cloud架构图

Spring Cloud架构图

CAS认证过程

CAS认证过程