搭建java分布式微服务架构系统,集成第三方框架应用及实现初步的简单实例,跟进时代潮流,尽可能的用到项目中所有热门技术,从中学习与实现解决实际问题。
结构介绍:后缀为server的表示为服务,后缀为cloud-api的表示为数据层提供者接口包,后缀为cloud的表示为提供者的具体实现微服务,后缀为api的表示为业务层接口微服务。 cloud-api与model为pom依赖调用,除cloud-api其它工程都为启动微服务。
- eureka注册中心服务器。
- 配置中心集中式配置文件管理。
- 配置中心服务器。
- 微服务监控服务器。
- 微服务监控与管理服务器。
- 集成mybatis-generator工具自动生成model和mapper的实例。
- 工程作用定义:与数据库对应实体统一管理,不做人工代码修改,利于数据库结构变动只需重新生成即可。
- 对数据库进行crud操作实例。
- mybatis-shardingjdbc-cloud工程集成sharding-jdbc完成分表操作实例,sharding-jdbc对分库分表水平拆分做了很好支持,适当的解决了分布式事务。
- 工程作用定义:产品模块化的分布式直接访问数据库,可以有对业务性逻辑处理,但此工程不与客户端业务直接交互,比如获取客户端请求报文不在此工程处理。
- 依赖shiro提供客服端RESTful api接口,完成单点登录,session集群,cookie安全实例。
- 完成在此工程操作集群session中的登录用户信息实例及redis单独使用实例。
- 完成一个简单的分布式锁实例。
- 工程作用定义:产品模块化的分布式接口提供,并形成swagger可视化接口文档,由此工程请求其它的cloud服务,注意的是此工程不提供给客户端直接访问,只提供给shiro-security工程访问。
- 依赖shiro-security启动引用
@EnableShiroSecurityServer
注解安全控制实例。 - 工程作用定义:单点登录,shiro自定义请求权限统一管理,由客户端直接请求。
- 依赖shiro-oauth2启动引用
@EnableShiroOauth2SecurityServer
注解安全控制实例。 - 工程作用定义:oauth2协议服务,由第三方访问。
- 依赖elasticsearch完成搜索实例。
- 工程作用定义:数据搜索业务,搜索引擎通过api工程调用。
- 依赖rabbit完成生产消费消息实例。
- 工程作用定义:部分高并发,复杂算法,无需即时回馈的业务处理,自己生产自己消费,或其它集群rabbit服务消费,通过api工程调用。
- 依赖quaryz完成定时任务实例。
- 工程作用定义:处理系统自动执行的业务。
- 依赖activiti完成流程实例。
- 工程作用定义:流程业务逻辑集中式处理,由api工程调用,此工程只处理流程中的业务逻辑和提供可视化的流程图,订单的处理人、处理结果、状态、历史记录等等需要维护到具体业务的数据库中。
- 依赖social完成第三方登录实例。
- 工程作用定义:与第三方交互。