Skip to content

项目结构

airufei edited this page Jul 25, 2019 · 1 revision

框架结构图

img

工程简介

springcloud 微服务,Sring cloud Greenwich.SR1 spring boot 2.1.3.RELEASE 版本 。服务水平加垂直分层,集成xxl定时任务系统、Redis缓存、队列、分布式锁,监控,EFK 日志搜索方案集成实现等 https://kafeijie.com

1、xmfcn-spring-cloud-common

1、提供基础工具类相关功能,如:字符串工具类、常量类、http请求、文件相关工具、时间转换工具、枚举,model、vo等。

2、被其他工程引用,本身不提供服务能力。

2、xmfcn-spring-cloud-eureka

1、作为注册中心,提供服务发现与注册功能。

2、计划引入阿里开源的Nacos进行替换(eureka 开始闭源)。

3、xmfcn-spring-cloud-zuul

1、作为统一网关,提供网关统一入口,负责服务转发、安全校验、路由等。

2、计划引入spring cloud gateway 进行替换,spring boot2.x版本以后官方自研版本。

4、xmfcn-spring-cloud-user-api

1、提供对外用户信息功能接口,用户基础信息查询,用户注册、登录等,提供个性化的对外API能力。

2、如:分页查询用户信息接口:http://localhost:8082/user/getList 参数:parms={"pageNo":1,"pageSize":20},当前代码由https://github.com/airufei/xCode 生成

5、xmfcn-spring-cloud-user-service

1、提供对外用户信息功能接口,用户基础信息查询,用户注册、登录等,不对外开放,只对微服务体系内开放。

2、当前代码由 https://github.com/airufei/xCode 生成 所需数据库文件在xmfcn-spring-cloud/db/job-admin/xcode.sql

3、计划引入Sharding-JDBC实现分库分表以及读写分离功能。

6、xmfcn-spring-cloud-sys-service

1、作为日志基础服务,提供包括日志、缓存、队列、字典等系统相关的基础服务,不对外开放,只对微服务体系内开放。

2、所需数据库文件在xmfcn-spring-cloud/db/job-admin/xcode.sql

3、新增功能包括ES的存储于搜索功能,日志统计功能。当前实现都是基于Java api 来实现,也加入了ES SQL的支持。

4、redis 这块的基础功能使用没有问题,分布式锁功能尚未完成,不能使用。

5、集成了kafka生产者功能,其他服务直接调用此服务即可发送数据到对应的topic。

7、xmfcn-spring-cloud-job-core

1、xxl-job的基础核心工具类工程,修改工程名称和包路径是为了整体统一,内部实现还是基于xxl-job。

2、可以无需引入此功能,用maven引入相关的jar包也可以。

8、xmfcn-spring-cloud-job-admin

1、作为任务调度中心,也是由xxl-job-admin 演化而来,原版是MVC项目,为了项目统一架构,全部改成了微服务系统。

2、在原项目基础上进行了UI层的优化,代码优化和数据库表扩展

3、修改原有报警方式,采用钉钉邮件报警,可配置。

4、变更了登录方式,采用手机号登录18610000006 密码abc123

5、新增了用户管理功能、菜单功能、角色功能、字典功能

6、需要配置根域名或者IP,在application-prod或者dev中配置,如:webRoot: http://localhost:8082

7、所需要的数据库文件在父项目的db文件夹 xmfcn-spring-cloud/db/job-admin/xmfjob.sql启动

8、启动之后经过zuul访问的路径是http://localhost:8082/job

9、新增加了日志搜索功能和日志报表功能,省去了单独部署kibana服务,且kibana没有登录功能,不能很好的在生产环境使用。

9、xmfcn-spring-cloud-job-service

1、作为任务执行器,执行具体的任务,比如定时任务等等。

2、引入sys-service,引入包括队列、缓存以及分布式锁功能。

3、需要配置调度中心地址,如:http://localhost:8082/job。

4、集成了kafka消费功能,此类消费任务无需由调度中心来调度,因此也可以单出拆分一个服务来做。