首页 > 其他分享 >springcloud alibaba 整合nacos&dubbo

springcloud alibaba 整合nacos&dubbo

时间:2023-02-01 17:36:49浏览次数:32  
标签:dubbo spring nacos alibaba springcloud com cloud

1.创建父模块

创建maven模块,不用勾选任何东西

依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.fenhao</groupId>
    <artifactId>demo-parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <!--模块-->
    <modules>
        <module>demo-provider</module>
    </modules>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
        <relativePath/>
    </parent>

    <!--版本管理-->
    <properties>
        <spring.boot.version>2.3.12.RELEASE</spring.boot.version>
        <spring.cloud.version>Hoxton.SR12</spring.cloud.version>
        <spring.cloud.alibaba.version>2.2.7.RELEASE</spring.cloud.alibaba.version>
        <dubbo.version>2.7.13</dubbo.version>
        <nacos.version>2.0.3</nacos.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>${spring.cloud.alibaba.version}</version>
        </dependency>
    </dependencies>
    <!--依赖管理-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

 

注意地方

1.子pom继承父pom问题

父dependencyManagement里面包含的依赖子项目需要各自引用才加载,不需要写版本号
父dependencies里面包含的依赖子项目直接继承

2.packageing必须是pom

3.版本问题

地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

 

 

 

2.创建子模块

创建module模块,不用勾选任何东西

依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>demo-parent</artifactId>
        <groupId>com.fenhao</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>demo-provider</artifactId>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-dubbo</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.spring</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>1.0.11</version>
        </dependency>
    </dependencies>
</project>

 

代码片段

server.port=8081
spring.application.name=nacos-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.enabled=ture
management.endpoints.web.exposure.include=*

#dubbo
dubbo.protocol.port=20881
dubbo.protocol.name=dubbo
dubbo.scan.base-packages=
dubbo.application.name = dubbo-application
dubbo.registry.address = nacos://127.0.0.1:8848
package com.fenhao.service;

import org.apache.dubbo.config.annotation.DubboService;

@DubboService
public class SayHelloService implements HelloService{

    @Override
    public String hello(String name) {
        System.out.println("say hello");
        return null;
    }
}
package com.fenhao;

import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDubbo
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }

}

 

注意地方

1.注解问题

启动开始加上@EnableDubbo。dubbo2.7.8以后的版本为了区别原生态@service注解把dubbo注解修改为@DubboService,如果要注册到nacos的话,不需要加上原生态springcloud注解@EnableDiscoveryClient

2.依赖报错问题

<dependency>
            <groupId>com.alibaba.spring</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>1.0.11</version>
        </dependency>

默认使用的1.0.10报错
Action:

Correct the classpath of your application so that it contains a single, compatible version of org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor

github#issue:https://github.com/alibaba/spring-cloud-alibaba/issues/2310

3.总结

springcloud&springcloud alibaba&springboot区分

springcloud是微服务解决方案里面包含eureka、feign、hystrix等等

springcloud是基于springboot

springcloud alibaba是阿里的微服务解决方案里面包含nacos、dubbo等等,但是nacos、dubbo等也可以和springcloud、springboot集成

springcloud alibaba是springcloud分支

标签:dubbo,spring,nacos,alibaba,springcloud,com,cloud
From: https://www.cnblogs.com/i-tao/p/17083524.html

相关文章

  • Dubbo 入门系列之快速部署一个微服务应用
    本文将基于DubboSamples示例演示如何快速搭建并部署一个微服务应用。背景Dubbo作为一款微服务框架,最重要的是向用户提供跨进程的RPC远程调用能力。如上图所示,Dubb......
  • dubbo分层模型
    多实例提供服务,p1,p2,p3提供的服务是一样的,但是地址不一样基于tcp封装的rpc的调用模式   dubbo使用的是rpc,基于tcp协议开发,效率是高于springcloud的rest,基......
  • Springcloud之Gateway入门
    API网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信......
  • Springcloud和dubbo的区别
    随着近几年微服务的兴起,最近大家对springcloud和dubbo的讨论越来越多,那么下面我们简单来看看这两者使用中的不同有哪些,以下观点仅供参考。1、架构完整度(见上图)或许很多人......
  • Nacos入门
    1、介绍①概要官网:home(nacos.io)Nacos:DynamicNamingandConfigurationService(动态命名和配置服务)你可以看为:Eureka(注册中心)+Config(配置中心)+Bus(消息总线)Nacos......
  • Docker部署Nacos自动停止运行
    1、现象使用docker部署的Nacos在运行一段时间后,就自动停止运行了。查看docker运行容器,nacos停止了2、解决因为是学生购买的轻量级服务器,所以配置很低,出现这种问题我默......
  • Dubbo 中 Zookeeper 注册中心原理分析
    Dubbo中Zookeeper注册中心原理分析https://mp.weixin.qq.com/s/XbLxxmqoxVkYS_eDM4cauA本文通过分析Dubbo中ZooKeeper注册中心的实现ZooKeeperResitry的继承体系结构,......
  • nacos的临时与持久化实例,傻傻分不清?
    本篇文章Nacos核心逻辑篇,给大家讲解一下「临时实例」与「持久化实例」的区别及运用场景。Nacos的临时实例与持久化实例在NacosClient进行实例注册时,我们知道是通过Insta......
  • What's new in Dubbo 3.1.5 and 3.2.0-beta.4
    在1月27日,新年伊始,Dubbo3.1.5和3.2.0-beta.4正式通过投票发布。本文将介绍发布的变化一览。Dubbo3.1.5版本是目前Dubbo3的最新稳定版本,我们建议所有的用户都......
  • What's new in Dubbo 3.1.5 and 3.2.0-beta.4
    在1月27日,新年伊始,Dubbo3.1.5和3.2.0-beta.4正式通过投票发布。本文将介绍发布的变化一览。Dubbo3.1.5版本是目前Dubbo3的最新稳定版本,我们建议所有的用户都......