liangchengcheng / spring-cloud-hdsx-x2

JAVA脚手架(fegin、redis、seata、getway、swagger、hystrix、eureka、docker、elk)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[toc]

前言

基于微服务的**,构建在 B2C 电商场景下的项目实战。

  • 整体的功能:(用户系统)(订单服务 --> 商品服务)

  • 整体的功能如下图:功能图

技术

项目结构

模块 名称 端口
common 基础代码包 HTTP 无
user-service 用户 HTTP 服务 HTTP (见配置)
product-service 商品 HTTP 服务 HTTP (见配置)
order-service 订单 HTTP 服务 HTTP (见配置)
eureka-service 订单 HTTP 服务 HTTP (30000)
getway-service 订单 HTTP 服务 HTTP (8000)

后端项目,目前的项目结构如下:

[-] xxx
  ├──[-] xxx-restful // 提供对外 HTTP API 。
  ├──[-] xxx-service-api // 提供 FEGIN 服务 API 。
  ├──[-] xxx-service-impl // 提供 服务 Service 实现。

考虑到大多数公司,无需拆分的特别细,并且过多 JVM 带来的服务器成本。所以目前的设定是:

  • xxx-service-impl 内嵌在 xxx-application 中运行。
  • MQ 消费者、定时器执行器,内嵌在 xxx-service-impl 中运行。

也就是说,一个 xxx-application 启动后,该模块就完整启动了。

技术栈

后端

框架 说明 版本
Spring Boot 应用开发框架 2.2.*
Spring Cloud 应用开发框架 F版
MySQL 数据库服务器 5.6
Druid JDBC 连接池、监控组件 1.1.16
MyBatis 数据持久层框架 3.5.1
Redis key-value 数据库 暂未引入,等压测后,部分模块
Seata 分布式事务中间件 0.5.1
springfox-swagger2 API 文档 2.9.2
swagger-bootstrap-ui Swagger 增强 UI 实现 1.9.3

监控

一般来说,监控会有三种方式:

  • 1、Tracing ,我们采用 Apache SkyWalking
  • 2、Logging ,我们采用 ELK
  • 3、Metrics ,我们采用 Prometheus
框架 说明 版本
SkyWalking 分布式应用追踪系统 6.0.0
Prometheus 服务监控体系 2.9.2
Alertmanager 告警管理器 0.17.0
Grafana 仪表盘和图形编辑器 0.17.0

其它

  • Jenkins 持续集成
  • Nginx 服务器
  • Docker 容器
  • Nginx

About

JAVA脚手架(fegin、redis、seata、getway、swagger、hystrix、eureka、docker、elk)


Languages

Language:Java 93.2%Language:PLpgSQL 2.6%Language:Shell 2.0%Language:Batchfile 1.7%Language:Dockerfile 0.4%