iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Spring Cloud Alibaba整合Nacos使用的方法是什么
  • 378
分享到

Spring Cloud Alibaba整合Nacos使用的方法是什么

2023-07-05 11:07:44 378人浏览 八月长安
摘要

今天小编给大家分享一下spring Cloud Alibaba整合Nacos使用的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有

今天小编给大家分享一下spring Cloud Alibaba整合Nacos使用的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    一、前言

    近些年,随着微服务框架在越来越多的公司产品中实践落地,以spring cloud Alibaba为导向的一站式微服务解决方案也成为微服务实践和运用的风向标,Spring Cloud Alibaba提供了越来越完善的各类微服务治理组件,比如分布式服务配置与注册中心nacos,服务限流、熔断组件sentinel等。

    二、常用服务注册中心介绍

    为什么需要注册中心呢?简单来说,随着微服务的个数增多,规模增大,再向以往那样,两个微服务之间直接通过拼接完整的请求url调用的话,微服务的维护成本将是巨大的,也不便于后续微服务的api统一治理。

    事实上,微服务化的目的就是为了减少服务间的紧密耦合,同时,一定程度上减少服务与服务之间调用时更多的信息暴露,更直接点来说,就是说服务与服务之间的调用应该是去中心化的调用,而注册中心的好处就是为了达到此目的,注册中心提供了一种服务与服务之间互相发现的机制,通过注册中心,微服务提供的各类服务资源可以被统一纳管,进行集中式管理,这就是注册中心的好处。

    2.1 dubbo服务注册示意图

    下面是dubbo核心的经典的服务注册与调用示意图,其服务治理的核心就是注册中心:ReGIStry的存在。

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    2.2 常用注册中心对比

    下图列举了常用的几种分布式配置中心各个功能的对比,其他更多的配置中心,像eureka,zk,consul等也是可以使用的,具体可结合实际场景进行选择;

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    从上面的表的数据对比来看,SpringCloud alibaba为了更好的治理和打造自身的微服务生态体系,最终选择了自研的nacos,nacos即是分布式服务注册中心,同时也可以作为分布式配置中心使用,而且基于界面可视化操作客户端,提供了完善的治理方案。

    三、nacos介绍

    3.1  什么是nacos

    一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。

    3.2 nacos 特点

    nacos的主要特点如下:

    • 服务发现和服务健康监测;

    • 动态配置服务;

    • 动态 DNS 服务;

    • 服务及其元数据管理;

    简而言之

    nacos 用于管理所有微服务、解决微服务之间调用关系错综复杂、难以维护的问题;

    3.3 nacos生态链地图

    下图详细介绍了nacos的生态,优势,业务,架构等多维度的全景图,由此可见,作为sprinGCloud-alibaba微服务生态体系下的一款组件,其位置是非常重要的。

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    四、nacos部署

    nacos在单机环境下安装部署非常简单,只需要下载好安装包之后,执行bin目录下的启动脚本即可快速启动服务,下面是完整的流程。

    4.1 下载安装包

    也可以根据自身的需要选择合适的版本下载使用。

    Spring Cloud Alibaba整合Nacos使用的方法是什么

     选择完版本后,可以选择linux或者windows环境的安装包下载即可;

    Spring Cloud Alibaba整合Nacos使用的方法是什么

     这里选择了zip压缩包

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    4.2 修改脚本启动模式

    nacos启动脚本里面提供了集群模式和单机模式启动两种方式,由于本机搭建使用,选用单机模式即可,修改启动脚本中如下的关键参数;

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    4.3  启动nacos 服务

    修改并保存脚本之后,双击启动服务

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    启动成功之后,按上图中地址访问nacos的客户端控制台,默认登录用户名和密码:nacos/nacos

    Spring Cloud Alibaba整合Nacos使用的方法是什么

     登录成功后,看到如下的控制台界面;

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    五、Spring Cloud Alibaba 整合Nacos

    在真正进行代码整合之前,一定要弄清springloud alibaba版本选择的事情,很多同学在这里由于没弄清springloud alibaba与SpringBoot的版本依赖,兼容性导致在整合过程中遇到较多的问题;

    5.1  Spring Cloud Alibaba版本选型

    下面摘取git中关于各个版本选型的详细对照,git地址:各版本依赖关系地址,最重要的就是springboot的版本与Spring Cloud Alibaba 版本的依赖关系;

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    5.2  实验整合案例说明

    需求说明

    创建两个微服务,order(订单)微服务,和stock(库存)微服务;

    将两个微服务注册到nacos,通过nacos实现order服务对stock服务的调用;

    5.3  整合完整过程

    5.3.1 创建聚合工程,包括两个子模块

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    5.3.2 根pom引入如下依赖

    有更多需要管理的jar,统一在dependencyManagement中加入即可;

    <!-- 统一管理jar包版本 -->    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <Maven.compiler.source>1.8</maven.compiler.source>        <maven.compiler.target>1.8</maven.compiler.target>        <log4j.version>1.2.17</log4j.version>    </properties>     <dependencyManagement>        <dependencies>             <dependency>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-dependencies</artifactId>                <version>2.2.2.RELEASE</version>                <type>pom</type>                <scope>import</scope>            </dependency>             <dependency>                <groupId>org.springframework.cloud</groupId>                <artifactId>spring-cloud-dependencies</artifactId>                <version>Hoxton.SR1</version>                <type>pom</type>                <scope>import</scope>            </dependency>             <dependency>                <groupId>com.alibaba.cloud</groupId>                <artifactId>spring-cloud-alibaba-dependencies</artifactId>                <version>2.1.0.RELEASE</version>                <type>pom</type>                <scope>import</scope>            </dependency>         </dependencies>    </dependencyManagement>     <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build>
    5.3.3 子模块导入如下依赖

    这里暂时只需要导入springboot-WEB以及nacos的客户端即可;

    <dependencies>         <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>         <!--nacos-config 配置中心-自带动态刷新-->        <!--<dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>        </dependency>-->         <!--nacos-discovery 注册中心-服务发现与注册-->        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>        </dependency>     </dependencies>
    5.3.4 工程配置文件

    stock模块配置文件

    server:  port: 8085 spring:  application:    name: stock-service  cloud:    nacos:      discovery:        server-addr: localhost:8848 #服务注册中心地址      #config:        #server-addr: localhost:8848 #配置中心地址

    order模块配置文件

    server:  port: 8083 spring:  application:    name: order-service  cloud:    nacos:      discovery:        server-addr: localhost:8848 #服务注册中心地址      #config:        #server-addr: localhost:8848 #配置中心地址 service-url:  nacos-user-service: Http://stock-service
    5.3.5 stock模块提供一个扣减库存接口

    在stock模块中添加一个扣减库存的接口,给下单接口使用

    @RestController@RequestMapping("/stock")public class StockController {     @GetMapping("/reduct")    public String reduct(){        System.out.println("扣减库存");        return "扣减库存";    } }
    5.3.6 order模块提供一个下单接口
    @RestController@RequestMapping("/order")public class OrderController {     @Autowired    RestTemplate restTemplate;     @Value("${service-url.nacos-user-service}")    private String serverURL;     //localhost:8083/order/add    @GetMapping("/add")    public String add(){        System.out.println("下单成功");        //String forObject = restTemplate.getForObject("http://localhost:8082/stock/reduct", String.class);        String forObject = restTemplate.getForObject(serverURL + "/stock/reduct", String.class);        System.out.println(forObject);        return "add order :" + forObject;    } }
    5.3.7 工程启动类

    两个模块的启动类上面都加上@EnableDiscoveryClient 注解

    @SpringBootApplication@EnableDiscoveryClientpublic class OrderApp {    public static void main(String[] args) {        SpringApplication.run(OrderApp.class,args);    } }
    5.3.8 order模块添加配置类

    由于spring-cloud-starter-alibaba-nacos-discovery默认集成的是Ribbon,我们知道Ribbon是基于客户端的负载均衡实现,所以这里的LoadBalancerClient的实现类是RibbonLoadBalancerClient,由Ribbon实现对RestTemplate的负载均衡,在当前的两个工程模块中,order作为客户端,所以需要在order模块中添加一个RestTemplate的配置类,并使用LoadBalanced注解进行修饰;

    @Configurationpublic class RestConfig {     @Bean    @LoadBalanced    public RestTemplate restTemplate(){        return new RestTemplate();    } }

    5.4  模拟测试

    5.4.1 启动服务

    启动nacos,然后依次启动stock服务,order服务,在工程启动的时候,注意下面的关键信息,说明服务注册到了nacos;

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    启动完成之后,再次检查nacos的服务列表,可以发现上面正是两个工程的服务名;

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    5.4.2 接口模拟调用

    浏览器调用order模块的下单接口:localhost:8083/order/add,看到如下效果,说明通过nacos实现对微服务的调用就成功了

    Spring Cloud Alibaba整合Nacos使用的方法是什么

    以上就是“Spring Cloud Alibaba整合Nacos使用的方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

    --结束END--

    本文标题: Spring Cloud Alibaba整合Nacos使用的方法是什么

    本文链接: https://www.lsjlt.com/news/351463.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Spring Cloud Alibaba整合Nacos使用的方法是什么
      今天小编给大家分享一下Spring Cloud Alibaba整合Nacos使用的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有...
      99+
      2023-07-05
    • Spring Cloud Alibaba 整合Nacos的详细使用教程
      目录一、前言二、常用服务注册中心介绍2.1 dubbo服务注册示意图2.2 常用注册中心对比三、nacos介绍3.1  什么是nacos3.2 nacos 特点3...
      99+
      2023-03-13
      Spring Cloud Alibaba 整合Nacos Spring Cloud Alibaba Nacos
    • Spring Cloud整合Spring Boot Admin方法是什么
      这篇文章主要介绍“Spring Cloud整合Spring Boot Admin方法是什么”,在日常操作中,相信很多人在Spring Cloud整合Spring Boot Admin方法是什么问题上存在疑惑,小编查阅了各...
      99+
      2023-06-22
    • spring整合mybatis的方法是什么
      Spring整合MyBatis的方法有以下几种: 使用Spring的XML配置文件进行整合: 在Spring配置文件中配置数据...
      99+
      2023-10-25
      spring mybatis
    • spring整合hibernate的方法是什么
      Spring整合Hibernate的方法有以下几种:1. 使用Spring的HibernateTemplate:Spring提供了H...
      99+
      2023-08-12
      spring hibernate
    • spring-cloud-starter-alibaba-nacos-discovery在maven中找不到的问题以及解决方法
      com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery 项目中pom.xml直接用这个maven会报 Cou...
      99+
      2023-10-01
      maven spring boot java
    • Spring整合MyBatis的实现方法是什么
      这篇文章主要讲解了“Spring整合MyBatis的实现方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring整合MyBatis的实现方法是什么”吧!一、Spring 项目整体...
      99+
      2023-07-05
    • Java之Spring整合Junit的方法是什么
      这篇“Java之Spring整合Junit的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java之Spring整...
      99+
      2023-07-05
    • springcloud整合openfeign使用的方法是什么
      这篇文章主要介绍“springcloud整合openfeign使用的方法是什么”,在日常操作中,相信很多人在springcloud整合openfeign使用的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
      99+
      2023-07-05
    • spring整合redis消息监听通知使用的方法是什么
      本篇内容介绍了“spring整合redis消息监听通知使用的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题引入在电商系统中,秒...
      99+
      2023-06-22
    • Activiti7与Spring及Spring Boot整合开发的方法是什么
      这篇文章主要介绍“Activiti7与Spring及Spring Boot整合开发的方法是什么”,在日常操作中,相信很多人在Activiti7与Spring及Spring Boot整合开发的方法是什么问题上存在疑惑,小编...
      99+
      2023-07-05
    • linux中nacos的使用方法是什么
      在Linux中使用Nacos,可以通过以下步骤进行: 下载Nacos Server:首先从Nacos的官方网站(https://...
      99+
      2024-03-01
      linux nacos
    • 解决nacos升级spring cloud 2020.0无法使用bootstrap.yml的问题
      nacos升级spring cloud 2020.0无法使用bootstrap.yml 之前用spring cloud整合nacos,需要一个bootstrap.yml作为sprin...
      99+
      2024-04-02
    • SpringBoot整合aws的方法是什么
      这篇文章主要讲解了“SpringBoot整合aws的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot整合aws的方法是什么”吧!引入依赖  &...
      99+
      2023-06-21
    • Laravel整合Bootstrap4的方法是什么
      这篇“Laravel整合Bootstrap4的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Laravel整合Bo...
      99+
      2023-07-04
    • 使用Spring Boot实现对RabbitMQ整合的方法
      本篇文章给大家分享的是有关使用Spring Boot实现对RabbitMQ整合的方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.Topic交换器介绍Topic Excha...
      99+
      2023-05-31
      springboot rabbitmq
    • SpringBoot整合Jackson的方法是什么
      这篇文章主要介绍了SpringBoot整合Jackson的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合Jackson的方法是什么文章都会有所收获,下面我们一起来看看吧。一、J...
      99+
      2023-07-05
    • SpringBoot整合RocketMQ的方法是什么
      这篇文章主要介绍了SpringBoot整合RocketMQ的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合RocketMQ的方法是什么文章都会有所收获,下面我们一起来看看吧。1...
      99+
      2023-07-05
    • SpringBoot整合Swagger的方法是什么
      本文小编为大家详细介绍“SpringBoot整合Swagger的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot整合Swagger的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
      99+
      2023-07-06
    • springboot整合mongodb的方法是什么
      这篇文章主要介绍“springboot整合mongodb的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot整合mongodb的方法是什么”文章能帮助大家解决问题。1.mo...
      99+
      2023-07-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作