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
相关文章
|
8天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
58 1
|
17天前
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
59 1
|
19天前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
5天前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
4天前
|
人工智能 开发框架 Java
总计 30 万奖金,Spring AI Alibaba 应用框架挑战赛开赛
Spring AI Alibaba 应用框架挑战赛邀请广大开发者参与开源项目的共建,助力项目快速发展,掌握 AI 应用开发模式。大赛分为《支持 Spring AI Alibaba 应用可视化调试与追踪本地工具》和《基于 Flow 的 AI 编排机制设计与实现》两个赛道,总计 30 万奖金。
|
9天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用
【10月更文挑战第8天】本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,通过 Spring Initializr 创建并配置 Spring Boot 项目,实现后端 API 和安全配置。接着,使用 Ant Design Pro Vue 脚手架创建前端项目,配置动态路由和菜单,并创建相应的页面组件。最后,通过具体实践心得,分享了版本兼容性、安全性、性能调优等注意事项,帮助读者快速搭建高效且易维护的应用框架。
18 3
|
10天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用
【10月更文挑战第7天】本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,通过 Spring Initializr 创建 Spring Boot 项目并配置 Spring Security。接着,实现后端 API 以提供菜单数据。在前端部分,使用 Ant Design Pro Vue 脚手架创建项目,并配置动态路由和菜单。最后,启动前后端服务,实现高效、美观且功能强大的应用框架。
13 2
|
14天前
|
人工智能 缓存 Java
深入解析Spring AI框架:在Java应用中实现智能化交互的关键
【10月更文挑战第12天】Spring AI 是 Spring 框架家族的新成员,旨在满足 Java 应用程序对人工智能集成的需求。它支持自然语言处理、图像识别等多种 AI 技术,并提供与云服务(如 OpenAI、Azure Cognitive Services)及本地模型的无缝集成。通过简单的配置和编码,开发者可轻松实现 AI 功能,同时应对模型切换、数据安全及性能优化等挑战。
|
4天前
|
XML Java 数据格式
Spring IOC容器的深度解析及实战应用
【10月更文挑战第14天】在软件工程中,随着系统规模的扩大,对象间的依赖关系变得越来越复杂,这导致了系统的高耦合度,增加了开发和维护的难度。为解决这一问题,Michael Mattson在1996年提出了IOC(Inversion of Control,控制反转)理论,旨在降低对象间的耦合度,提高系统的灵活性和可维护性。Spring框架正是基于这一理论,通过IOC容器实现了对象间的依赖注入和生命周期管理。
15 0
|
1月前
|
Java 对象存储 开发者
故障隔离与容错处理:Hystrix在Spring Cloud和Netflix OSS中的应用
故障隔离与容错处理:Hystrix在Spring Cloud和Netflix OSS中的应用
42 3