链接:https://pan.baidu.com/s/1bcOgWxGxjll8gt-ImEVncw?pwd=xt52
- Nacos单实例启动
修改startup.cmd将MODE改为standalone,双击startup.cmd启动Nacos服务 - Nacos访问
http://localhost:8848/nacos 默认端口为8848,默认用户名和密码均为nacos,登录后在默认空间public创建测试需要的配置,层级结构为:空间--Group--Data ID,创建的配置可导出 - Nacos配置mysql
默认配置数据存储在内置的存储文件,需要配置将配置数据存储到mysql数据库,在mysql中创建数据库nacos,然后导入nacos-mysql.sql文件生成需要的数据表,修改application.properties中数据库连接配置,重新启动Nacos服务,将之前导出的配置重新导入 - 配置克隆
实际配置分为开发环境、测试环境、生产环境,在命名空间下分别创建dev、test、prod这3个命名空间,将默认空间的配置通过克隆复制的这3个空间下,克隆后可以再进行配置编辑 - 添加父项目pom依赖
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <spring-cloud.version>Hoxton.SR8</spring-cloud.version> <springboot.version>2.3.2.RELEASE</springboot.version> <springcloudalibaba.version>2.2.5.RELEASE</springcloudalibaba.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${springboot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${springcloudalibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
- 添加子项目pom依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 配置中心 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!-- 服务注册/发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- openfeign --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> </dependencies>
- 添加Nacos配置文件bootstrap.properties
bootstrap.properties中可以选择使用Nacos的哪个空间的配置,通过@Value注解将Nacos创建的配置注入项目,当Nacos中的配置被编辑后@RefreshScope注解可以实现配置动态变更,不需要重新部署项目 - 微服务实现(服务注册、发现、openfeign调用)
服务提供者与消费者均添加@EnableDiscoveryClient注解实现服务的注册与发现,服务消费者添加@EnableFeignClients注解实现子系统间的服务调用 - 负载均衡实现(两个服务提供者提供相同的服务)
将原服务提供者的项目代码复制一份,修改访问端口,这样就有了两个相同服务提供者提供相同的服务,如果一个服务提供者挂掉了,消费者仍然可以消费另一个服务提供者提供的服务,多次测试访问可以发现这两个服务提供者轮流对消费者进行服务,服务提供者的权重可以在Nacos进行调整 - 集群实现(多个Nacos服务保证系统稳定)
三个Nacos端口分别为8848、8858、8868,修改startup.cmd的MODE均为cluster,修改application.properties的nacos.inetutils.ip-address=127.0.0.1,修改cluster.conf添加三个Nacos的访问ip和端口,分别启动三个Nacos,只要三个Nacos服务不同时挂掉,那么Nacos就可以正常提供服务