springcloud微服务项目架构搭建第一天
(一).项目简介
1、准备工作:idea创建springboot模板
2、后台应该涉及的技术(后期可能会有删改)
Spring Framework | 容器 |
SpringMVC | MVC框架 |
Apache Shiro | 安全框架 |
Spring session | 分布式Session管理 |
MyBatis | ORM框架 |
MyBatis Generator | 代码生成 |
PageHelper | MyBatis物理分页插件 |
Druid | 数据库连接池 |
FluentValidator | 校验框架 |
Thymeleaf | 模板引擎 |
Velocity | 模板引擎 |
Eureka | 分布式协调服务 |
Dubbo | 分布式服务框架 |
TBSchedule & elastic-job | 分布式调度框架 |
Redis | 分布式缓存数据库 |
Solr & Elasticsearch | 分布式全文搜索引擎 |
Quartz | 作业调度框架 |
Ehcache | 进程内缓存框架 |
ActiveMQ | 消息队列 |
JStorm | 实时流式计算框架 |
FastDFS | 分布式文件系统 |
Log4J | 日志组件 |
Swagger2 | 接口测试框架 |
sequence | 分布式高效ID生产 |
AliOSS & Qiniu & QcloudCOS | 云存储 |
Protobuf & json | 数据序列化 |
Jenkins | 持续集成工具 |
Maven | 项目构建管理 |
Netty-socketio | 实时推送 |
3、前端技术,因为spring boot官方及其不推荐使用jsp,所以使用前后端分离
技术 | 名称 |
---|---|
jQuery | 函式库 |
Bootstrap | 前端框架 |
Bootstrap-table | Bootstrap数据表格 |
Font-awesome | 字体图标 |
material-design-iconic-font | 字体图标 |
Waves | 点击效果插件 |
zTree | 树插件 |
Select2 | 选择框插件 |
jquery-confirm | 弹出窗口插件 |
jQuery EasyUI | 基于jQuery的UI插件集合体 |
React | 界面构建框架 |
Editor.md | Markdown编辑器 |
zhengAdmin | 后台管理系统模板 |
autoMail | 邮箱地址自动补全插件 |
zheng.jprogress.js | 加载进度条插件 |
zheng.jtotop.js | 返回顶部插件 |
socket.io.js | SocketIO插件 |
4、架构图如下
5、模块依赖
6、模块介绍
(二).搭建
1、生成spring boot模板
1)、可以通过spring官方网站https://start.spring.io/提供的方法生成需要的模板并集成相应依赖
2)、使用idea的spring initializr
2、增加spring cloud依赖
为了能方便管理整体依赖的版本,在spring官网https://projects.spring.io/spring-cloud/可以获取对应版本的spring cloud
3、增加服务发现组件eureka
虽说eureka2.0开源失败了,但是对于我的项目需求来说,eureka1.0+可以完全兼容,如果觉得eureka1.0+不够用,spring cloud兼容zookeeper等其他服务发现组件,这个以后需要用到再说。
使用eureka服务发现组件需要引入依赖,并在配置文件application.properties中进行配置,这里推荐使用.yml,yml天然的树状结构看起来及其赏心悦目。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
application.yml配置,在默认配置下,Eureka Server会将自己也作为客户端来尝试注册自己,我们需要禁用它的客户端禁用行为,默认为true的情况下启动会导致一连串的错误发生。
eureka:
client:
#是否向服务注册中心注册自己
register-with-eureka: false
fetch-registry: false
server:
port: 8761
在spring boot提供的启动入口类中加入注解@EnableEurekaServer。启动,访问localhost:8761即可访问eureka信息面板。
4、服务提供者注册到eureka中
在服务提供者模块引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
在spring boot提供的启动入口类中加入注解@EnableEurekaClient,这里需要说明一下@EnableEurekaClient和@EnableDiscoveryClient的区别,大致可以理解为前者仅仅是针对eureka而使用的,后者可以在eureka,zookeeper、consul中使用。