SpringBoot作为当下最流行微服务框架,已经成为许多公司业务处理的一部分。本人基于公司业务,简单整理了下自己在搭建框架过程遇到的问题和心得,用于解决其他小伙伴在面临相同问题时,能快速的上手和使用。视频,代码和文档在文章末尾有连接。
主要框架及组件:Springboot+Dubbo+Driud+Mybatis+Mysql+Presto+Redis
背景:该项目业务并不是很复杂,主要是一些Sql的查询,统计,分页,分组和排序的处理。但是随着时间推移,用户不断增多,数据也不断积累,RDS中数据的存量和增量越来越大。单表数据最大的达到了32亿条记录,多张亿级的大表占用将近10TB的存储,严重影响了前端的查询效率,而且占用很大的资源。
解决方案:结合业务场景,做出了在不影响前端查询的情况下,将后台部分数据量较大的表数据,在spark任务处理完之后,直接落到HDFS,并通过shell脚本自动创建hive分区表。同时将现有的单一查询,做了调整,通过微服务架构和Driud配置多个数据源,mysql数据通过JDBC操作,迁移到hive中的数据通过Presto进行业务查询。中间使用了较多的组件,这里主要记录框架一步步的搭建过程。
适合:中级以上java开发人员学习,提升自己;有相同业务场景的公司使用。
目录
在application包中添加启动程序入口Application.java。
该篇是整个框架搭建的第一篇,
idea搭建Springboot框架过程
idea激活下载链接:http://idea.94goo.com
idea创建一个maven项目
(默认大家已经安装好JDK并配置了环境变量和maven等工具)
配置阿里云远程仓库
选择自己安装的maven地址和指定本地的maven仓库路径,同时,建议将setting.xml文件修改为阿里的远程仓库。将以下代码放到<mirrors></mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
添加开发需要的jar包到pom
首先,添加parent标签,并引入spring-boot-starter-parent,方便对包版本的统一管理。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
然后,引入必须的开发依赖包,在<dependencies></dependencies>标签中,加入依赖,如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
创建包结构和配置文件
创建application,common,modules包,分别用于后面放启动应用入口,工具管理和模块管理。如图: