Spring Cloud应用框架:Nacos作为服务注册中心和配置中心

简介: Spring Cloud应用框架:Nacos作为服务注册中心和配置中心

Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。在Spring Cloud生态系统中,Nacos可以替代Eureka作为服务注册中心,同时也可以作为配置中心。所以我们这里使用Nacos作为Spring Cloud应用的服务注册中心和配置中心。

使用Nacos的好处
  1. 统一管理
  • Nacos集成了服务发现和配置管理,减少了运维复杂度。
  1. 动态配置管理
  • 支持动态配置更新,减少系统重启成本。
  1. 易用性
  • 提供了简洁的用户界面和丰富的API,方便操作和管理。
  1. 高可用性
  • 支持集群部署,提供高可用性和稳定性。
使用Nacos的具体步骤

下面,我们将创建一个简单的Spring Cloud应用,使用Nacos作为服务注册中心和配置中心。

1. 下载并启动Nacos

下载Nacos的最新版本并启动。可以从Nacos官网下载。

解压后,进入Nacos目录并启动:

sh startup.sh -m standalone

访问Nacos控制台:http://localhost:8848/nacos

默认用户名和密码都是nacos

2. 创建Spring Boot项目

使用Spring Initializr创建一个Spring Boot项目,添加以下依赖:

  • Spring Web
  • Spring Boot Actuator
  • Nacos Discovery
  • Nacos Config
3. 配置Nacos

在项目的application.properties文件中配置Nacos。

application.properties:

spring.application.name=my-service
server.port=8080
 
# Nacos 配置
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
4. 服务注册与发现

创建一个简单的微服务,并将其注册到Nacos。

MyServiceApplication.java:

@SpringBootApplication
@RestController
@EnableDiscoveryClient
public class MyServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyServiceApplication.class, args);
    }
 
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello from MyService!";
    }
}

启动微服务:

mvn spring-boot:run
5. 使用Nacos作为配置中心

在Nacos控制台中,添加配置。在Config Management中创建一个配置文件,Data ID为my-service.yaml,内容如下:

server:
  port: 8080
 
spring:
  application:
    name: my-service
 
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848

在项目的bootstrap.properties中添加如下配置,使应用启动时加载Nacos配置:

bootstrap.properties:

spring.application.name=my-service
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.file-extension=yaml
6. 创建客户端服务

创建一个负载均衡客户端,并使用RestTemplate进行服务调用。

application.properties:

spring.application.name=client-service
server.port=8081
 
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

ClientServiceApplication.java:

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class ClientServiceApplication {
    @Autowired
    private RestTemplate restTemplate;
 
    public static void main(String[] args) {
        SpringApplication.run(ClientServiceApplication.class, args);
    }
 
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
 
    @GetMapping("/call")
    public String callService() {
        return restTemplate.getForObject("http://my-service/hello", String.class);
    }
}

启动客户端服务:

mvn spring-boot:run
7. 测试微服务

现在,我们可以通过以下URL测试各个微服务:

  • Nacos控制台:http://localhost:8848/nacos
  • MyService服务:http://localhost:8080/hello
  • ClientService服务:http://localhost:8081/call
相关文章
|
2月前
|
Cloud Native Java Nacos
微服务时代的新宠儿!Spring Cloud Nacos实战指南,带你玩转服务发现与配置管理,拥抱云原生潮流!
【8月更文挑战第29天】Spring Cloud Nacos作为微服务架构中的新兴之星,凭借其轻量、高效的特点,迅速成为服务发现、配置管理和治理的首选方案。Nacos(命名和配置服务)由阿里巴巴开源,为云原生应用提供了动态服务发现及配置管理等功能,简化了服务间的调用与依赖管理。本文将指导你通过五个步骤在Spring Boot项目中集成Nacos,实现服务注册、发现及配置动态管理,从而轻松搭建出高效的微服务环境。
134 0
|
20天前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
2月前
|
Cloud Native Java Nacos
Spring Cloud Config、Apollo、Nacos和Archaius对比
这篇文章对比了Spring Cloud Config、Apollo、Nacos和Archaius这四种配置中心的适应场景、优缺点。文中讨论了它们的功能特点,例如Spring Cloud Config的集中化配置管理和动态刷新能力,Apollo的实时配置推送和权限治理,Nacos的服务发现和管理功能,以及Archaius的动态配置更新能力。文章指出选择配置中心应根据项目需求和架构来决定,并提供了一个对比图来帮助读者更直观地理解这些工具的差异。
37 1
Spring Cloud Config、Apollo、Nacos和Archaius对比
|
20天前
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
2月前
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
68 0
|
6天前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
2月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
|
3月前
|
Java 测试技术 数据库
Spring Boot中的项目属性配置
本节课主要讲解了 Spring Boot 中如何在业务代码中读取相关配置,包括单一配置和多个配置项,在微服务中,这种情况非常常见,往往会有很多其他微服务需要调用,所以封装一个配置类来接收这些配置是个很好的处理方式。除此之外,例如数据库相关的连接参数等等,也可以放到一个配置类中,其他遇到类似的场景,都可以这么处理。最后介绍了开发环境和生产环境配置的快速切换方式,省去了项目部署时,诸多配置信息的修改。
|
3月前
|
Java 应用服务中间件 开发者
Java面试题:解释Spring Boot的优势及其自动配置原理
Java面试题:解释Spring Boot的优势及其自动配置原理
101 0
|
6天前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
下一篇
无影云桌面