#in
1、 工程创建步骤
1、创建cloud-demo模块(最外层父模块)
(1)模块packaging属性为pom
(2) java8;springboot版本号2.4.2;springcloud版本号:2020.0.1; springcloudalibaba版本号2021.1
(3)aa
<groupId>com.itguigu</groupId> <artifactId>cloud-demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>services</module> </modules> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring-boot.version>2.4.2</spring-boot.version> <spring-cloud.version>2020.0.1</spring-cloud.version> <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <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>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
2 services模块
(1)模块packaging属性为pom
(2)依赖nacos
<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies>
3 service-order服务(模块)
(1)依赖spring-boot-starter-web
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
OrderMainApplication.java
package com.itguigu.order; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class OrderMainApplication { public static void main(String[] args) { SpringApplication.run(OrderMainApplication.class, args); } }
4 service-product服务(模块)
(1)依赖spring-boot-starter-web
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
@SpringBootApplication public class ProductMainApplication { public static void main(String[] args) { SpringApplication.run(ProductMainApplication.class, args); } }
试验discoveryClient
package com.itguigu.product; import com.alibaba.cloud.nacos.discovery.NacosServiceDiscovery; import com.alibaba.nacos.api.exception.NacosException; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import java.util.List; @SpringBootTest public class DiscoveryTest { @Autowired DiscoveryClient discoveryClient; @Autowired NacosServiceDiscovery nacosServiceDiscovery; @Test void discoveryClientTest() { for (String service : discoveryClient.getServices()) { System.out.println("service = " + service); List<ServiceInstance> instances = discoveryClient.getInstances(service); instances.forEach(x -> { System.out.println("ip=" + x.getHost()); System.out.println("port=" + x.getPort()); } ); } } @Test void nacosDiscoveryServiceTest() throws NacosException { for (String service : nacosServiceDiscovery.getServices()) { System.out.println("service="+service); List<ServiceInstance> instances = nacosServiceDiscovery.getInstances(service); for (ServiceInstance instance : instances) { System.out.println("ip: "+instance.getHost() + " port: "+instance.getPort()); } } } }