前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud之Nacos

SpringCloud之Nacos

作者头像
九转成圣
发布2024-04-10 16:58:18
680
发布2024-04-10 16:58:18
举报
文章被收录于专栏:csdncsdn

SpringCloud之Nacos

nacos作为注册中心

服务提供者

添加依赖

代码语言:javascript
复制
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

配置Nacos注册中心

代码语言:javascript
复制
spring:
  application:
    name: example-service  # 服务名称,用于注册到Nacos
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  # Nacos注册中心的地址

修改主启动类启动服务注册与发现

代码语言:javascript
复制
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

作为服务消费者

添加依赖(同服务提供者)

配置nacos注册中心(同服务提供者)

修改主启动类启动服务注册与发现(同服务提供者)

使用(一般不会手动使用,可能要通过api网关啥的使用)

代码语言:javascript
复制
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;

@RestController
public class ExampleController {

    @Autowired
    private DiscoveryClient discoveryClient;

    @GetMapping("/consume")
    public String consumeExampleService() {
        // 获取 example-service 服务的实例列表
        List<ServiceInstance> instances = discoveryClient.getInstances("example-service");

        // 选择一个实例进行调用
        if (!instances.isEmpty()) {
            ServiceInstance instance = instances.get(0);
            String url = instance.getUri() + "/api/example";
            // 调用服务接口并返回结果
            RestTemplate restTemplate = new RestTemplate();
            return restTemplate.getForObject(url, String.class);
        }

        return "No available instance.";
    }
}

nacos作为配置中心

添加依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

配置Nacos服务器信息

代码语言:javascript
复制
spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848  # Nacos服务器的地址

创建配置文件

在Nacos服务器中创建配置文件,可以通过Nacos的管理界面或使用API进行创建。例如,创建一个名为example-service.properties的配置文件,内容如下:

代码语言:javascript
复制
message=Hello, Nacos!

使用配置

代码语言:javascript
复制
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ExampleController {

    @Value("${message}")
    private String message;

    @GetMapping("/message")
    public String getMessage() {
        return message;
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringCloud之Nacos
  • nacos作为注册中心
    • 服务提供者
      • 作为服务消费者
      • nacos作为配置中心
      相关产品与服务
      微服务引擎 TSE
      微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档