diff --git a/lab-44/lab-44-nacos-discovery-demo/pom.xml b/lab-44/lab-44-nacos-discovery-demo/pom.xml
new file mode 100644
index 00000000..a56524a1
--- /dev/null
+++ b/lab-44/lab-44-nacos-discovery-demo/pom.xml
@@ -0,0 +1,30 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.2.RELEASE
+
+
+ 4.0.0
+
+ lab-44-nacos-discovery-demo
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ com.alibaba.boot
+ nacos-discovery-spring-boot-starter
+ 0.2.4
+
+
+
+
diff --git a/lab-44/lab-44-nacos-discovery-demo/src/main/java/cn/iocoder/springboot/lab44/nacosdemo/Application.java b/lab-44/lab-44-nacos-discovery-demo/src/main/java/cn/iocoder/springboot/lab44/nacosdemo/Application.java
new file mode 100644
index 00000000..0f9ee09a
--- /dev/null
+++ b/lab-44/lab-44-nacos-discovery-demo/src/main/java/cn/iocoder/springboot/lab44/nacosdemo/Application.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springboot.lab44.nacosdemo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+
+}
diff --git a/lab-44/lab-44-nacos-discovery-demo/src/main/java/cn/iocoder/springboot/lab44/nacosdemo/controller/DemoController.java b/lab-44/lab-44-nacos-discovery-demo/src/main/java/cn/iocoder/springboot/lab44/nacosdemo/controller/DemoController.java
new file mode 100644
index 00000000..a3ada532
--- /dev/null
+++ b/lab-44/lab-44-nacos-discovery-demo/src/main/java/cn/iocoder/springboot/lab44/nacosdemo/controller/DemoController.java
@@ -0,0 +1,40 @@
+package cn.iocoder.springboot.lab44.nacosdemo.controller;
+
+import com.alibaba.nacos.api.annotation.NacosInjected;
+import com.alibaba.nacos.api.exception.NacosException;
+import com.alibaba.nacos.api.naming.NamingService;
+import com.alibaba.nacos.api.naming.pojo.Instance;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+
+ @NacosInjected
+ private NamingService namingService;
+
+ private RestTemplate restTemplate = new RestTemplate();
+
+ @GetMapping("/provider")
+ public String provider() {
+ return "echo";
+ }
+
+ @GetMapping("/consumer")
+ public String consumer() throws IllegalStateException, NacosException {
+ // 获得实例
+ List instances = namingService.getAllInstances("demo-application");
+ // 获得首个实例,进行调用
+ Instance instance = instances.stream().findFirst()
+ .orElseThrow(() -> new IllegalStateException("未找到对应的 Instance"));
+ // 执行请求
+ return restTemplate.getForObject("http://" + instance.toInetAddr() + "/demo/provider",
+ String.class);
+ }
+
+}
diff --git a/lab-44/lab-44-nacos-discovery-demo/src/main/resources/application.yaml b/lab-44/lab-44-nacos-discovery-demo/src/main/resources/application.yaml
new file mode 100644
index 00000000..e51f4fd0
--- /dev/null
+++ b/lab-44/lab-44-nacos-discovery-demo/src/main/resources/application.yaml
@@ -0,0 +1,12 @@
+spring:
+ application:
+ name: demo-application # 应用名
+
+nacos:
+ discovery:
+ server-addr: 127.0.0.1:18848 # Nacos 服务器地址
+ auto-register: true # 是否自动注册到 Nacos 中。默认为 false。
+ namespace: # 使用的 Nacos 的命名空间,默认为 null。
+ register:
+ group-name: DEFAULT_GROUP # 使用的 Nacos 服务分组,默认为 DEFAULT_GROUP。
+ cluster-name: cluster01 # 集群名,默认为空。
diff --git a/lab-44/pom.xml b/lab-44/pom.xml
index 630dcbf5..10aa6670 100644
--- a/lab-44/pom.xml
+++ b/lab-44/pom.xml
@@ -18,6 +18,7 @@
lab-44-nacos-config-demo-jasypt
lab-44-nacos-config-demo-actuator
lab-44-nacos-config-demo-multi
+ lab-44-nacos-discovery-demo