前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用nacos的服务注册与发现

使用nacos的服务注册与发现

原创
作者头像
eeaters
修改2021-09-26 11:22:16
7720
修改2021-09-26 11:22:16
举报
文章被收录于专栏:阿杰阿杰

nacos-server的服务注册与发现的源码,

- https://cloud.tencent.com/developer/article/1881623

按照官方网站搭建的demo过程如下:

Nacos

官方网站: https://github.com/alibaba/nacos

案例demo参考网站: https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery-en

使用依赖

代码语言:javascript
复制
    <properties>
        <spring-cloud.version>2020.0.3</spring-cloud.version>
        <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
        <springfox.version>3.0.0</springfox.version>
    </properties>

Nacos-client

下载

启动

  • bin目录下: startup.cmd -m standalone

可视化界面

Provider

依赖

代码语言:javascript
复制
 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

配置文件

代码语言:javascript
复制
spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

启动类

代码语言:javascript
复制
@EnableAutoConfiguration
@EnableDiscoveryClient
@ComponentScan
public class Provider {
    public static void main(String[] args) {
        SpringApplication.run(Provider.class);
    }
}

检查

nacos控制界面 -> 服务管理 -> 服务列表

另引入了springfox-boot-starterjar包,在http://127.0.0.1:8080/swagger-ui/index.html中看到接口

consumer

依赖

同Provider

配置文件

代码语言:javascript
复制
spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
server:
  port: 8090

启动类

代码语言:javascript
复制
@SpringBootApplication
@EnableDiscoveryClient
public class Consumer {
    public static void main(String[] args) {
        SpringApplication.run(Consumer.class);
    }
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
    @Autowired
    TestService testService;
    @Bean
    public ApplicationRunner applicationRunner(){
        return arguments -> {
            testService.echo();
        };
    }
}

测试类

代码语言:javascript
复制
@Service
public class TestService {
    @Autowired
    private DiscoveryClient discoveryClient; 
    @Autowired
    private RestTemplate restTemplate;
    @Value("${spring.application.name}")
    private String appName;
    public void echo() {
        List<ServiceInstance> instances = discoveryClient.getInstances("nacos-provider");
        ServiceInstance serviceInstance = instances.get(0);
        String host = serviceInstance.getHost();
        int port = serviceInstance.getPort();
        String path = String.format("http://%s:%s/echo/%s", host, port, appName);
        System.out.println("request path:" +path);
        String object = restTemplate.getForObject(path, String.class);
        System.out.println("object = " + object);
    }
}

响应

代码语言:javascript
复制
request path: http://***:8080/echo/nacos-consumer
object = Hello Nacos Discovery nacos-consumer

nacos控制台展示:

nacos-provider

DEFAULT_GROUP

1

1

1

false

详情|示例代码|订阅者|删除

nacos-consumer

DEFAULT_GROUP

1

1

1

false

详情|示例代码|订阅者|删除

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Nacos
  • Nacos-client
    • 下载
      • 启动
        • 可视化界面
        • Provider
          • 依赖
            • 配置文件
              • 启动类
                • 检查
                • consumer
                  • 依赖
                    • 配置文件
                      • 启动类
                        • 测试类
                          • 响应
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档