首页 > 其他分享 >SpringCloud之Nacos

SpringCloud之Nacos

时间:2024-03-24 10:32:55浏览次数:14  
标签:SpringCloud Nacos springframework nacos org import cloud

SpringCloud之Nacos

nacos作为注册中心

服务提供者

  1. 添加依赖

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
  2. 配置Nacos注册中心

    spring:
      application:
        name: example-service  # 服务名称,用于注册到Nacos
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848  # Nacos注册中心的地址
    
    
  3. 修改主启动类启动服务注册与发现

    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);
        }
    }
    

作为服务消费者

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

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

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

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

    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作为配置中心

  1. 添加依赖

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    
  2. 配置Nacos服务器信息

    spring:
      cloud:
        nacos:
          config:
            server-addr: localhost:8848  # Nacos服务器的地址
    
    
  3. 创建配置文件

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

    message=Hello, Nacos!
    
  4. 使用配置

    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;
        }
    }
    

标签:SpringCloud,Nacos,springframework,nacos,org,import,cloud
From: https://blog.csdn.net/weixin_41883161/article/details/136505213

相关文章

  • 2020-6-13-SpringCloud
    理论知识、Eureka注册中心、Ribbon负载均衡、Hystrix熔断器、Feign服务调用、Zuul网关理论知识1集中式架构存在问题代码耦合,开发维护昆仑无法对不同模块进行针对性优化无法水平扩展容错率低,并发能力查2微服务一种架构模式,即一种架构方格,提倡将单一应用程序划分成一组小的......
  • SpringCloud 使用feign进行文件MultipartFile传输
    SpringCloud组件fiegn默认是不支持传递文件的。但是提供了feign-form扩展工具解决方法:步骤一:在消费者服务中加入相关pom依赖。<!--解决SpringCloud组件feign默认是不支持传递文件的--><dependency><groupId>io.github.openfeign.form</groupId>......
  • Linux安装Nacos
    1,先安装jdk,nacos需要依赖于jdk2,官网前往GitHub下载安装包官网:https://nacos.io/zh-cn/GitHub:https://github.com/alibaba/nacos12 3,创建nacos目录,并上传 4,解压压缩包,并查看tar-zxvfnacos包名1 5,编辑配置文件,修改端口#进入nacos配置文件目录cd/opt/nacos/conf#编辑naco......
  • Nacos下载和安装
    (1)下载地址和版本下载地址:Releases·alibaba/nacos·GitHub解压在没有中文及空格的文件夹(2)启动nacos服务在bin目录下,打开命令行,输入 启动命令:shstartup.sh-mstandalone-Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式)启动命令:shstartup.......
  • 攻防实战 | 记一次nacos到接管阿里云&百万数据泄露
    在某次攻防当中,通过打点发现了一台nacos,经过测试之后发现可以通过弱口令进入到后台,可以查看其中的配置信息通过翻看配置文件,发现腾讯云的AK,SK泄露,以及数据库的账号密码。操作不就来了么,直接上云!利用CF工具加上之前的AK,SK配置信息,创建腾讯云控制台账号密码,登录后直接上云......
  • 第二章-Nacos服务注册中心
    第二章Nacos服务注册与发现在上一章中实现了微服务拆分,并且通过HTTP请求(RestTemplate)实现了跨微服务的远程调用,不过这种手动发起HTTP请求的方式存在问题:@Service@RequiredArgsConstructorpublicclassCartServiceImplextendsServiceImpl<CartMapper,Cart>implementsIC......
  • 基于springcloud实现鲜花订购网微服务演示【附项目源码】
    基于springcloud实现鲜花订购网微服务演示JAVA简介Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(EnterpriseJavaBeans)的全面支持,javaservletAPI,JSP(javaserverpages),和XML技术。Java是一种计算机编程语言,具有封装、继承和多态性三个......
  • 服务平滑迁移:eureka迁移到nacos。无法注册双中心的问题解决
    迁移的文档:https://www.alibabacloud.com/help/zh/edas/developer-reference/smoothly-migrate-a-spring-cloud-cluster-that-contains-multiple-applications-to-edas其中遇到的问题未配置排除配置项时(exclude={RibbonEurekaAutoConfiguration.class}),ribbonServerList不是......
  • 微服务分布式springcloud研究生志愿填报辅助系统
    本文讲述了研究生志愿填报辅助系统。结合电子管理系统的特点,分析了研究生志愿填报辅助系统的背景,给出了研究生志愿填报辅助系统实现的设计方案。本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,在用户模块,主要有用户进行注册和登录,用户可以实现查看院校信息......
  • Springcloud学习笔记62---log.error()打印内容区别
    1. log.error(“异常信息:”+e.getMessage)没有异常信息,没有堆栈信息@PostMapping("/logtest")publicvoidlogtest(){try{inti=1/0;}catch(Exceptione){log.error("异常信息:"+e.getMessage());}......