秒杀项目
前言
博客自从搭起来零零碎碎的也写了点东西,但是都水的不行,依旧发挥了自己练习多年的CV大法,每篇看着都水的不行。最重要的是大部分都没有动脑子,缺少自己的想法,看着就不像自己的东西。
来培训了快半年了,东西嘛也多少学到点,就是还是和以前一样没有努力,Java基础、高级到后面框架,都是得过且过。欠的都是要还的,最近再学最后的秒杀项目,学到现在说实话,不懂,一点也不懂。本来打算周末的时候就着手写博客梳理、复习一下的,可是,我这该死的拖延症!!!!!
不过现在能开始也不是太迟嘛(自我安慰我一直是可以的),接下来主要目标就是把这个秒杀项目搞懂,其中穿插一些复习,还有一个月就要去面试了,压力太大了,这次就好好加油吧。
OK,让我把我男神刘少的视频打开再跟着他好好学习秒杀项目
秒杀项目介绍
前端-》请求-负载均衡(nginx)-网关(zuul)-> eureka server-》配置(config-server)-》用户、商品、秒杀的微服务-消息中间件-websocket
首先是秒杀项目的基本内容,大体内容:负载均衡、网关、eureka、配置、不同的微服务、消息中间件、web socket。
项目搭建梳理
秒杀项目和之前的所有项目都不同,秒杀项目创建时要创建父子级项目
搭建微服务项目时,我们需要把公共的部分抽出来放在一个项目中,使用依赖的方式进行引用
父项目:
shop-parent [pom]
子项目:
eureka-server [jar]
服务注册,可运行的项目就是jarconfig-server [jar]
配置中心,需要连接码云,配置信息放在码云上进行托管zuul-server [jar]
网关shop-common [jar]
公共部分redis-spring-boot-start [jar]
自定义的start,以前写过shop-provider [pom]
子子项目
member-server [jar]
用户微服务good-server [jar]
商品微服务seckill-server [jar]
秒杀微服务
shop-provider-api [pom]
member-api[jar]
用户微服务good-api[jar]
商品微服务seckill-api[jar]
秒杀微服务
其次就还有fronted-server [jar]
前端和websocket-server [jar]
消息通知中心两个项目,我们的秒杀项目就是由这些项目构成的。
到这里我得停一下,短短的项目搭建梳理就开始😵了,这里先梳理一下有问题的地方。
秒杀项目到底是什么项目?
要我现在说,我只能说秒杀项目就是微服务项目(spring cloud),那这样说之前学习的spring boot又是什么呢(秒杀项目中的启动类注解还有
@SpringBootApplication
😥)
首先,我们要遵守程序,把spring boot 和 spring cloud两个基本概念找出来
spring boot 用来简化配置的它可以简化spring应用程序的创建和开发过程。
spring cloud 是分布式开发的解决方案,基于spring boot,在spring boot做较少的配置。
看到这,反正我没太懂(之前基础太差,全忘了我🤡),能得出的结论是spring boot 和spring cloud 两者相辅相成(废话🤣)。
百度找了一圈终于找到能让我理解的解释了:
说的一下就让我明白了,果然牛的人不是懂技术的,是懂技术,还能讲出来,并且能让小白听懂。这里的问题解决了,那在我们搭建的项目中
pom
和jar
两者的关系又是什么呢😟?
项目中pom
和jar
两者的关系又是什么?
刘少说的是jar
是可以运行的项目,而pom
项目不需要写Java代码,所以创建项目后src
文件夹可以删除,而pom
项目也不执行任何代码,只是为了聚合工程或传递依赖用的。
项目搭建
父项目
shop-parent
1 | <!--当前为springboot项目--> |
子项目
eureka-server
当我们在父项目shop-parent [pom]
下创建子项目时,父项目pom.xml
中就会自动添加依赖,而子项目的pom.xml
中也不需要写spring boot
相关的依赖,由父项目传递相应的依赖(子承父业👶🧔)
1 | <!--开启服务中心--> |
application.yml
1 | server: |
EurekaServerApp(服务注册与发现中心)
1 | //springboot启动类 |
刚写完这些又去刷手机了,罪过罪过,还是要控制住自己,以上的是eureka.server项目中基本的配置,简单几个文件里就有好多迷惑的地方(真是欠的债都要慢慢还呀😩),简单说一下其中的困惑,慢慢去百度解决吧。
父项目和子项目中
pom
配置与依赖还好,说是工作后不用自己写(希望吧😕就业压力山大),而其中application.yml
的用处以及和之前的内容还有迷惑的地方,还有就是EurekaServerApp
里面的两个注解,虽然知道他的用法,但是知道地详细点也没坏处(注解还得好好复习😵知其然还要知其所以然)
application.yml的用处
在yml
之前使用最多的配置文件形式是xml
和properties
文件。xml
文件太过繁琐,看过的人都知道,想要新加一个配置节点的话还需要包含在<>
标签里;而properties
配置文件没有了标签,不过当你的配置有很多层级的时候,写完之后你会发现会有大量重复的代码。而yml/yaml
文件结合了两者的优势,当你新增节点配置的时候,不需要标签,在写多层级配置的时候也不会产生重复代码。
EurekaServerApp注解
在这里就多说了看这里