SpringCloud⼊门教程(全集)
⽂章⽬录
⼀、SpringCloud介绍
1.概念:Spring cloud 是⼀系列框架的有序集合。它利⽤ spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等,都可以⽤ spring boot 的开发风格做到⼀键启动和部署。
2.优缺点(主要针对微服务)
(1)优点
①每个服务⾜够内聚,⾜够⼩,代码容易理解、开发效率提⾼;
②服务之间可以独⽴部署,微服务架构让持续部署成为可能;
③精细度业务控制,每个服务可以各⾃进⾏负载均衡扩展和数据库扩展,⽽且,每个服务可以根据⾃⼰的需要部署到合适的硬件服务器上;
④容易扩⼤开发团队,可以针对每个服务组件开发团队;
⑤提⾼容错性,⼀个服务的内存泄露并不会让整个系统瘫痪;
⑥每个服务可以⽤不同的技术开发,系统不会被长期限制在某个技术栈上。
(2)缺点
①开发⼈员要处理分布式系统的复杂性:
设计服务之间的通信机制,需要考虑分布式事务等问题;
涉及多个服务直接的⾃动化测试;
服务管理的复杂性(PS:现在docker的出现适合解决这个问题);
②对于业务数据和处理能⼒不是很明确的创业公司,不适合微服务架构模式,这时候最重要的是快速开发、快速部署、快速试错。
3.应⽤场景
适合业务复杂度较⼤、并发量较⾼的场景
4.SpringCloud与Dubbo对⽐
(1)架构完整度上,Dubbo只有服务注册/服务治理(zookeeper)两个模块,SpringCloud已经有⼆⼗多个模块,⽽且还在增加;
(2)SpringCloud的社区活跃度⾼;但Dubbo有⾼质量的中⽂⽂档
(3)Dubbo服务间的通讯采⽤的RPC,SpringCloud则是Http的Rset,RPC对业务接⼝有强依赖性,需要通讯双⽅有⼀样的接⼝,REST更为轻量化,只通过⼀个约定进⾏规范,不存在代码间的耦合。
⼆、SpringCloud⼦项⽬
三、Spring Cloud实战教程
1.搭建Springboot⽗⼦项⽬
(1)⾸先创建⼀个File-New-Project选择Spring Initializr,JDK你们可以选择1.8的
(2)修改项⽬名称,我这⾥叫springcloud
(3)选择⼀下基础依赖,这⾥选择web-spring web,右上⾓可以修改springboot版本。
(4)然后⼀个springboot基础的⽗项⽬就创建成功了
(5)右击项⽬,New-Module,同样选择Spring Initializr,项⽬名称为user,跟刚刚不同的是,我们这⾥不选择web了,可以直接从⽗项⽬获得web的依赖
springcloud难学吗
(6)修改⽗项⽬的pom⽂件,添加packaging的⽅式和modules
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/><!-- lookup parent from repository -->
</parent>
<groupId&le</groupId>
<artifactId>springcloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloud</name>
<description>Demo project for Spring Boot</description>
<!-- 建⽴⽗⼦ Module 依赖-->
<packaging>pom</packaging>
<modules>
<module>user</module>
</modules>
<!-- 建⽴⽗⼦ Module 依赖 end-->
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
(7)修改⼦项⽬的pom⽂件
将以下⽗项⽬的配置放到⼦项⽬的parent标签中,并将⼦项⽬中多余的依赖删掉
<groupId&le</groupId>
<artifactId>springcloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
最后⼦项⽬的l如下:
<parent>
<!--修改⼦项⽬的parent依赖-->
<!--<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!– lookup parent from repository –>--> <groupId&le</groupId>
<artifactId>springcloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId&le</groupId>
<artifactId>user</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>user</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<!--注释掉多余的依赖,这些在⽗项⽬中已经存在-->
<!--<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
(8)添加controller⽂件,将properties⽂件替换成yml⽂件,项⽬结构如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论