jbone采用微服务架构,为中小企业提供系统管理、内容管理、电商平台等解决方案。使中小企业花最少的成本建立自己的电商平台、企业管理平台、支付平台等。 jbone功能包括服务管理、系统管理平台、内容管理平台、电商平台、支付平台、工作流平台等子系统。
jbone为企业提供解决方案的同时,更重视对前沿技术的学习和探索;jbone使用spring cloud生态体系技术,采用微服务架构,为企业微服务架构提供一种解决方案,供开发人员学习和交流。 其中包括服务注册与发现、服务监控、服务管理、服务治理、服务网关、服务熔断等常见微服务组件。
QQ群:547104190
- jbone-cas : 用户单点登录模块
- jbone-cas-client:客户端jar包,用于集成到需要CAS授权的系统
- jbone-cas-server:CAS服务端,单独部署,用于完成单点登录、票据管理等
- jbone-cas-manager:CAS服务管理,用于管理授权服务等
- jbone-sm : 服务管理模块
- jbone-sm-admin : 服务管理系统,包括服务监控、服务管理等
- jbone-sm-register : 服务注册中心,原则上所有服务都要注册进来
- jbone-sm-monitor : 服务监控系统,主要包含服务调用链分析和trace跟踪
- jbone-sys : 系统管理模块
- jbone-sys-admin : 系统管理后台
- jbone-sys-api : 系统服务对外接口定义
- jbone-sys-api-feign : 基于Spring Cloud Feign的调用实现
- jbone-sys-core : 系统管理核心
- jbone-sys-server : 系统管理服务
- jbone-tag :全平台标签系统
- jbone-cms :内容管理模块
- jbone-bpm : 工作流模块
- jbone-common : 共用模块
- jbone-configuration : 公共配置模块
- jbone-eb : 电商平台模块
- jbone-eb-portal : 电商平台电商门户
- jbone-eb-shop : 电商平台店铺中心
- jbone-eb-item : 电商平台商品中心
- jbone-eb-trade: 电商平台交易中心
- jbone-eb-pay : 电商平台支付中心
- jbone-eb-category : 电商平台类目中心
- jbone-eb-collect : 电商平台收藏中心
- jbone-eb-comment : 电商平台评论中心
- jbone-eb-risk : 电商平台风控中心
- jbone-eb-search : 电商平台搜索引擎
- jbone-eb-recommend : 电商平台推荐引擎
- jbone-eb-card : 电商平台购物车
- jbone-eb-market : 电商平台营销中心
- jbone-eb-logistics : 电商平台物流系统
- jbone-eb-shopmanager : 电商平台店长管理后台
- jbone-eb-consumer : 电商平台消费者个人中心
- jbone-eb-manager : 电商平台电商门户管理后台
- jbone-pay : 支付平台模块
- jbone-im : 即时通信模块
- jbone-ui : 以webjars形式管理前端静态资源,所有包含页面的工程需要依赖此模块。
HA >=99.99%(无任何单点问题,对单点故障零容忍)
RTT < 1S(客户端的感受会受客户机器和网络的影响)
单机QPS:>100(系统容量根据机器的大小伸缩)
所有系统可以根据访问量,通过添加/减少机器的数量,实现系统伸缩
所有系统均单独部署,除权限等基础数据外,全都相互隔离
服务采用Apereo CAS作为登录认证中心,底层集成Shiro,通过Spring Cloud Feign声明式调用权限数据,完成用户授权。
考虑到不同系统可能有显示不同风格的登录页面,后端支持配置系统登录皮肤(登录皮肤需要自己开发),也可使用默认视图。
默认视图加载系统的名字和描述信息,以下为登录服务管理系统的视图:
集成Spring Boot Admin 、Spring Cloud Hystrix,完成服务和JVM的监控
http://jbone-sm-admin.majunwei.com:100002/admin,调入CAS认证中心,输入jbone/jbone,即可进入
篇幅有限,简单介绍下:
系统健康概况及内存和JVM概况
环境变量
将代码clone下来并导入idea或eclipse;
注意要在application.properties里修改自己到数据库用户名和密码
创建数据库jbone_sys,并通过doc/jbone_sys.sql创建表和初始化数据;
创建数据库jbone_cas,并通过doc/jbone_cas.sql创建表和初始化数据;
创建数据库jbone_zipkin,并通过doc/jbone_zipkin.sql创建表和初始化数据;
安装redis并在本地启动
安装RabbitMq并在本地启动
127.0.0.1 jbone-sm-register.majunwei.com
127.0.0.1 jbone-cas.majunwei.com
127.0.0.1 jbone-sys-server.majunwei.com
127.0.0.1 jbone-sm-admin.majunwei.com
127.0.0.1 jbone-sys-admin.majunwei.com
127.0.0.1 jbone-sm-monitor.majunwei.com
127.0.0.1 jbone-cas-manager.majunwei.com
127.0.0.1 jbone-tag-admin.majunwei.com
127.0.0.1 jbone-eb-portal.majunwei.com
127.0.0.1 jbone-eb-manager.majunwei.com
127.0.0.1 jbone-eb-consumer.majunwei.com
127.0.0.1 jbone-eb-seller.majunwei.com
127.0.0.1 jbone-bpm-admin.majunwei.com
127.0.0.1 jbone-bpm-server.majunwei.com
1、生成证书 sudo keytool -genkey -alias jbonekeystore -keyalg RSA -keystore /etc/cas/jbonekeystore
注意:要把jbone-cas.majunwei.com填进去;
输入口令:123456
2、导出证书
sudo keytool -export -file /etc/cas/jbonekeystore.crt -alias jbonekeystore -keystore /etc/cas/jbonekeystore
注意:这里输入到是上面设置的密码:123456
3、导入证书到本地JDK(客户端认证)
sudo keytool -import -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/security/cacerts -file /etc/cas/jbonekeystore.crt -alias jbonekeystore
注意:
1、这里要找到自己的JDK位置
2、这里的密码输入changeit,信任证书
常见错误:
keytool 错误: java.io.IOException: Keystore was tampered with, or password was incorrect
原因:
输入密码的时候输入changeit
4、配置tomcat SSL
找到server.xml中配置SSL的位置,填写如下内容:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/etc/cas/jbonekeystore"
keystorePass="123456" />
注意:这里是tomcat8,其他版本的配置方式可能不同,主要表现在protocol属性上。
5、将jbone-cas-server添加到tomcat中,可使用idea部署,或单独启动tomcat部署
常见问题:
Open quote is expected for attribute "keystorePass" associated with an element type "Connector".
原因有可能是配置的属性符号问题,比如中文的引号
为了方便开发人员配置证书,我们提供了脚本形式的部署。
- bat脚本: gencertCasKey.bat
- shell脚本: gencertCasKey.sh 待写
进入到脚本所在路径:
jbone/jbone-cas/jbone-cas-server/src/main/resources/
找到 gencertCasKey.bat
或 gencertCasKey.sh
替换脚本中本地JDK密钥库路径
:: "设置JDK密钥库路径"
set keystoreJDKPath="C:\devSpace\Java\jdk1.8.0_131\jre\lib\security\cacerts "
然后执行脚本,根据提示操作即可完成导入。
依次启动:
-
jbone-sm-register
-
jbone-sm-admin
-
jbone-sys-server
-
jbone-sys-admin
-
jbone-cas-server (支持两种部署方式)
单独部署方式:在tomcat单独部署(https端口号8443)
SpringBootApp方式:将
jbonekeystore
放入resources
目录下,直接运行CasWebApplication
主程序
- jbone-cas-manager(tomcat中运行,http端口号30002)
默认用户名密码:jbone/jbone