SpringCloud实现外卖订餐系统(初体验)

写在前面:

本文章属于本人自学记录,原代码和项目结构框架图来源于b站up主《楠哥教你学java》

需求分析:

项目主要分为两个部分:客户端和后台管理系统
具体实现功能如下图:


image.png
关于微服务的简单介绍:

所谓微服务架构:就是一种架构思想,强调服务个体的独立性,每个服务运行于独立的进程并采取轻量级的交互。并且通过各个小服务组成一种应用。
这样做的好处有:服务独立、扩展性好、可靠性强。
但也有相应的缺点:运维复杂性、分布式复杂性、监控复杂性。

本项目的微服务架构:

4个服务提供者:
account提供账户服务:⽤户和管理的登录退出。
order提供订单服务:添加订单、查询订单、删除订单、处理订单。
user提供⽤户服务:添加⽤户、查询⽤户、删除⽤户。
menu提供菜品服务:添加菜品、删除菜品、修改菜品、查询菜品。

1个服务消费者:调⽤以上四个服务提供者,服务消费者包含了客户端的前端⻚⾯和后台接⼝、后台管理系统的前端⻚⾯和后台接⼝。⽤户 / 管理员直接访问的资源都保存在服务消费者中,服务消费者根据具体的需求调⽤四个服务提供者的业务逻辑,通过 Feign 实现负载均衡。

Q:什么是负载均衡? A:负载均衡就是以廉价有效的方式扩展网络设备和服务器带宽,加强网络处理能力,提高网络灵活性和可用性的一种技术。

微服务架构如下图:

image.png

项目具体实现流程:

运行环境:
操作系统:windows10
编译器:Idea
JDK:13

1、打开Idea,创建Maven工程


image.png

2、创建父工程,pom.xml


image.png

注意箭头所指代码,记得添加相关路径<relativePath/>
相关依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.5.5</version>
        </dependency>

        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>3.0.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.3.0</version>
        </dependency>

        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

3、新建一个Module,parent是刚才的项目(注意是Module!)


image.png

4、在新的Module中的pom.xml中配置注册中心


image.png

5、在eurekaserver的resources中新建文档application.yml并进行配置


image.png

6、创建启动类(在eurekaserver的包里面创建)


image.png

试运行结果:


image.png

查阅资料:
image.png

检查发现原来是application.yml的位置导错了,写在了父包里面。应该修改到eurekaserver包的resources的路径下:


image.png

并且EurekaserverApplication写成了EnableEurekaserver了:
image.png

发现拼写错误
image.png
但是这些都不是错误的核心问题,
问题所在是:springCloud与SpringBoot版本不兼容
image.png

修改后,再次运行,成功出结果,成功出现页面:


image.png

7、再次新建一个Module并配置中心


image.png

8、同时再次在新的Module中配置application.yml
image.png

9、在 shared 路径下创建各个微服务对应的配置⽂件


image.png

10、创建启动类ConfigServerApplication
image.png

11、同理创建order服务模块并配置bootstrap.yml和启动类OrderApplication
image.png

12、在order包中创建Controller控制层并新建一个OrderHandler类

image.png

13、尝试运行启动类OrderApplication


image.png

查找资料得知:产生错误的原因是springcloud的其他服务读取不了配置中心得配置文件出错,服务没有读取到git上的配置文件导致。
检查到时bootstrap.yml中配置错误,修改后又出现新的bug


image.png

查找资料得知:问题产生的原因很有可能是由于有多个properties文件造成的,如果再第一个properties文件中没有找,就不认为没有了,不继续找下一个properties文件。
placeholer的汉语,是占位符的意思,这个值是在application.yml文件里面取值,可能是配置文件字符写的不对。配置文件里面port 具体值之间少了一个空格,导致解析文件时,获取不到server.port这个属性值。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,406评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,976评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,302评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,366评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,372评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,457评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,872评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,521评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,717评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,523评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,590评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,299评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,859评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,883评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,127评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,760评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,290评论 2 342

推荐阅读更多精彩内容