# butte-frame-parent
**Repository Path**: ITKnow/butte-frame-parent
## Basic Information
- **Project Name**: butte-frame-parent
- **Description**: Java常用服务框架,中间组件,二次浅封装。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 51
- **Created**: 2023-05-06
- **Last Updated**: 2023-05-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# butte-frame
## 1、案例简介
Java分布式系统中,微服务基础组件(Nacos、Feign、Gateway、Seata)等,系统中间件(Quartz、Redis、Kafka、ElasticSearch,Logstash)等,对常用功能、配置、API等,进行二次浅封装并统一集成管理,以满足日常开发中基础环境搭建与临时工具的快速实现。
- **[butte-flyer](https://gitee.com/cicadasmile/butte-flyer-parent)** 组件封装的应用案例;
- **[butte-frame](https://gitee.com/cicadasmile/butte-frame-parent)** 常用技术组件二次封装;
## 2、参考文章
- 基础概述
- [微服务架构中,二次浅封装实践](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P01、微服务组件浅封装.md)
- [微服务与领域驱动设计架构实践](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P08、微服务与领域驱动.md)
- [分布式系统中数据存储方案实践](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P09、分布式数据存储方案.md)
- [分布式项目中,选型与依赖管理](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P02、选型与依赖管理.md)
- [日志管理系统,多种方式总结](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P03、日志多种管理体系.md)
- [微服务工程中,基础组件应用](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P04、微服务基础组件.md)
- [微服务网关Gateway实践总结](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P10、Gateway网关服务.md)
- [分布式架构中灰度方案实践](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P11、灰度方案实践.md)
- [监控平台SkyWalking9入门实践](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P12、SkyWalking9入门.md)
- 源码分析
- [从SpringBoot启动,阅读源码设计](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/source/03、服务启动源码分析.md)
- [服务管理与通信,基础原理分析](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/source/01、服务注册发现与通信.md)
- [应用配置管理,基础原理分析](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/source/02、服务配置管理.md)
- [从简单代码入手,分析线程池原理](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P05、线程池源码分析.md)
- [基于Apache组件,分析对象池原理](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P06、Apache对象池分析.md)
- [基于HiKariCP组件,分析连接池原理](https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/practic/P07、HiKariCP连接池分析.md)
## 3、分层架构
整体划分五分分层:网关层、应用层、业务层、中间件层、基础层,组合成整体的分布式系统。

服务总览 , 相关[脚本文件](https://gitee.com/cicadasmile/butte-flyer-parent/tree/master/flyer-script) , [微服务环境配置](https://gitee.com/cicadasmile/butte-frame-parent/wikis/微服务环境);
| 服务名 | 分层 | 端口 | 缓存库 | 数据库 | 描述 |
|:---|:---|:---|:---|:---|:---|
| flyer-gateway | 网关层 | 8010 | db1 | nacos | 路由控制 |
| flyer-facade | 应用层 | 8082 | db2 | facade | 门面服务 |
| flyer-admin | 应用层 | 8083 | db3 | admin | 后端管理 |
| flyer-account | 业务层 | 8084 | db4 | account | 账户管理 |
| flyer-quartz | 业务层 | 8085 | db5 | quartz | 定时任务 |
| kafka | 中间件 | 9092 | --- | ------ | 消息队列 |
| elasticsearch | 中间件 | 9200 | --- | ------ | 搜索引擎 |
| redis | 中间件 | 6379 | --- | ------ | 缓存中心 |
| logstash | 中间件 | 5044 | --- | es6.8.6 | 日志采集 |
| nacos | 基础层 | 8848 | --- | nacos | 注册配置 |
| seata | 基础层 | 8091 | --- | seata | 分布事务 |
| mysql | 基础层 | 3306 | --- | ------ | 数据存储 |
## 4、目录结构
在`butte-frame`中对各个技术栈进行二次封装管理,在`butte-flyer`中进行依赖引用。
``` but
butte-frame
├── frame-base 基础代码块
├── frame-jdbc 数据库组件
├── frame-core 服务基础依赖
├── frame-gateway 路由网关
├── frame-nacos 注册与配置中心
├── frame-seata 分布式事务
├── frame-feign 服务间调用
├── frame-security 安全管理
├── frame-search 搜索引擎
├── frame-redis 缓存管理
├── frame-kafka 消息中间件
├── frame-quartz 定时任务
├── frame-swagger 接口文档
└── frame-sleuth 链路日志
butte-flyer
├── flyer-gateway 网关服务:路由控制
├── flyer-facade 门面服务:功能协作接口
├── flyer-account 账户服务:用户账户
├── flyer-quartz 任务服务:定时任务
└── flyer-admin 管理服务:后端管理
```
## 5、技术栈组件
系统常用的技术栈:基础框架、微服务组件、缓存、安全管理、数据库、定时任务、工具依赖等。
|名称| 版本|说明|
|:---|:---|:---|
| spring-cloud | 2.2.5.RELEASE | 微服务框架基础 |
| spring-boot | 2.2.5.RELEASE | 服务基础依赖 |
| gateway | 2.2.5.RELEASE | 路由网关 |
| nacos | 2.2.5.RELEASE | 注册中心与配置管理 |
| seata | 2.2.5.RELEASE | 分布式事务管理 |
| feign | 2.2.5.RELEASE | 微服务间请求调用 |
| security | 2.2.5.RELEASE | 安全管理 |
| sleuth | 2.2.5.RELEASE | 请求轨迹链路 |
| security-jwt | 1.0.10.RELEASE | JWT加密组件 |
| hikari | 3.4.2 | 数据库连接池,默认 |
| mybatis-plus | 3.4.2 | ORM持久层框架 |
| kafka | 2.0.1 | MQ消息队列 |
| elasticsearch | 6.8.6 | 搜索引擎 |
| logstash | 5.2 | 日志采集 |
| redis | 2.2.5.RELEASE | 缓存管理与加锁控制 |
| quartz | 2.3.2 | 定时任务管理 |
| swagger | 2.6.1 | 接口文档 |
| apache-common | 2.7.0 | 基础依赖包 |
| hutool | 5.3.1 | 基础工具包 |
## 6、关于作者
| 有问题加:微信号↓ | 支持关注:公众号↓ |
|----|-----|
|
|
|