zoukankan      html  css  js  c++  java
  • Nacos服务注册与发现

    Nacos是阿里巴巴开源的微服务组件,用于服务注册与发现以及全局配置,本文主要介绍其服务注册及发现的用法。

    官网地址:https://nacos.io/

    源码地址:https://github.com/alibaba/nacos

    如果要测试Nacos组件,同样需要开启至少三个服务,分别是Nacos Server,服务提供者、服务消费者。

    1. 启动Nacos Server
    (1) 从github上下载 nacos1.4.1
    (2) 编译
      mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
    (3) Linux/Unix/Mac下运行
      启动命令(standalone代表着单机模式运行,非集群模式): sh startup.sh -m standalone
    (4)  在浏览器输入 . http://127.0.0.1:8848/nacos 可以查看服务情况
        

    2. 服务提供者,向Nacos Server注册服务

    (1) pom 文件添加依赖
       <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
      </dependency>
    (2) 启动主类上添加注解
        @EnableDiscoveryClient
     (3) application.yml添加 nacos 配置
    spring:
      application:
        name: "common-sys"
      datasource:
        driverClassName: "com.mysql.cj.jdbc.Driver"
        url: "jdbc:mysql://xxx.yyy.xxx.ttt:3316/nanhai?allowMultiQueries=true"
        username: "root"
        password: "root"
      cloud:
        nacos:
          discovery:
            server-addr: "nanhai.com.cn:9090"
    
    server:
      port: 7070

    3. 消费者访问服务,消费的方式有多种,可以用openFeign,可以和nacos官网案例中的NamingService实例,也可以用RestTemplate,下面我用

    RestTemplate来演示服务间的调用 ,这个案例演示一个服务如何通过注册中心去调用/hello这个服务

        @LoadBalanced
        @Bean
        public RestTemplate restTemplate(){
            return new RestTemplate() ;      //这个restTemplate具有负载均衡的能力
        }
    
    
        @Autowired
        private RestTemplate restTemplate ;
    
        @Autowired
        LoadBalancerClient loadBalancerClient;
    
        @RequestMapping("/test")   
    public String testHello(){ //ServiceInstance serviceInstance = loadBalancerClient.choose("common-sys"); String url = "http://common-sys" + /*serviceInstance.getInstanceId() + */"/hello" ; //commons-sys是注册到注册中心的服务名 System.out.println( "--------" + url); String result = restTemplate.getForObject( url , String.class); return result ; }
  • 相关阅读:
    套接字I/O函数write/read writev/readv send/recv sendto/recvfrom sendmsg/recvmsg
    套接字之recvmsg系统调用
    套接字之recv系统调用
    套接字之recvfrom系统调用
    套接字之sendmsg系统调用
    套接字之send系统调用
    数据类型
    简单的c程序分析
    c语言函数分析
    堆栈图
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/14730265.html
Copyright © 2011-2022 走看看