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
相关文章
|
10月前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
5522 111
|
11月前
|
XML Java Nacos
Spring Boot 整合Nacos 版本兼容适配 史上最详细文档
本文介绍SpringBoot整合Nacos的完整流程,涵盖Nacos下载安装、配置中心与服务发现集成、版本兼容性问题及实战配置。重点解决SpringBoot 3.3.0与Nacos版本适配难题,推荐使用Spring Cloud Alibaba方案,并提供项目开源地址供参考学习。
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1518 3
|
11月前
|
SQL Java 数据库连接
Spring Data JPA 技术深度解析与应用指南
本文档全面介绍 Spring Data JPA 的核心概念、技术原理和实际应用。作为 Spring 生态系统中数据访问层的关键组件,Spring Data JPA 极大简化了 Java 持久层开发。本文将深入探讨其架构设计、核心接口、查询派生机制、事务管理以及与 Spring 框架的集成方式,并通过实际示例展示如何高效地使用这一技术。本文档约1500字,适合有一定 Spring 和 JPA 基础的开发者阅读。
942 0
|
10月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
810 8
|
12月前
|
Java 应用服务中间件 开发者
Spring Boot 技术详解与应用实践
本文档旨在全面介绍 Spring Boot 这一广泛应用于现代企业级应用开发的框架。内容将涵盖 Spring Boot 的核心概念、核心特性、项目自动生成与结构解析、基础功能实现(如 RESTful API、数据访问)、配置管理以及最终的构建与部署。通过本文档,读者将能够理解 Spring Boot 如何简化 Spring 应用的初始搭建和开发过程,并掌握其基本使用方法。
792 2
|
12月前
|
人工智能 监控 安全
如何快速上手【Spring AOP】?核心应用实战(上篇)
哈喽大家好吖~欢迎来到Spring AOP系列教程的上篇 - 应用篇。在本篇,我们将专注于Spring AOP的实际应用,通过具体的代码示例和场景分析,帮助大家掌握AOP的使用方法和技巧。而在后续的下篇中,我们将深入探讨Spring AOP的实现原理和底层机制。 AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架中的核心特性之一,它能够帮助我们解决横切关注点(如日志记录、性能统计、安全控制、事务管理等)的问题,提高代码的模块化程度和复用性。
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
1608 10
|
NoSQL Java Redis
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
856 2
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。

热门文章

最新文章