Nacos使用SpringCloudAlibaba+Dubbo实现

这篇具有很好参考价值的文章主要介绍了Nacos使用SpringCloudAlibaba+Dubbo实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Nacos简介

Nacos使用SpringCloudAlibaba+Dubbo实现,java后端,微服务,java,spring,springcloud,nacos

Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、服务治理、配置管理的综合型解决方案。

官方介绍是这样的:

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Nacos 是构建以“服务”为中心的现代应用架构的服务基础设施。

搭建工程

一、项目相关依赖

父工程依赖

导入父模块的pom文件中。

<!--父工程依赖-->
    <dependencyManagement>
        <dependencies>
            <!--spring-boot-dependencies-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.3.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring-cloud-dependencies-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring-cloud-alibaba-dependencies-->
            <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>

常用依赖

不需要提供web页面显示的话就不需要加spring-boot-starter-web依赖。

想注册服务到Nacos服务中心需要加spring-cloud-starter-alibaba-nacos-discovery依赖。

通过dubbo实现服务远程调用,负载均衡需要加spring-cloud-starter-dubbo依赖。

从Nacos配置中心获取配置需要加spring-cloud-alibaba-nacos-config依赖。

<!--常用依赖-->
	<dependencies>
		<!--web前端-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--nacos服务发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
		<!--dubbo远程调用,负载均衡,引入 spring-cloud-starter-dubbo依赖,它会根据接口生成代理对象-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-dubbo</artifactId>
        </dependency>
        <!--nacos配置中心添加依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
        </dependency>
		
	</dependencies>	

二、配置文件

1. nacos-restful-consumer的application.yml

#定义提供者端口号
server:
  port: 56020



#自定义提供者地址成变量,也可直接在调用端写死,故可不定义,建议写成变量形式
provider:
  address: 127.0.0.1:56010



#自定义nacos的地址,可不定义
nacos:
  addr: 127.0.0.1:8848


#将本服务注册到nacos
spring:
  application:  #注册到nacos的服务名
    name: nacos-restful-consumer
  cloud:
    nacos:
      discovery:
        server-addr: ${nacos.addr}  #引用上边自定义nacos的地址
#      config:
#        server-addr: ${nacos.addr}  # nacos配置中心地址,需要写在bootstrap中
#        file-extension: yaml




#负载均衡-默认轮询,设置随机
nacos-restful-provider:  #提供者服务名spring.application.name,一般和模块名一致
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule




# 获取某配置集的代码
#config:
#  server-addr: 127.0.0.1:8848 # 配置中心地址
#  file-extension: yaml
#  namespace: a1f8e863-3117-48c4-9dd3-e9ddc2af90a8 # 开发环境
#  group: DEFAULT_GROUP # xx业务组




# 不检测依赖配置
dubbo:
  consumer:
    check: false

2. nacos-restful-consumer的bootstrap.yml 

从Nacos配置中心获取配置信息时参考下面代码。

#加载配置中心
spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848  # nacos配置中心地址
        file-extension: yaml
#        refresh:  
#          enabled: false   #关闭动态刷新,ConfigurableApplicationContext在controller层开启了

        #拓展自定义配置
        ext-config[0]:  #自定义配置1,自定义配置的优先级,多个配置文件若出现相同字段则根据优先级显示,下标越大优先级越高
          data-id: ext-config1.yaml  #Data ID
          group: DEFAULT_GROUP  #Group
          refresh: true  #默认没有动态刷新,需要手动开启true
        ext-config[1]:  
          data-id: ext-config2.yaml
          group: DEFAULT_GROUP
          refresh: true

3. nacos-dubbo-service1的yml

server:
  port: 56030 #启动端口 命令行注入

spring:
  application:
    name: dubbo-service1
  main:
    allow-bean-definition-overriding: true # Spring Boot 2.1 需要设定
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
dubbo:
  scan:
    #dubbo 服务扫描基准包
    base-packages: cn.yh.dubbo.service
  protocol:
    #dubbo 协 议
    name: dubbo
    #dubbo 协议端口
    port: 20881  #注意:多个服务时要修改端口,避免端口冲突
  registry:
    address: nacos://127.0.0.1:8848
  application:
    qos-enable: false #dubbo运维服务是否开启
  consumer:
    check: false #启动时就否检查依赖的服务

三、Dubbo远程调用流程及注意

nacos-restful-consumer调用nacos-dubbo-service1因为跨服务(模块)了,即为远程调用 。

dubbo远程调用步骤详见附链接

附:

总结Nacos、Spring Cloud、Spring Cloud Alibaba、Dubbo:http://t.csdn.cn/78Mps

看到这里了,给博主点个赞再走吧! 文章来源地址https://www.toymoban.com/news/detail-648655.html

到了这里,关于Nacos使用SpringCloudAlibaba+Dubbo实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务框架SpringcloudAlibaba+Nacos集成RabbiMQ

    目前公司使用jeepluscloud版本,这个版本没有集成消息队列,这里记录一下,集成的过程;这个框架跟ruoyi的那个微服务版本结构一模一样,所以也可以快速上手。 配置类的东西做成一个公共的模块 rabbitmq模块: 哪一个服务模块需要消息队列,就在对应的yml文件中配置 rabbit链接

    2024年02月07日
    浏览(29)
  • 微服务框架SpringcloudAlibaba+Nacos集成RabbitMQ

    目前公司使用jeepluscloud版本,这个版本没有集成消息队列,这里记录一下,集成的过程;这个框架跟ruoyi的那个微服务版本结构一模一样,所以也可以快速上手。 配置类的东西做成一个公共的模块 rabbitmq模块: 哪一个服务模块需要消息队列,就在对应的yml文件中配置 rabbit链接

    2024年02月06日
    浏览(21)
  • 【微服务 SpringCloudAlibaba】实用篇 · Nacos注册中心

    微服务(5) 国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 而我们现在差不多在学习SpringCloudAlibaba了,它与SpringCloud的关系就有点像SpringBoot与SpringMVC,SpringBoot引入SpringWeb框架就可以说是SpringMVC项目了,也可以说还是

    2024年02月08日
    浏览(29)
  • SpringCloudAlibaba微服务 【实用篇】| Nacos配置管理

    目录 一:Nacos配置管理 1. 统一配置管理 2. 配置热更新 3. 配置共享 4. 搭建Nacos集群 tips :前些天突然发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,感兴趣的同学可以进行学习人工智能学习网站 Nacos除了可以做注册中心(前面已经讲了)

    2024年02月05日
    浏览(38)
  • 【SpringBoot集成Nacos+Dubbo】企业级项目集成微服务组件,实现RPC远程调用

    在日益增长的业务需求中,一开始使用的是每个项目独立开发,虽然都是前后端分离的项目,但是每一个项目之间互不干扰。后来,因为某种需求,需要几个项目的数据相互交错获取。 最开始的想法就是集成多个数据源。 举例 有A、B、C三个项目,对应着数据库DBa、DBb、DBc、

    2024年02月04日
    浏览(43)
  • springCloudAlibaba组件-Nacos-服务发现与负载均衡(三)

    如果项目使用微服务架构,如果A微服务需要访问B微服务,需要http请求进行调用,当然需要B微服务的地址与端口号,微服务可以向之前提到的服务中心进行获取B服务的ip地址和端口号,这就是服务发现 1.客户端主动获取 客户端: 流程: 1.先是故障转移机制判断是否去本地文

    2024年02月10日
    浏览(34)
  • SpringCloudAlibaba微服务实战系列(一)Nacos服务注册发现

    实战前先做一个背景了解。 单体架构:近几年技术的飞速发展,各种各样的服务已经进入到网络化。单体架构发布时只需要打成一个war或jar包发布即可;而随着业务量激增或网站流量的增加,必会暴露致命缺陷。 SOA:Service Oriented Architecture 面向服务的体系结构。旨在提升代

    2024年02月15日
    浏览(27)
  • 基于Dubbo和Nacos搭建微服务的配置中心和服务注册中心

    1.添加nacos依赖 2.配置application.properties PS:nacos2.0除了需要8848的端口之外,还新增了端口+1000的新端口用于客户端和服务端GRPC通信的端口,所以如果是自己部署的nacos需要放开这俩个端口,服务才可以启动成功。 3.配置类 3.1 添加Spring Cloud原生注解 @EnableDiscoveryClient 3.2 客户端服

    2024年02月16日
    浏览(35)
  • 基于Kubernetes(k8s)部署Dubbo+Nacos服务

    本文介绍基于 Kubernetes(k8s) 环境集成阿里云 私有镜像仓库 来部署一套 Dubbo + Nacos 的微服务系统,并使用 Kubernetes DNS 以及 port-forward 的方式来打通网络访问。 k8s环境搭建参考文章《基于minikube快速搭建kubernetes单节点环境》 中在阿里云镜像仓库构建的镜像来进行部署。 基于《基

    2024年02月02日
    浏览(32)
  • SpringCloud + Gateway(网关) + Nacos(注册中心+配置中心)+ Dubbo(内部服务调用)

    Apache Dubbo是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力 1、协议支持方面 Feign更加优雅简单。Feign是通过REST API实现的远程调用,基于Http传输协议,服务提供者需要对外暴露Http接口供消费者调用,服务粒度是http接口级的。通过短连接的方式进行通信,

    2024年02月06日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包