Dubbo3简单使用

中仑网络全站 Dubbo 2 迁移 Dubbo 3 总结 中仑网络在 2022 年完成了服务框架从 Dubbo 2 到 Dubbo 3 的全站升级,深度使用了应用级服务发现、Kubernetes 原生服务部署、服务治理等核心能力。 阅读详情

Dubbo3简单使用

👉 使用Spring Boot实现Dubbo3,请参见以下地址。

# Dubbo3官网地址
https://cn.dubbo.apache.org/zh/

# 使用SpringBoot实现Dubbo3的地址
https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/spring-boot/

# 该项目的git地址
https://github.com/MasonYyp/mydubbo

1 同一个项目中创建多个应用

1.1 创建Maven项目

(1)创建Maven项目
在这里插入图片描述

(2)配置项目信息

项目名称:mydubbo
GroupId:com.mason
Artifactld: mydubbo
Version: 1.0

在这里插入图片描述

(3)项目创建完成

在这里插入图片描述

(4)配置pom

<?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.mason</groupId>
    <artifactId>mydubbo</artifactId>
    <version>1.0</version>

    <!-- 必须配置为pom,应用配置为jar -->
    <packaging>pom</packaging>

    <modules>
        <module>ducommon</module>
        <module>duprovider</module>
        <module>duconsumer</module>
    </modules>

    <properties>
        <java.version>11</java.version>
        <spring-boot-version>2.3.12.RELEASE</spring-boot-version>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencyManagement>

        <!-- 注意:尽量在此配置Spring-Boot版本,子应用中可以不配置SpringBoot版本 -->
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <!-- 配置Maven插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.0</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot-version}</version>
            </plugin>

        </plugins>
    </build>

</project>

1.2 创建应用模块

(1)创建模块

在这里插入图片描述

(2)创建Maven

选择Maven模块,点击“Next”。
在这里插入图片描述

(3)设置应用信息

设置应用信息后,点击“Finish”即可。

在这里插入图片描述

(4)创建完成

在这里插入图片描述

1.3 创建其他

创建其他应用的方法和上面的方法类似,分别创建Dubbo的服务提供者(duprovider)和服务消费者(duconsumer)。

  • GroupId: com.mason
  • Version: 1.0
  • 创建应用的目录:mydubbo目录下

分别在应用下创建java包(选择Module时创建Maven默认不会创建java包)。

应用名称(ch)应用名称(en)包名备注
公共模块ducommoncom.mason.ducommon为其他模块提供公共接口
服务提供者duprovidercom.mason.duprovider提供服务
服务消费者duconsumercom.mason.duconsumer消费服务

应用创建完成后如下

⚠️ 项目创建完成后删除mydubbo项目下的src目录(主要原因是用不上),保留pom文件。

在这里插入图片描述

2 软件版本选择

(1)Spring Cloud Alibaba版本说明

https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

(2)Spring Cloud版本说明

# 介绍了相应的版本
https://spring.io/projects/spring-cloud#overview

# 介绍了稳定版(含有GA标识)
https://spring.io/projects/spring-cloud#learn

(3)版本选择

⚠️ 组件版本很重要,需要慎重选择,Dubbo3需要配合Nacos2使用。

软件版本号
Spring CloudHoxton.SR12
Spring Boot2.3.12.RELEASE
Spring Cloud Alibaba2.2.9.RELEASE
Sentinel1.8.5
Nacos2.1.0
RocketMQ4.9.4
Seata1.5.2
Dubbo3.1.4

3 安装nacos

3.1 Nacos安装参考地址

https://blog.youkuaiyun.com/make_progress/article/details/128855472

3.2 安装MySQL

# 创建网桥
docker network create --driver bridge du_net

# 下载MySQL
docker pull mysql:5.7.34

# 创建数据库
docker run -itd --name du_mysql \
--net du_net \
--restart=always \
-p 3306:3306 \
-v /home/dubbo/mysql/conf:/etc/mysql/conf.d \
-v /home/dubbo/mysql/data:/var/lib/mysql \
-v /home/dubbo/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7.34

3.3 初始化Nacos数据库


# 解压“nacos-server-2.1.0.zip”文件,将“nacos-server-2.1.0/nacos/conf”目录中的“nacos-mysql.sql”复制到容器中
docker cp nacos-mysql.sql du_mysql:/home/

# 进入容器
docker exec -it du_mysql /bin/bash

# 进入MySQL数据库,输入密码后进入MySQL
mysql -u root -p

# 创建数据库
create database nacos_config;

# 切换数据库
use nacos_config

# 导入nacos配置信息到数据库
source /home/nacos-mysql.sql

3.4 安装Nacos

# 下载Nacos镜像
docker pull nacos/nacos-server:v2.1.0

# 安装nacos
# 注意:Nacos2比Nacos1多开9848、9849两个端口需求全部开放,否则应用无法注册到Nacos
docker run -itd --name du_nacos \
--net du_net \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--env MODE=standalone \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=du_mysql \
--env MYSQL_SERVICE_PORT=3306 \
--env MYSQL_SERVICE_USER=root \
--env MYSQL_SERVICE_PASSWORD=123456 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
nacos/nacos-server:v2.1.0

访问Nacos

# 地址
http://192.168.108.200:8848/nacos

账号:nacos
密码:nacos

4 公共模块

4.1 项目截图

在这里插入图片描述

4.2 pom.xml

<?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>mydubbo</artifactId>
        <groupId>com.mason</groupId>
        <version>1.0</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>ducommon</artifactId>
    <packaging>jar</packaging>

    <properties>
        <!-- 此模块是公共模块 -->
        <java.version>11</java.version>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>

        <!-- Parse json -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>

        <!-- Init the entity -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

</project>

4.3 服务层service下接口文件

service包下文件

package com.mason.ducommon.service;

public interface TestService {

    public String getInfo(String message);
}

5 服务提供者

5.1 项目截图

在这里插入图片描述

5.2 pom.xml

<?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>mydubbo</artifactId>
        <groupId>com.mason</groupId>
        <version>1.0</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>duprovider</artifactId>
    <packaging>jar</packaging>

    <properties>

        <java.version>11</java.version>
        <spring-boot-version>2.3.12.RELEASE</spring-boot-version>
        <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
        <spring.cloud.alibaba.version>2.2.9.RELEASE</spring.cloud.alibaba.version>

        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>3.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>3.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
            <version>3.1.4</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- 引入自定义的公共模块 -->
        <dependency>
            <groupId>com.mason</groupId>
            <artifactId>ducommon</artifactId>
            <version>1.0</version>
        </dependency>

    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.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>

    <!-- 注意:如果出现找不到此应用包时,可以配置当前应用的Main入口 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot-version}</version>
                <configuration>
                    <mainClass>com.mason.duprovider.DuproviderApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

5.3 yml文件

服务提供者做了3个节点,yml文件有“application-node1.yml,application-node2.yml,application-node3.yml”

application-node1.yml

server:
  port: 8081

spring:
  # 配置注册在Nacos中的应用名称
  application:
    name: app-duprovider

  cloud:
    # 设置Nacos服务注册地址
    nacos:
      discovery:
        server-addr: 192.168.108.200:8848

dubbo:
  # 设置Dubbo服务的应用名,如果不设置此应用名默认为应用名,此外默认为“app-duprovider”
  application:
    name: dubbo-duprovider

  # 设置Dubbo协议信息
  protocol:
    name: dubbo
    # 端口可以设置为“-1”,表示端口自增长
    port: 9081

  # 设置注册地址
  registry:
    address: nacos://192.168.108.200:8848

  # 设置服务超时
  provider:
    timeout: 3000

management:
  endpoints:
    web:
      exposure:
        include: '*'

application-node2.yml

server:
  port: 8082

spring:
  application:
    name: app-duprovider

  cloud:
    nacos:
      discovery:
        server-addr: 192.168.108.200:8848

dubbo:
  application:
    name: dubbo-duprovider
  protocol:
    name: dubbo
    port: 9082

  registry:
    address: nacos://192.168.108.200:8848

  provider:
    timeout: 3000

management:
  endpoints:
    web:
      exposure:
        include: '*'

application-node3.yml

server:
  port: 8083

spring:
  application:
    name: app-duprovider

  cloud:
    nacos:
      discovery:
        server-addr: 192.168.108.200:8848

dubbo:
  application:
    name: dubbo-duprovider
  protocol:
    name: dubbo
    port: 9083

  registry:
    address: nacos://192.168.108.200:8848

  provider:
    timeout: 3000

management:
  endpoints:
    web:
      exposure:
        include: '*'

5.4 controller

此处的controller的作用是查看服务是否启动,与Dubbo提供服务无关,可以不要controller。

DubboController.java

package com.mason.duprovider.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/provider")
public class DubboController {

    @Value("${server.port}")
    private String port;

    @RequestMapping("/getdata")
    public String getData(){
        return "Dubbo " + this.port;
    }
}

5.5 service

提供Dubbo服务,实现公共模块(ducommon)中的服务接口。

Dubbo在新版本中使用@DubboService,旧版本中使用@Service,将Dubbo服务注册到注册中心。

TestServiceImpl.java

package com.mason.duprovider.service;

import com.mason.ducommon.service.TestService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Value;


@DubboService
public class TestServiceImpl implements TestService {

    @Value("${server.port}")
    private String port;

    @Override
    public String getInfo(String message) {
        return "Service " + this.port + message;
    }
}

5.6 启动类

DuproviderApplication.java

⚠️ 注意:需要在启动类上,添加“@EnableDubbo"注解

package com.mason.duprovider;

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

@SpringBootApplication
@EnableDubbo
public class DuproviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(DuproviderApplication.class, args);
    }

}

5.7 访问controller的服务

# 访问地址
http://127.0.0.1:8081/provider/getdata

配置启动
在这里插入图片描述

浏览器结果

在这里插入图片描述

Nacos中结果

在这里插入图片描述

6 服务消费者

6.1 项目截图

在这里插入图片描述

6.2 pom.xml

<?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>mydubbo</artifactId>
        <groupId>com.mason</groupId>
        <version>1.0</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>duconsumer</artifactId>
    <packaging>jar</packaging>

    <properties>

        <java.version>11</java.version>
        <spring-boot-version>2.3.12.RELEASE</spring-boot-version>
        <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
        <spring.cloud.alibaba.version>2.2.9.RELEASE</spring.cloud.alibaba.version>

        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>3.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>3.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
            <version>3.1.4</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- 引入自定义的公共模块 -->
        <dependency>
            <groupId>com.mason</groupId>
            <artifactId>ducommon</artifactId>
            <version>1.0</version>
        </dependency>

    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.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>

    <!-- 注意:如果出现找不到此应用包时,可以配置当前应用的Main入口 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot-version}</version>
                <configuration>
                    <mainClass>com.mason.duconsumer.DuconsumerApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

6.3 yml文件

服务消费者也做了3个节点,yml文件有“application-node1.yml,application-node2.yml,application-node3.yml”

application-node1.yml

server:
  port: 8091

spring:
  # 配置注册在Nacos中的应用名称
  application:
    name: app-duconsumer

  cloud:
    # 设置Nacos服务注册地址
    nacos:
      discovery:
        server-addr: 192.168.108.200:8848

dubbo:

  # 此处可以不设置Dubbo服务的应用名,因为没有注册Dubbo服务
  application:
  name: dubbo-duprovider

  # 设置Dubbo协议信息
  protocol:
    name: dubbo
    # 端口可以设置为“-1”,表示端口自增长
    port: 9091

  # 设置注册地址
  registry:
    address: nacos://192.168.108.200:8848

  # 设置服务超时
  provider:
    timeout: 3000

management:
  endpoints:
    web:
      exposure:
        include: '*'

application-node2.yml

server:
  port: 8092

spring:
  application:
    name: app-duconsumer

  cloud:
    nacos:
      discovery:
        server-addr: 192.168.108.200:8848

dubbo:

  application:
  name: dubbo-duprovider

  protocol:
    name: dubbo
    port: 9092

  registry:
    address: nacos://192.168.108.200:8848

  provider:
    timeout: 3000

management:
  endpoints:
    web:
      exposure:
        include: '*'

application-node3.yml

server:
  port: 8093

spring:
  application:
    name: app-duconsumer

  cloud:
    nacos:
      discovery:
        server-addr: 192.168.108.200:8848

dubbo:

  application:
  name: dubbo-duprovider

  protocol:
    name: dubbo
    port: 9093

  registry:
    address: nacos://192.168.108.200:8848

  provider:
    timeout: 3000

management:
  endpoints:
    web:
      exposure:
        include: '*'

6.4 controller

控制层,为用户提供服务。

DubboController.java

package com.mason.duconsumer.controller;

import com.mason.duconsumer.service.TestServiceRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/consumer")
public class DubboController {

    @Autowired
    private TestServiceRequest testServiceRequest;

    @RequestMapping("/getdata")
    public String getData(){
        return this.testServiceRequest.getInfo();
    }

}

6.5 service

服务层,消费Dubbo服务提供者提供的服务。

Dubbo在新版本中使用@DubboReference,旧版本中使用@Reference,消费注册中心的Dubbo服务。

TestServiceRequest.java

package com.mason.duconsumer.service;

import com.mason.ducommon.service.TestService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;


@Service
public class TestServiceRequest {

    @DubboReference
    private TestService testService;

    public String getInfo() {
        return this.testService.getInfo(" -- Hello Dubbo");
    }
}

6.6 启动类

DuconsumerApplication.java

package com.mason.duconsumer;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class DuconsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(DuconsumerApplication.class, args);
    }

}

6.7 访问controller的服务

# 访问地址
http://127.0.0.1:8091/consumer/getdata

配置启动
在这里插入图片描述

浏览器中的结果

在这里插入图片描述

Nacos中结果

在这里插入图片描述

7 项目打包

在这里插入图片描述

【最新Dubbo3深入理解】Dubbo3中的SPI机制以及IOC、AOP 在 Dubbo 中 SPI 是一个非常重要的模块,基于 SPI 可以很容易的进行扩展,可以 很灵活的替换接口的实现类,通过 SPI 可以在运行期间动态的寻找具体的实现类! 阅读详情

相关推荐

【微服务】springboot 整合 dubbo3.0

springboot 整合 dubbo3.0

congge_study的博客 1万+

Dubbo基础入门二

Triple 是 Dubbo3 提出的基于 HTTP2 的开放协议,旨在解决 Dubbo2 私有协议带来的互通性问题。另外,Google公司开发的gRPC,也基于的HTTP2,目前gRPC是云原生事实上协议标准,包括k8s/etcd等都支持gRPC协议。

励志成为一名优秀的全能型软件开发工程师。 1334

数学建模 种群竞争模型 学习笔记

模型背景 应用场景 种群竞争模型 例如 s1=0.5,则表示对于供养甲的资源来讲,单位数量的乙的消耗为单位数量的甲的0.5倍,即表示乙对于该资源的占有能力是甲的0.5倍(即竞争力弱) 仿真结果及分析 (1)设置自然增长率 r1=r2=1 (2)改变自然增长率 r1=r2=0.3 (3)修改甲和乙的最大容量 n1=10000, n2=100 (4)修改甲和乙的初始数量 x1=10, x...

Test_tju的博客 2028

Dubbo3深入实战

分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”分布式系统(distributed system)是建立在网络之上的软件系统。简单来说:多个(不同职责)人共同来完成一件事!任何一台服务器都无法满足淘宝的双十一的数据吞吐量,一定是很多台服务器公共来完成的。歇后语:“三个臭皮匠赛过诸葛亮”,就是分布式系统的真实写照DubboThrift (社区活跃度不是很好)Apache Dubbo的Filter与Servlet的Filter功能类似。

weixin_46678115的博客 1859

智能车八邻域图像算法_二

智能车八邻域图像算法 文章目录智能车八邻域图像算法前言一、一些想法二、生长方向的使用1.点的生长方向的表示2. 用点的生长方向来做初步判断1.引入库2.读入数据总结 前言 上一篇里面讲过用八邻域来获得赛道边界:智能车八邻域图像算法 当已经能稳定获得赛道边界时,就可以进行元素识别,获得偏差了。 这里就介绍一下我的一些思路。 早在前两年,优快云上就有一篇关于八邻域如何处理元素的文章第十五届全国大学生智能汽车竞赛-双车组三轮图像处理总结,写得很好,我当时也参考了这篇文章,但是我觉得不是很详细,所以我这里想写得

技术缝合怪的博客 1万+

YOLOv11改进 | 网络结构代码逐行解析(一) | 项目目录构造分析

Hello,大家好这次给大家带来的不是改进,是整个YOLOv11项目的分析整个系列大概会更新5-7篇左右的文章从项目的目录到每一个功能代码的都会进行详细的讲解,下面开始进行YOLOv11逐行解析的第一篇——项目目录构造分析开头之前顺便给大家推荐一下我的专栏,本专栏更新上百余篇YOLOv11改进机制手把手教你添加到网络结构中,同时针对拿到模型不知道如何修改,不知道如何发表论文的读者进行针对性的文章介绍,本专栏质量分平均分96分,内容质量完全有所保证。

Snu77的博客 1万+

dubbo3的基本概述2021-11-16

Dubbo3的简单学习 Apache Dubbo 是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。同时 Dubbo 是高度可扩展的,用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。 dubbo的基础功能: 服务发现 流式通信 负载均衡 流量治理 … 使用dub

a_ittle_pan的博客 1535

Python 爬虫实战:豆瓣 / IMDB 电影数据抓取(评分 + 剧情 + 演员阵容结构化处理)

在数据为王的时代,电影数据是进行市场分析、推荐系统构建和学术研究的重要资源。豆瓣和 IMDB 作为国内外最具影响力的电影评分和资讯网站,包含了海量高质量的电影数据。本文将带领你从零开始,构建一个健壮的 Python 爬虫,用于抓取豆瓣和 IMDB 的电影信息,并将其中的非结构化数据(如剧情简介、演员列表)进行清洗和结构化处理,最终存储到便于分析的结构化文件(如 CSV)中。

yansideyucsdn的博客 956

新人一看就懂:Dubbo3 + Nacos的RPC远程调用框架demo

之前有写过Dubbo2+Zookeeper的RPC远程调用框架demo,因为Dubbo3出来已经一段时间了,加上Zookeeper这玩意很少有人用了,所以结合实下流行的Dubbo3+Nacos搭建一套RPC远程调用框架demo。Nacos也是阿里出的,我前面的文章也有写过,是一个优秀的注册中心和配置中心。

程序员云帆哥的博客 3703

垂类大模型 研发方向与具体方案调研

领域知识库加上通用大模型,针对通用大模型见过的知识比较少的问题,利用向量数据库等方式根据问题在领域知识库中找到相关内容,再利用通用大模型强大的summarization和qa的能力生成回复,完成本次垂直大模型研发。目前很多企业希望将大模型的能力应用到企业内部当中,但很多通用大模型只是一个预训练模型,其所能回答的知识主要来源于互联网上公开的通用知识库,对于部分垂直领域和企业内部的私有知识库的问答,给出的回答。:垂类大模型的效果与底座性能息息相关,研发垂类大模型第一步就是确定开源大模型解决方案。

风吹落叶的博客 3329

在 IW31 录入班次与当班负责人,并让 IW38 列表同步显示:基于 IWO10018 + IWOC0004 的一套可落地增强方案

摘要 本文详细介绍了在SAP PM模块中实现工厂设备维护订单增强的完整方案,重点解决两个核心需求:在订单创建时新增班次负责人和班次字段,并在订单列表中直接显示这些信息。文章从需求分析、技术设计到具体实现步骤进行了系统阐述。 关键实现步骤包括: 通过CI_AUFK结构扩展AUFK表,确保字段持久化存储 使用IWO10018增强在IW31/IW32/IW33事务中添加输入界面 通过IWOC0004增强在IW38订单列表中显示新增字段 采用优化的数据填充策略提升性能 该方案不仅满足业务需求,还考虑了用户体验和系统

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 176

dubbo 中文官网

根大家分享一下:dubbo的中文官网迁移到了githup上地址:https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.html   以前的地址不可用了

zhen340417593的专栏 2万+

基于方差分解分析气象/水文干旱驱动因素(含MATLAB全代码)

简介基于方差分解方法分析气象/水文干旱驱动因素

WW、forever的博客 801

【005】Dubbo3从0到1系列之Springboot配置dubbo3

Spring Boot项目中配置Dubbo3框架。主要内容包括: 环境要求:使用Nacos 2.3.2作为注册中心,Java 17+,Spring Boot 3.5.6,Maven 3.9.9和Dubbo 3.3.5版本。 依赖配置:提供了Spring Boot和非Spring Boot两种项目类型的依赖配置方案,重点介绍了dubbo-spring-boot-starter和dubbo-nacos-spring-boot-starter的使用。

编程技术圈 1845

华为OD机考双机位C卷 - 风险投资计划(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 风险投资计划(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 547

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

分布式之dubbo3

Triple 是 Dubbo3 提出的基于 HTTP2 的开放协议,旨在解决 Dubbo2 私有协议带来的互通性问题。另外,Google公司开发的gRPC,也基于的HTTP2,目前gRPC是云原生事实上协议标准,包括k8s/etcd等都支持gRPC协议。

励志成为一名优秀的全能型软件开发工程师。 1731

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

dubbo3使用详解

Dubbo 3.x 是 Dubbo 框架的里程碑版本,旨在解决云原生时代微服务架构的挑战

技术人集结地 1652

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Dubbo2 与 Dubbo3 的主要区别与演进

Dubbo2:接口级注册,直观但在大规模接口场景下订阅和推送压力过大。Dubbo3:应用级注册 + 元数据服务,将实例信息与接口信息分离,显著降低注册中心压力,更适合大规模、云原生、跨语言的微服务架构。Dubbo2 注册中心是“接口目录”。Dubbo3 注册中心是“应用实例目录”,接口信息由维护。

hanlepeng的博客 718

Dubbo-Admin 实践,Dubbo3 配置多协议,同时提供Dubbo和HTTP协议

Dubbo是支持多协议的,它默认的Dubbo协议已经很好了,正常情况下,使用Dubbo是做服务之间的通信是不需要更换协议的。比如有两个服务的提供者提供相同的服务,可以给它们打上A、B标签,请求的时候可以根据标签去固定请求对应的服务。默认的协议就是 dubbo,所以在使用的时候不需要指定协议,如果使用其它协议需要指定对应的协议。Dubbo不只是作为服务间的通讯,它还涉及服务治理,今天就来一起学习下Dubbo的控制台使用。原本的dubbo协议是不需要提供路径的,现在的HTTP需要提供路径,改造如下。

小道仙的后宫 1860

10. Springboot集成Dubbo3(一)简单介绍

Dubbo是一个开源的Java分布式服务框架,最初由阿里团队于2011年开发,其设计目标是为了解决阿里巴巴内部的大规模分布式系统中遇到的问题,包括服务治理、RPC通信等。后来阿里团队将Dubbo贡献给了Apache开源基金会,开源后,得到了广泛的关注和使用。此后阿里团队宣布不在维护Dubbo框架(可能转到了SpringCloud Alibaba框架设计),Dubbo版本停在了2.x。此后当当网基于2.x版本的基础上进行优化和维护,出现了Dubbox版本。

有一只柴犬的专栏 2453

Dubbo3

Apache Dubbo 是一款分布式微服务开发框架,它提供了 **RPC通信** 与 **微服务治理** 两大关键能力。 曾经基于各个微服务之间的接口,我们需要通过HTTP+restful或者WebService等调用方式来进行服务之间的通信进行数据交互,而Dubbo采用的是分布式SOA(服务规范体系)服务治理方案,通过RPC(远程网络通讯协议)远程服务调用。......

肝铁侠的博客 1951

dubbo2和dubbo3区别

dubbo3:beanName根据当前添加的beanDefinition class,再加上“#编号”,如 org.apache.dubbo.config.spring.ServiceBean#0、org.apache.dubbo.config.spring.ServiceBean#1。“reference bean id不同,接口相同,registry不同” 场景下, 只订阅了一个registry的服务,原因是。找到的prevConfig相同(地址相同,或除了id意外的其它属性值均相同),则返回。

weixin_43675252的博客 1999

【004】Dubbo3从0到1系列之Spring整合Dubbo3

本文介绍了Spring整合Dubbo3的基础实现方式,采用父子工程结构,不依赖注册中心。环境使用Java 17、Spring 6.2.11和Dubbo 3.3.5。主要内容包括:1)创建父工程并引入Lombok、日志和Dubbo依赖;2)建立公共接口模块定义服务接口;3)实现服务提供模块,通过XML配置发布Dubbo服务,指定应用名、协议端口和服务实现;4)创建服务消费模块,通过XML引用远程服务。

编程技术圈 753

【008】Dubbo3从0到1系列之Dubbo3中的URL

Dubbo3使用URL作为统一配置模型,贯穿整个框架,封装了服务调用的协议、地址、端口、参数等关键信息。URL类包含核心功能如解析构建、参数管理、服务标识等,通过URLAddress和URLParam分别处理地址和参数。作为"配置总线",URL简化了上下文传递,支持动态扩展,统一了服务注册、发现、调用等流程的配置规范,提升了代码可读性和沟通效率。其标准化设计降低了系统复杂度,成为Dubbo扩展点体系中的核心契约。

编程技术圈 1214

dubbo2和dubbo3 入门简介

补上个人学习记录

qq_37432174的博客 1020

dubbo3.0使用

官方网址:https://dubbo.apache.org/本文基于springCloud依赖的方式演示相关示例:https://github.com/alibaba/spring-cloud-alibaba/wiki/Dubbo-Spring-Clouddubbo示例项目:https://github.com/apache/dubbo-samplesspringBoot相关示例:https://github.com/apache/dubbo-spring-boot-project。

我的技术博客 2173
上一篇: SpringBoot连接OpenGauss数据库
下一篇: 使用Docker安装maven私有仓库(nexus3)
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值