SpringCloud+apollo+elasticsearch+skywalking+zipkin

最近鹏哥在总结目前市面流行的开源项目,努力发现有价值的项目分享给大家。

项目介绍

基于SpringCloud2.0的微服务开发脚手架,整合了spring-security-oauth2、apollo、eureka、feign、hystrix、springcloud-gateway、springcloud-bus等。治理方面引入elasticsearch、skywalking、springboot-admin、zipkin等,让项目开发快速进入业务开发,而不需过多时间花费在架构搭建上。

快速开始

先决条件

首先本机先要安装以下环境,建议先学习了解springboot和springcloud基础知识。

  • git
  • java8
  • maven

开发环境搭建

可在项目根目录下执行 ./install.sh 快速搭建开发环境。如要了解具体的步骤,请看如下文档。

具体步骤如下:

克隆代码库: git clone https://github.com/zhoutaoo/SpringCloud.git

安装公共库到本地仓库:

cd common && mvn install
cd auth/authentication-client && mvn install

生成ide配置: mvn idea:idea 并导入对应的ide进行开发,IDE安装lombok插件(很重要,否则IDE会显示编译报错)

编译 & 启动

1.启动基础服务:进入docker-compose目录,执行docker-compose -f docker-compose.yml up 服务名 或单个启动docker-compose up 服务名

在启动应用之前,需要先启动数据库、缓存、MQ等中间件,可根据自己需要启动的应用选择启动某些基础组件,一般来说启动数据库、redis、rabbitmq即可,其它组件若有需要,根据如下命令启动即可。

该步骤使用了docker快速搭建相应的基础环境,需要你对docker、docker-compose有一定了解和使用经验。(注:请使用阿里的docker镜像)

SpringCloud+apollo+elasticsearch+skywalking+zipkin脚手架项目

2.启动配置中心:进入docker-compose目录,执行

#数据库初使化:
docker-compose -f docker-compose.yml -f docker-compose.config.yml up apollo-db-init
#启动配置中心应用:
docker-compose -f docker-compose.yml -f docker-compose.config.yml up apollo-portal

该步骤不是必须,若你想使用apollo为配置中心,通过以上命令启动即可。目前仅demos/producer应用使用了apollo作为配置中心

3.创建数据库及表

只有部分应用有数据库脚本,若启动的应用有数据库的依赖,请初始化表结构和数据后再启动应用。

docker方式脚本初使化:进入docker-compose目录,执行命令 docker-compose up mysql-init

子项目脚本

路径一般为:子项目/db

如:auth/db 下的脚本,请先执行ddl建立表结构后再执行dml数据初使化

应用脚本

路径一般为:子项目/应用名/src/main/db

如:demos/producer/src/main/db 下的脚本

4.启动应用

根据自己需要,启动相应服务进行测试,cd 进入相关应用目录,执行命令: mvn spring-boot:run

以下应用都依赖于rabbitmq、eureka-server,启动服务前请先启动mq和注册中心

SpringCloud+apollo+elasticsearch+skywalking+zipkin脚手架项目

5.案例示意图

以下是一个用户访问的的示意图,用户请求通过gateway-web应用网关访问后端应用,通过authorization-server应用登陆授权换取token,请求通过authentication-server应用进行权限签别后转发到"您的业务应用"中

authorization-server为授权应用,启动前请初使化好数据库。

authentication-server为签权应用,若有新增接口,请初使化相关权限数据到resources表中。

gateway-admin可动态调整gateway-web的路由策略,测试前请先配置网关的转发策略。

SpringCloud+apollo+elasticsearch+skywalking+zipkin脚手架项目

6.前端项目

确保gateway-web、organization、authorization-server、authentication-server服务启动,然后启动 前端项目,效果如下:

SpringCloud+apollo+elasticsearch+skywalking+zipkin脚手架项目

项目地址:

后端地址:https://github.com/zhoutaoo/SpringCloud

前端地址:https://github.com/zhoutaoo/SpringCloud-Admin


分享到:


相關文章: