# calligraphy **Repository Path**: GetOver/calligraphy ## Basic Information - **Project Name**: calligraphy - **Description**: Calligraphy是基于Spring Cloud微服务化的基础功能项目。核心技术采用Spring Boot2.0以及Zuul相关核心组件,其中包含具备用户模块、商品模块、订单模块,基础工具等多个模块。代码简洁规范,架构清晰,适合初学者学习使用。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-29 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小篆 #### 介绍 Calligraphy是基于`Spring Cloud`微服务化的基础功能项目。核心技术采用`Spring Boot2.0`以及`Zuul`相关核心组件,其中包含具备用户模块、商品模块、订单模块,基础工具等多个模块。代码简洁规范,架构清晰,适合初学者学习使用。 #### 核心技术 `Spring Boot 2.0.8`以及`Spring Cloud Finchley.SR2` 相关核心组件 ![Image](https://gitee.com/hystyle/calligraphy/badge/star.svg?theme=white) [csdn](https://me.csdn.net/qq_40699535) #### 技术涉及 `Spring Cloud`、`JPA`、`Lombok`、`JWT`、`RabbitMq`、`Swagger`、`Eureka`、`config`、`Zuul`、`Hystrix`、`Feign`、`Ribbon`、`Redis`、`Mybatis`、`Mysql` *注:由于没有前端代码,本人测试都是通过 `Apizza` 接口测试工具,所以存在一定量的bug,项目也不是完整的,主旨是学习spring cloud以及技术中的查缺补漏,日后完善...* # 架构设计(图未做...) * 注册 邮箱注册 * 登录 5次错误机会,否则封锁5分钟 * 秒杀 简单操作:采用redis分布式锁 * 购物车 利用redis存储 #### 端口设置建议 * eureka: 8761 * config: 8090 * user: 8080 * order: 8081 * product: 8082 * gateway: 9000 ![我的端口设置](https://images.gitee.com/uploads/images/2019/0123/140939_ba6d1388_2206398.png "端口配置.png") (见附件) #### 安全方面 利用config将配置文件都放在了码云上统一管理,利用Zuul实现动态路由,仅对外暴露统一路径 #### 模块化 * demo-server:所有业务逻辑 * demo-client:对外暴露的接口 * demo-common:公用的对象 #### 安装教程 1. 由于是分布式项目,所以需要将对外暴露的demo-server、demo-client、bases等模块进行打包,放入本地maven仓库 2. 本地安装redis、RabbitMq、mysql等相关软件 3. 增加远程git仓库,自行创建文件,配置文件(见附件) ![输入图片说明](https://images.gitee.com/uploads/images/2019/0123/161306_ccf02dc5_2206398.png "配置中心.png") #### 后端技术: * Eureka 服务器用作服务注册服务器。 一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。 * Zuul 基于JVM路由和服务端的负载均衡器 类似nginx,反向代理的功能 * Hystrix 提供了熔断、隔离、Fallback、cache、监控等功能,能够在一个、或多个依赖同时出现问题时保证系统依然可用。 * Feign 是声明式、模板化的http客户端。旨在用最少的开销和代码将您的代码连接到http apis。 * Ribbon 提供客户端的软件负载均衡算法 * Redis 存储热点数据 * JWT 提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法。 令牌(Token)本身包含了一系列声明,应用程序可以根据这些声明限制用户对资源的访问。 * Config 配置文件统一管理 * RabbitMq 一种应用程序对应用程序的通信方法 #### 开发环境 * redis3.X * jdk1.8 * MySQL Server 5.6 * lombok * maven3.X * IntelliJ IDEA 未完待续...