东乡族网站建设,东营网站建设费用,怎么建设html网站,企业宣传册ppt模板#x1f38f;#xff1a;你只管努力#xff0c;剩下的交给时间 #x1f3e0; #xff1a;小破站 从零搭建微服务架构#xff1a;Spring Boot与Nacos完美整合 前言第一#xff1a;服务注册与发现第二#xff1a;配置中心第三#xff1a;报错问题解决第四#xff1a;什… 你只管努力剩下的交给时间 小破站 从零搭建微服务架构Spring Boot与Nacos完美整合 前言第一服务注册与发现第二配置中心第三报错问题解决第四什么配置该存入nacos中将配置放在Nacos中的情况直接在properties文件中写配置的情况 前言
微服务架构的崛起为开发者提供了更灵活、可维护的解决方案。然而随之而来的挑战是如何管理和维护这些分散的服务。在本文中我们将探索如何利用Spring Boot和Nacos两个强大的开源框架为你的微服务应用构建一个高效的基础设施。 注意版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。 第一服务注册与发现
1️⃣maven坐标实现
dependencygroupIdcom.alibaba.boot/groupIdartifactIdnacos-discovery-spring-boot-starter/artifactIdversion0.2.12/version
/dependency2️⃣properties配置
# 这里配置的是Nacos服务端的地址和端口。默认情况下Nacos的服务端地址是127.0.0.1端口是8848而不是8748。请确保使用正确的端口。
nacos.discovery.server-addr127.0.0.1:8748
# 如果你使用了Namespace确保Namespace的ID是正确的。在你的Nacos控制台中查看Namespace的ID并将其配置到nacos.discovery.namespace属性中。
nacos.discovery.namespace8afda2b0-5b6c-4839-9bb5-ee9db41fae1e
# 这个配置是用来控制是否自动注册服务到Nacos的。如果设置为true你的服务启动后会自动注册到Nacos中心。确保这个配置项符合你的需求。
nacos.discovery.auto-registertrue
3️⃣设置监听以及自动注册配置
package com.todoitbo.baseSpringbootDasmart.config;import com.alibaba.nacos.api.annotation.NacosInjected;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;import javax.annotation.PostConstruct;
import java.util.List;/*** author xiaobo*/
Configuration
public class NacosRegisterConfig {// 服务名称Value(${spring.application.name})private String applicationName;// 服务的端口号Value(${server.port})private Integer port;// 服务ip地址Value(${server.ip})private String ip;NacosInjectedprivate NamingService namingService;// PostConstruct 在依赖注入完成时执行注解的方法PostConstructpublic void register() throws NacosException {// 注册服务namingService.registerInstance(applicationName, ip, port);// 监听实现try {ListInstance instances namingService.getAllInstances(applicationName);System.out.println(Initial service instances: instances);// You can implement your logic to handle service instance changes here} catch (Exception e) {e.printStackTrace();}}}
成功示意图 第二配置中心
1️⃣maven坐标
dependencygroupIdcom.alibaba.boot/groupIdartifactIdnacos-config-spring-boot-starter/artifactIdversion0.2.12/version
/dependency2️⃣properties编写
nacos.config.server-addr127.0.0.1:7748
nacos.config.namespace8afda2b0-5b6c-4839-9bb5-ee9db41fae1e
nacos.config.data-idspringboot-bo
# 该属性定义了配置的类型。在这里它设置为 properties表示配置以属性文件的形式存在。
nacos.config.typeproperties
# 当设置为 true 时该属性在应用程序的引导阶段启用 Nacos 作为配置源。通常用于在主应用程序上下文创建之前加载配置属性。
nacos.config.bootstrap.enabletrue
# 当设置为 true 时该属性启用远程配置同步。这意味着应用程序将从 Nacos 服务器获取其配置。
nacos.config.enable-remote-sync-configtrue3️⃣获取配置
Value(${test.name})
private String testName;NacosInjected
private ConfigService configService;GetMapping(/testNacos)
public String testNacos() throws NacosException {String defaultGroup configService.getConfig(dataId, DEFAULT_GROUP, 5000);return defaultGroup -------- testName;
}成功示意图 上面演示了可以直接读取nacos中的配置并且可以使用Value直接拿到配置中的值 第三报错问题解决
Client not connected, current status:STARTING
第四什么配置该存入nacos中
决定将哪些配置放在Nacos中而将哪些配置直接写在properties文件中通常依赖于你的具体需求和项目的架构。以下是一些一般性的建议
将配置放在Nacos中的情况 动态配置 需要经常变更的配置例如数据库连接信息、缓存配置、服务端口等可以放在Nacos中实现动态更新无需重启应用。 多环境配置 如果你的应用需要在不同的环境中运行开发、测试、生产等可以将环境相关的配置放在Nacos中通过命名空间或分组来区分。 敏感信息 不希望将敏感信息如密钥、密码硬编码到代码中可以将其存储在Nacos的安全配置中实现集中管理。 微服务架构 在微服务架构中服务之间的调用地址、依赖关系等信息可以放在Nacos中实现服务发现与注册。
直接在properties文件中写配置的情况 静态配置 不需要经常变更的配置例如静态资源路径、日志配置等可以直接写在properties文件中。 默认配置 对于一些不会变更的默认配置可以直接写在properties文件中避免额外的Nacos配置。 简单项目 对于小型项目或简单应用不涉及多环境、动态配置等复杂场景时可以直接将所有配置写在properties文件中。 开发调试 在开发和调试阶段为了简化配置可以将一些临时性的配置直接写在properties文件中。
总体而言Nacos的优势在于它提供了动态配置管理的能力适用于需要频繁变更配置的场景。在实际应用中你可以根据项目的需求和复杂度灵活选择将哪些配置放在Nacos中哪些配置直接写在properties文件中。