SpringCloud微服务项目实战 - 项目搭建

面对大河我无限惭愧
我年华虚度空有一身疲倦

SpringCloud微服务项目实战 - 项目搭建_第1张图片


系列文章目录

  1. 项目搭建
  2. app登录


一、项目介绍

1. 项目背景

项目概述:

类似于新闻头条,是一个新闻资讯类项目

(这里之后放项目APP端的截图)

技术架构:
SpringCloud微服务项目实战 - 项目搭建_第2张图片

项目术语:

术语 描述 平台
用户 移动端头条APP用户 移动端APP
媒体人 通过自媒体系统发送文章的用户 PC端自媒体系统
管理员 使用PC端头条管理系统的用户 PC端管理系统

2. 技术栈说明

基础层:
SpringCloud微服务项目实战 - 项目搭建_第3张图片

服务层:
SpringCloud微服务项目实战 - 项目搭建_第4张图片


3. 流程规划

开发流程:

内容 技术点
环境搭建 springboot、springcloud、nacos、swagger
文章列表查看 freemarker、OSS、CDN、ElasticSearch、Redis
热点文章计算 kafka、kafkaStream、xxl-job、Redis
CMS自媒体端文章发布审核 第三方接口、延迟队列
项目部署、数据迁徙 Hbase、Jenkins、Git、Docker

设计知识点:

  • 综合知识的运用: springboot、springcloud、nacos、redis、docker、elasticSearch、kafka、seata…
  • 业务或技术解决方案: 分布式事物、分布式任务调度、延迟队列、异步线程、热数据的处理、评论系统、关注点赞…
  • 软硬编程思想提升: 业务分析、设计、编码、测试、部署…



二、Nacos

1. vmware

vmware虚拟机安装地址: https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

SpringCloud微服务项目实战 - 项目搭建_第5张图片

安装完成后,下载虚拟机镜像: https://pan.baidu.com/s/1tBOqX5TKu18iCGSeMZKDzQ?pwd=abcd

打开虚拟机 解压后的镜像
SpringCloud微服务项目实战 - 项目搭建_第6张图片

修改虚拟网络地址(NAT)为 200
SpringCloud微服务项目实战 - 项目搭建_第7张图片

修改虚拟机的网络模式为NAT
SpringCloud微服务项目实战 - 项目搭建_第8张图片

启动虚拟机:
用户名:root,密码:itcast,ip:192.168.200.130
SpringCloud微服务项目实战 - 项目搭建_第9张图片

2. FinalShell

FinalShell安装包地址: https://pan.baidu.com/s/1UmIUqgQhsYKno2LuYBZpng?pwd=abcd

连接虚拟机(SSH连接,账号密码:root/itcast):
SpringCloud微服务项目实战 - 项目搭建_第10张图片

3. Nacos

Nacos访问地址: http://192.168.200.130:8848/nacos
SpringCloud微服务项目实战 - 项目搭建_第11张图片

Nacos的拉取和容器创建已经提前做了,命令如下:

# docker拉取镜像 
docker pull nacos/nacos-server:1.2.0

# 查看全部镜像
docker images

# 创建容器
docker run --env MODE=standalone --name nacos --restart=always  -d -p 8848:8848 nacos/nacos-server:1.2.0

# 列出容器
docker ps

# 查看日志
docker logs -f 【容器id】



二、初始工程搭建

1. 环境准备

JDK1.8、maven-3.6.1

轻量级初始工程: https://pan.baidu.com/s/1VeSL11Lg8-V32ciBcWtGjA?pwd=abcd

maven仓库地址: https://pan.baidu.com/s/1I-ZQraD4M08F33HS5Mv-Ww?pwd=abcd
SpringCloud微服务项目实战 - 项目搭建_第12张图片

编码编码格式
SpringCloud微服务项目实战 - 项目搭建_第13张图片


2. 工程结构

  • heima-leadnews - - - - - 父工程统一管理项目依赖,继承springboot
    • heima-leadnews-common - - - - - 一些通用的配置
    • heima-leadnews-feign-api - - - - - feign对外的接口
    • heima-leadnews-model - - - - - pojo、dto
    • heima-leadnews-utils - - - - - 通用的工具
    • heima-leadnews-gateway - - - - - 管理网关工程
    • heima-leadnews-service - - - - - 管理微服务
    • heima-leadnews-test - - - - - 一些测试案例

3. 全局异常

SpringCloud微服务项目实战 - 项目搭建_第14张图片

不可控异常处理(了解)src/main/java/com/heima/common/exception/ExceptionCatch.java

@ControllerAdvice  //控制器增强类
@Slf4j
public class ExceptionCatch {

    /**
     * 处理不可控异常
     * @param e
     * @return
     */
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public ResponseResult exception(Exception e){
        e.printStackTrace();
        log.error("catch exception:{}",e.getMessage());

        return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR);
    }

    /**
     * 处理可控异常  自定义异常
     * @param e
     * @return
     */
    @ExceptionHandler(CustomException.class)
    @ResponseBody
    public ResponseResult exception(CustomException e){
        log.error("catch exception:{}",e);
        return ResponseResult.errorResult(e.getAppHttpCodeEnum());
    }
}


你可能感兴趣的:(Java,spring,cloud,微服务,java)