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

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

在这里插入图片描述


系列文章目录

  1. 项目搭建
  2. App登录及网关
  3. App文章
  4. 自媒体平台(博主后台)
  5. 自媒体文章审核
  6. 延迟任务
  7. kafka及文章上下架
  8. App端文章搜索
  9. 后台系统管理
  10. Long类型精度丢失问题
  11. 定时计算热点文章(xxl-Job)
  12. 热点文章-实时计算(kafkaStream)
  13. 项目部署_持续集成(Jenkins)


一、项目介绍

1. 项目背景

项目概述:

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

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

技术架构:
在这里插入图片描述

项目术语:

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

2. 技术栈说明

基础层:
在这里插入图片描述

服务层:
在这里插入图片描述


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

在这里插入图片描述

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

打开虚拟机 解压后的镜像
在这里插入图片描述

修改虚拟网络地址(NAT)为 200
在这里插入图片描述

修改虚拟机的网络模式为NAT
在这里插入图片描述

启动虚拟机:
用户名:root,密码:itcast,ip:192.168.200.130
在这里插入图片描述

2. FinalShell

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

连接虚拟机(SSH连接,账号密码:root/itcast):
在这里插入图片描述

3. Nacos

Nacos访问地址: http://192.168.200.130:8848/nacos
在这里插入图片描述

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
在这里插入图片描述

编码编码格式
在这里插入图片描述


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. 全局异常

在这里插入图片描述

不可控异常处理(了解)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());
    }
}


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 2019年黑马项目-畅购商城springcloud微服务实战是一门以实战为主的课程,旨在通过项目实践的方式,帮助学员深入理解和掌握SpringCloud微服务架构以及相关技术的应用。 课程的主要内容包括搭建基础的微服务架构、使用SpringCloud构建服务注册与发现、实现服务间的负载均衡、实现分布式配置中心、服务间的调用与容错处理、使用网关统一接入服务等。通过这些实战练习,学员不仅能够熟悉SpringCloud架构与组件,还能够了解微服务架构下的常见问题与解决方案。 畅购商城项目是一个典型的电商应用,通过实现该项目,学员可以接触到真实的业务场景与需求,并能够将所学知识应用到实际项目中。课程中通过模块化的方式逐步完善商城的功能,包括用户注册登录、商品浏览、购物车管理、订单生成与支付等。通过这些实践,学员除了掌握SpringCloud微服务的开发技术,还能够了解和掌握电商项目的开发流程和注意事项。 该课程的目标是让学员通过实战项目,全面了解和掌握SpringCloud微服务架构的设计与开发,在此基础上能够独立完成具有较高要求的微服务项目。通过参与实战项目的过程,学员还能够提升团队协作能力、解决问题的能力以及项目管理能力。 通过这门课程的学习,学员将会对SpringCloud微服务架构有更深入的理解,并能够将这些知识应用到实际项目中,提高自己在微服务开发领域的竞争力。 ### 回答2: 2019年黑马项目-畅购商城springcloud微服务实战是一个基于springcloud微服务架构的商城项目。该项目的目标是通过运用微服务的理念和技术,构建一个高可用、可扩展的商城系统。 在该项目中,使用了springcloud的多个组件,如Eureka注册中心、Feign负载均衡、Ribbon客户端负载均衡、Hystrix服务降级和容错、Zuul网关等。这些组件共同协作,实现了系统的弹性伸缩和高可用性。 畅购商城的功能包括商品展示、购物车、订单管理、支付、用户管理等。通过将这些功能拆分成独立的微服务,使得系统更加灵活和可维护。同时,使用分布式事务和消息队列来保障数据的一致性和可靠性。 在项目的开发过程中,采用了敏捷开发的方法,以迭代的方式进行开发和测试。通过使用Jenkins进行持续集成和部署,保证了代码的质量和系统的稳定性。 在项目的实战过程中,面临了许多挑战和困难,如微服务之间的通信、服务的负载均衡、服务的容错等。但通过团队的共同努力和不断的学习,最终成功地完成了该项目的开发和部署。 在该项目的实施过程中,不仅学到了springcloud微服务架构的相关知识和技术,还体会到了团队合作和解决问题的能力。该项目的成功实施,不仅为公司带来了商业价值,也提升了团队的技术水平和项目管理能力。 ### 回答3: 2019年黑马项目-畅购商城springcloud微服务实战是一个以Spring Cloud为基础的微服务项目。微服务架构是一种将应用拆分成多个小型服务的架构模式,这些服务可以独立开发、部署、扩展和管理。 畅购商城项目使用了Spring Cloud的一系列子项目,如Eureka、Ribbon、Feign、Hystrix、Zuul等,来实现各个微服务之间的通信、负载均衡、服务降级与熔断等功能。 在项目中,我们会通过Eureka来实现服务的注册与发现,每个微服务都会向Eureka注册自己的地址,其他微服务可以通过Eureka来发现并调用这些服务。而Ribbon则负责实现客户端的负载均衡,可以轮询、随机、加权等方式分发请求。 Feign是一种声明式的HTTP客户端,它简化了服务间的调用方式。我们只需编写接口,并通过注解来描述需要调用的服务和方法,Feign会自动实现远程调用。 Hystrix是一个容错机制的实现,可以通过断路器来实现服务的降级与熔断,当某个服务出现故障或超时时,Hystrix会快速响应并返回一个可控制的结果,从而保证系统的稳定性。 另外,Zuul作为微服务网关,可以实现请求的统一入口和路由转发,提高系统的安全性和性能。 通过这些Spring Cloud的组件,畅购商城项目可以实现高可用、容错、自动扩展等优质的微服务架构。 总之,2019年黑马项目-畅购商城springcloud微服务实战是一个基于Spring Cloud微服务项目,通过使用Spring Cloud的各个子项目,可以实现微服务之间的通信、负载均衡、服务降级与熔断等功能,为项目的开发、部署和管理提供了便利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后海 0_o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值