传统大并发,高流量的场景不适合使用普通的技术,所以有了微服务
链接:【最适合小白学习的SpringCloud微服务实战-全程敲代码纯干货分享】https://www.bilibili.com/video/BV1UG411u7XP?vd_source=10e3dfac95ac3a6883b1f8a6c3bc65d5
nacos是springcloud的一个注册中心
1 组件下载
下载zip
2 创建服务
创建新项目
选择组件(暂时选这个,之后再选其他的)
现在这个项目是作为父级,咱们可以把不必要的东西删掉
pom:add as maven project
test和start不需要可以删掉
父级的作用就是控制版本,版本之间的对应关系一定要对,具体的对应关系可以在springcloudalibaba的GitHub/wiki中找到
ps:
报错:Cannot resolve plugin org.springframework.boot:spring-boot-maven-plugin:2.7.3
Cannot resolve plugin org.springframework.boot:spring-boot-maven-plugin:2.7.3
因为springboot版本要和你的版本一样,解决方法:
(4条消息) Cannot resolve plugin org.springframework.boot:spring-boot-maven-plugin: 解决办法_大王我亲自来巡山的博客-CSDN博客
我将我的版本改成了和自己一样的2.5.2
3 nacos的启动
nacos的bin文件夹中:cmd是Windows的启动脚本
如果启动不成功,编辑模式打开cmd文件(就是用记事本或者其他软件打开)
找到:set MODE="cluster"
将cluster修改为standalone
==注:==好习惯:添加注释:rem cluster
运行成功画面:
浏览器访问
访问这里的地址,访问成功了说明项目启动成功了:
成功:
然后现在访问localhost:8848/nacos
访问成功
默认的账号密码都是nacos
4 创建子模块
使用maven新建子模块
父级pom添加依赖管理
<dependencyManagement> 的左右是在父级添加过依赖后,子模块就不用再添加了
这里对应的springboot的版本是2.4.2
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2020.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
5 子模块添加nacos依赖
在模块的pom中添加
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
6 新建启动类
发现无法添加注解:要在子模块加一个依赖包:web组件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
实体类:
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}
7 启动启动类
报错:
java.lang.IllegalArgumentException: Param 'serviceName' is illegal, serviceName is blank
原因是什么什么识别不了,要在父级添加一个依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
虽然引用了nacos,但是没有注册,在启动类添加注解:
@EnableDiscoveryClient
8 添加配置
resource中添加配置文件bootstrap.yml
server:
port: 8000
spring:
application:
name: service-order
cloud:
nacos:
server-addr: localhost:8848
discovery:
ephemeral: false
9 运行
看到nacos registry, DEFAULT_GROUP service-order 2.0.0.1:8000 register finished
说明注册成功
打开nacos查看,发现也注册好了
10 多个运行
新建一个运行:
设置端口号和允许并发运行
设置多个并发运行:
添加springboot
就能看到了:
三个都运行后:
|