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
相关文章
|
3天前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
1月前
|
安全 Java 网络安全
当网络安全成为数字生活的守护者:Spring Security,为您的应用筑起坚不可摧的防线
【9月更文挑战第2天】在数字化时代,网络安全至关重要。本文通过在线银行应用案例,详细介绍了Spring Security这一Java核心安全框架的核心功能及其配置方法。从身份验证、授权控制到防御常见攻击,Spring Security提供了全面的解决方案,确保应用安全。通过示例代码展示了如何配置`WebSecurityConfigurerAdapter`及`HttpSecurity`,帮助开发者有效保护应用免受安全威胁。
57 4
|
1天前
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
16 1
|
28天前
|
消息中间件 存储 Java
SpringCloud基础9——服务异步通信-高级篇
消息可靠性、死信交换机、惰性队列、MQ集群
SpringCloud基础9——服务异步通信-高级篇
|
28天前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
15天前
|
Java 对象存储 开发者
故障隔离与容错处理:Hystrix在Spring Cloud和Netflix OSS中的应用
故障隔离与容错处理:Hystrix在Spring Cloud和Netflix OSS中的应用
37 3
|
16天前
|
Java API 对象存储
微服务魔法启动!Spring Cloud与Netflix OSS联手,零基础也能创造服务奇迹!
这段内容介绍了如何使用Spring Cloud和Netflix OSS构建微服务架构。首先,基于Spring Boot创建项目并添加Spring Cloud依赖项。接着配置Eureka服务器实现服务发现,然后创建REST控制器作为API入口。为提高服务稳定性,利用Hystrix实现断路器模式。最后,在启动类中启用Eureka客户端功能。此外,还可集成其他Netflix OSS组件以增强系统功能。通过这些步骤,开发者可以更高效地构建稳定且可扩展的微服务系统。
34 1
|
21天前
|
Kubernetes Cloud Native Java
当 Quarkus 遇上 Spring Boot,谁才是现代云原生应用的终极之选?究竟哪款能助你的应用傲视群雄?
Quarkus 和 Spring Boot 均为构建现代云原生应用的热门框架,旨在简化开发流程并提升性能。Spring Boot 依托庞大的 Spring 生态系统,提供开箱即用的体验,适合快速搭建应用。Quarkus 由红帽发起,专为 GraalVM 和 HotSpot 设计,强调性能优化和资源消耗最小化,是云原生环境的理想选择。
21 3
|
28天前
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
1月前
|
IDE Java 开发工具
还在为繁琐的配置头疼吗?一文教你如何用 Spring Boot 快速启动,让开发效率飙升,从此告别加班——打造你的首个轻量级应用!
【9月更文挑战第2天】Spring Boot 是一款基于 Spring 框架的简化开发工具包,采用“约定优于配置”的原则,帮助开发者快速创建独立的生产级应用程序。本文将指导您完成首个 Spring Boot 项目的搭建过程,包括环境配置、项目初始化、添加依赖、编写控制器及运行应用。首先需确保 JDK 版本不低于 8,并安装支持 Spring Boot 的现代 IDE,如 IntelliJ IDEA 或 Eclipse。
92 5