SpringBoot项目集成Nacos及相关问题

        作为Spring Cloud Alibaba的子项目Nacos近些年来成为了众多Spring Cloud项目提供注册与发现微服务的工具。本文将讲述从零开始搭建Nacos服务并集成到自己的服务中。Nacos开箱即用支持Dubbo,SpringBoot等,本文以SpringBoot为例进行讲述。

        1.Nacos服务版本获取

        首先我们可以在Nacos的github地址下载最新的代码并下载到本地并编译或者直接下载编译好的nacos服务jar包(最新版本为2.2.1,稳定版本为2.1.1推荐使用,nacos1.x版本将停止维护不推荐使用)。

         2.环境配置

        Nacos服务依赖JDK环境执行,具体环境依赖如下:

        1) JDK 1.8+(64 bit)

        2) Maven 3.2.x+

        3) 支持 Linux/Unix/Mac/Windows(64 bit),推荐选用 Linux/Unix/Mac

        4) 最低配置要求2核4G内存 60G磁盘空间

        3.启动/关闭Nacos服务

        1)创建Nacos数据库用户

        2)将下载的Nacos包解压,打开目录下的conf目录application.properties文件,修改相关数据库地址

        3)到bin目录下运行启动脚本,Win执行cmd脚本

startup.cmd -m standalone

        Linux执行sh脚本

sh startup.sh -m standalone

        4)关闭服务:执行bin目录下的关闭脚本,Win执行cmd脚本

shutdown.cmd

        Linux执行sh脚本

sh shutdown.sh

        4.打开Nacos页面

        Nacos默认8848端口,如本地起服务打开127.0.0.1:8848/nacos即可打开页面

         到此Nacos服务部署完成。

        5.SpringBoot项目集成Nacos

        在SpringBoot项目(2.x)maven依赖添加Nacos相关依赖并更新Maven

<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>${latest.version}</version>
</dependency>

        修改application.properties文件

nacos.config.server-addr=127.0.0.1:8848

        spring.application.name作为注册服务的服务名,启动服务后可以在Nacos配置页面的中查看服务列表以确认是否正常注册。

        在此可以获取SpringBoot项目集成Nacos的示例

        6.常见问题及解决方案

        1)集群部署

          打开Nacos目录的conf文件夹下的cluster.conf文件,在此文件中写入集群Nacos的ip端口,并执行启动脚本(启动脚本默认为集群模式),部署点数推荐为奇数。

         2)命名空间

        Nacos如未定义命名空间,默认为public,在Nacos配置页面可新建多个命名空间且空间ID唯一,在服务启动参数中添加以下参数指定命名空间,命名空间相互独立。        

--spring.cloud.nacos.discovery.namespace=41864d7b-a77e-4a33-b2a3-3e9b0ea595d3

       3)Full GC报错

        修改或设置 XX:MetaspaceSize的JVM启动参数:-XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M 

        7.Nacos特性

        从此Naocs特性图可知Naocs支持相当多的主流框架,这也是为什么Nacos如此流行的原因之一,Nacos简化了服务的注册与发现并配置与管理。 

        Nacos优缺点:

        优点:

        1) 相比Eureka,Nacos提供动态上下线服务和踢出无效服务,当发现线上某个服务器状态异常时迅速下线或者因服务扩展时即时上线

        2) 一套Nacos服务提供多命名空间以此实现在一个Nacos中有测试、仿真、生产等多个环境

        3) Nacos基于轮询算法实现多服务的负载均衡

        缺点:

        Nacos对于用户和权限管理没有好的解决方案

       

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一款基于Spring框架的开发工具,可以简化Java应用程序的开发过程。而Nacos是阿里巴巴开源的一款服务发现和配置管理平台。以下是关于如何在Spring Boot集成Nacos的步骤: 1. 首先,需要在Spring Boot项目中添加Nacos的客户端依赖。可以在项目的pom.xml文件的dependencies中添加以下依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> ``` 2. 在Spring Boot的配置文件application.properties中,添加Nacos相关配置信息,包括Nacos的服务地址、应用的命名空间等。例如: ```properties spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=my-namespace ``` 3. 在Spring Boot的启动类中,使用@EnableDiscoveryClient注解启用Nacos的服务发现功能。例如: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 4. 接下来,可以通过注入NacosConfigManager来读取Nacos中的配置信息。例如: ```java import com.alibaba.nacos.api.config.ConfigService; import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @NacosPropertySource(dataId = "example", autoRefreshed = true) public class ConfigController { @Autowired private ConfigService configService; @GetMapping("/config") public String getConfig() { String config = configService.getConfig("example", "test-group", 5000); return config; } } ``` 以上就是在Spring Boot集成Nacos的基本步骤。通过这种方式,我们可以方便地使用Nacos来管理和获取配置信息,同时也可以轻松地实现服务的注册与发现功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值