framework (架构师-脚手架工程)

2019-04-18  本文已影响0人  岂安于现状

framework (架构师-脚手架工程) 持续完善中。。。GitHub

一、概述

     最近在这段时间主要从事公司的基础架构建设,包括技术选型、环境搭建、项目基础模块搭建...

     在此过程中真正意义干了一部分架构师或者运维这边的工作。虽然此过程枯燥无法,而且踩了无数坑,比如如何定义parent模块、如何定义basic模块、gateway仅支持webflux等等。由于之前都是一直用别人写好的,完全不能理会其中的很多设计意义,所以通过此工程的搭建,真正意义在经验上有了很大的提升。

     记录此过程,主要是要提醒自己,万事一定要自己去亲手试,鞭策自己不断学习,同时也分析给各位,让大家尽量少走很多弯路。此脚手架还正在不断完善中,我后面再忙一定会把这个项目好好打造,由于自己的能力有限,希望各位能提供宝贵的意见,邮箱: 2109921940@qq.com,感激不尽,如果对大家有帮助,希望大家能点一颗小星星支持一下。

二、技术体系

SpringBoot

SpringCloud: Gateway 、Feign

Spring:Security

Nacos:注册中心、配置中心

Redis

ElasticSearch

MySQL

Mybatis

Swagger

RabbitMQ

辅助

Docker

Nexus

Gitlib

以上是主要的技术架构,其中包含了很多优化,比如HttpClient的替换等各种优化。各种技术都会有具体的实现,本项目结合电商做一个demo,大家可以基于这个做扩展。

三、模块说明

parent

basic

gateway

order

generate-util

持续扩建中

四、采坑记录

gateway和zuul都是一样,这里两个的功能我就不过多描述。比较大的区别是gateway底层用的是webflux,zuul需要依赖 spring-boot-starter-web,web底层是servlet,所以所在使用gateway的时候需要排除spring-boot-starter-web。如果是单独的一个模块,无须引入spring-boot-starter-web即可,但是我是依赖的自己封装的basic,所以需要排除spring-boot-starter-web。

在springCloud单模块的使用swagger很简单,但是作为多模块项目,这个时候怎么对前端开发人员集中展示swagger接口呢?其实只需要在gateway依赖swagger即可。本案例已经实现

本案例所有的中间件、已经部署都在docker中的,在docker中也踩了不少的雷,后面我环境部署完后,整理一个docker的文档,把所有的中间件下载、运行命令都集中起来。

其实关于nacos的用法网上有很多教程,我就不再说明。nacos作为配置中心,默认的配置文件类型是properties,但是如果我们手动添加的配置文件是yaml类型的时候,在client端需要注明类型,否则client端不能匹配配置文件


spring:

  application:

    name: order

  cloud:

    nacos:

      config:

        file-extension: yaml

        server-addr: localhost:8044

五、说明

该项目正在逐渐完善。。。

GitHub   个人博客    简书    CSDN    开源中国

上一篇下一篇

猜你喜欢

热点阅读