首页 > 其他分享 >springcloud Alibaba-Nacos [作为注册中心]

springcloud Alibaba-Nacos [作为注册中心]

时间:2022-10-31 10:46:59浏览次数:87  
标签:调用 服务 springcloud nacos Nacos Alibaba 远程 cloud

Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理 平台。

它是使用 java 编写,需要依赖 java 环境。

Nacos 文档地址: https://nacos.io/zh-cn/docs/quick-start.html

 

1、下载nacos-server

   https://github.com/alibaba/nacos/releases

2、启动nacos-server

双击bin中的startup.cmd(在windows环境),注意需要将nacos的startup.cmd中的mode改成standalone,否则将报异常。

访问 http://localhost:8848/nacos/ , 使用默认的 nacos/nacos 进行登录

3、将服务注册到nacos中

   一、首先,引入nacos-discovery依赖,最新版本的有一个小坑,就是必须排除ribbon的干扰

   

 <!--服务的注册/发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.4.RELEASE</version>
            <exclusions>
                <exclusion>
                    <!-- 排除ribbon-->
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

  二、在类路径下建一个application.properties文件,配置注册中心的配置

    

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.application.name=service-provider
server.port=8000

 三、在启动类上添加@EnableDiscoveryclient 开启服务注册发现功能

      

四、启动应用,观察nacos服务列表是否已经注册上服务

   

 五、使用feign实现微服务的远程调用

       首先要引入openfeign的依赖

  

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

    然后编写一个远程调用的接口

   

@FeignClient(name="微服务的应用名")  //声明式远程调用
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")  //被调用服务的完整的方法签名
    public R membercoupons();
}

  最后再主启动类上开启远程调用

/**
 * 想要远程调用别的服务
 * 1.引入open-feign
 * 2.编写一个接口,告诉springcloud这个接口需要调用远程服务
 *   声明接口的每一个方法都是调用哪个服务的哪个请求
 * 3.开启远程调用Enablefeiginclients
 */
@MapperScan("com.athjm.tbmall.member.dao")
@EnableFeignClients(basePackages = "com.athjm.tbmall.member.feign")
@EnableDiscoveryClient
@SpringBootApplication
public class TbmallMemberApplication {

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

 

标签:调用,服务,springcloud,nacos,Nacos,Alibaba,远程,cloud
From: https://www.cnblogs.com/hu-junmin777/p/16843511.html

相关文章