当前位置: 首页 > news >正文

学做网站需要什么基础新媒体营销总结

学做网站需要什么基础,新媒体营销总结,宁波网站优化的关键,主机 安装wordpressDubbo Spring Boot Zookeeper 快速搭建分布式服务 本文将详细介绍如何基于 Dubbo、Spring Boot 和 Zookeeper 快速搭建一个简单的分布式服务调用场景,包含服务提供者(Provider)、服务消费者(Consumer)及公共接口&…

Dubbo + Spring Boot + Zookeeper 快速搭建分布式服务

本文将详细介绍如何基于 Dubbo、Spring Boot 和 Zookeeper 快速搭建一个简单的分布式服务调用场景,包含服务提供者(Provider)、服务消费者(Consumer)及公共接口(API)的创建与配置,帮助开发者快速上手分布式服务开发。

1. 环境准备与项目结构设计

1.1 核心组件版本说明

  • Spring Boot:2.7.15(稳定版本,兼容性较好)
  • Dubbo:3.1.0(支持 Spring Boot 自动配置,简化开发)
  • Zookeeper:3.4.6(作为服务注册中心,需提前在本地安装并启动)

1.2 启动本地 Zookeeper

Zookeeper 是 Dubbo 默认的服务注册中心,需先确保本地 Zookeeper 正常运行:

  1. 下载 Zookeeper 并解压,进入 bin 目录

  2. 执行zkServer.cmd(Windows)启动服务

  3. 启动成功后,控制台会显示类似如下信息:
    在这里插入图片描述

1.3 创建父项目与子模块

使用 IDEA 或 Eclipse 创建一个 Spring Boot 父项目,然后在父项目下新建 3 个子模块,分别对应:

  • api:存放公共接口(服务契约),供 Provider 和 Consumer 依赖
  • provider:服务提供者,实现 api 模块的接口并暴露服务
  • consumer:服务消费者,调用 Provider 暴露的服务

项目结构如图所示:
在这里插入图片描述

2. 核心依赖配置

2.1 父项目依赖管理

在父项目的 pom.xml 添加依赖,供consumer和provider模块使用

 <groupId>com.example</groupId><artifactId>dubbo-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><module>consumer</module><module>provider</module><module>dubbo-api</module></modules><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.7.15</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>3.1.0</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-registry-zookeeper --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-zookeeper</artifactId><version>3.1.0</version></dependency></dependencies>

2.2 Provider 与 Consumer 依赖

providerconsumer 模块的 pom.xml 中添加api模块的依赖

    <dependencies><dependency><groupId>com.example</groupId><artifactId>dubbo-api</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>

3. 服务配置与启动

3.1 Provider 配置(服务提供者)

provider/src/main/resources/application.yml 中配置服务端口、Dubbo 应用名及注册中心地址:

server:port: 8081  # Provider 端口,避免与 Consumer 冲突dubbo:application:name: dubbo-demo-provider  # 应用名称,唯一标识registry:address: zookeeper://127.0.0.1:2181  # Zookeeper 注册中心地址

3.2 Consumer 配置(服务消费者)

consumer/src/main/resources/application.yml 中配置:

server:port: 8080  # Consumer 端口,与 Provider 区分dubbo:application:name: dubbo-demo-consumer  # 应用名称,唯一标识registry:address: zookeeper://127.0.0.1:2181  # 同 Provider 的注册中心地址

3.3 启动类配置

  • Provider 启动类:添加 @EnableDubbo 注解,开启 Dubbo 自动配置并扫描服务实现类

    @SpringBootApplication
    @EnableDubbo  // 关键注解:启用 Dubbo 服务注册与发现
    public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);}
    }
    
  • Consumer 启动类:无需额外注解,直接启动即可

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

分别启动 Provider 和 Consumer 后,控制台显示启动成功:
在这里插入图片描述

4. 服务接口定义与实现

4.1 公共 API 接口(api 模块)

api 模块中定义服务接口(服务契约),作为 Provider 和 Consumer 的通信标准:

package com.example.api.service;/*** 公共服务接口*/
public interface HelloService {// 定义一个简单的远程调用方法String sayHello(String name);
}

4.2 Provider 实现服务接口

provider 模块中创建接口实现类,并通过 @DubboService 注解标记为 Dubbo 服务:

package com.example.provider.service.impl;import com.example.api.service.HelloService;
import org.apache.dubbo.config.annotation.DubboService;/*** 服务实现类:需实现 api 模块的接口*/
@DubboService  // 关键注解:声明为 Dubbo 服务提供者
public class HelloServiceImpl implements HelloService {@Overridepublic String sayHello(String name) {return "Hello:" + name + ",我是 Dubbo 服务提供者!";}
}

4.3 Consumer 调用远程服务

consumer 模块中创建控制器,通过 @DubboReference 注解注入远程服务接口并调用:

package com.example.consumer.controller;import com.example.api.service.HelloService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** 消费者控制器:测试远程服务调用*/
@RestController
@RequestMapping("/consumer")
public class ConsumerController {// 关键注解:引用远程 Dubbo 服务@DubboReferenceprivate HelloService helloService;// 提供 HTTP 接口,用于测试远程调用@GetMapping("/testHello")public String testHello() {// 调用远程服务方法return helloService.sayHello("Dubbo 消费者");}
}

5. 验证服务调用

5.1 检查服务注册状态

通过 Zookeeper 客户端验证服务是否注册成功:

  1. 进入 Zookeeper 的 bin 目录,双击 zkCli.cmd 启动客户端

  2. 执行命令

    ls /services
    

    查看注册的服务,可看到

    ls /services/dubbo-demo-provider
    

    已注册:
    在这里插入图片描述

5.2 测试远程调用

启动 Provider 和 Consumer 后,通过浏览器或 Postman 访问 Consumer 的测试接口:

  • 请求地址:http://localhost:8080/consumer/testHello
  • 成功响应结果:Hello:Dubbo 消费者,我是 Dubbo 服务提供者!

调用成功界面如下:
在这里插入图片描述

6. 常见问题与解决方案

  1. 服务注册失败
    • 检查 Zookeeper 是否启动,地址是否正确(默认端口 2181)
    • Provider 启动类是否添加 @EnableDubbo 注解,确保服务被扫描
  2. 消费者找不到服务
    • 检查 Provider 和 Consumer 的 application.ymldubbo.registry.address 是否一致
    • 确认 API 接口的包路径在 Provider 和 Consumer 中完全相同(Dubbo 基于接口全类名匹配服务)
  3. 依赖冲突
    • 统一管理 Dubbo 和 Spring Boot 版本,避免不同模块依赖版本不一致

总结

通过本文的步骤,我们快速搭建了一个基于 Dubbo + Spring Boot + Zookeeper 的分布式服务调用场景,核心流程包括:

  1. 搭建 Zookeeper 注册中心
  2. 创建 Provider、Consumer 和 API 模块并配置依赖
  3. 定义服务接口并实现,通过注解暴露和引用服务
  4. 验证远程服务调用

Dubbo 作为高性能的 RPC 框架,结合 Spring Boot 的自动配置和 Zookeeper 的服务治理能力,可大幅简化分布式服务的开发与维护,适合中小型分布式系统快速落地。

http://www.dtcms.com/a/440579.html

相关文章:

  • 凡科建站的怎么取消手机网站遂宁商城网站建设
  • 国际学校网站建设wordpress内页关键词
  • 微信的网站怎么做很色h做游戏网站
  • 智能网站排名优化wordpress固定链接去掉index.php
  • 需要注册的网站建设网站后台模板 php
  • 网络科技官网南昌seo排名外包
  • 旅游网站的市场需求怎么做介绍零基础怎么做电商
  • STL map、set、multi_map、multi_set 基本概念与用法
  • Linux软件包管理器,软件生态及yum的安装介绍
  • 律师事务所网站建设方案江门网站推广软件
  • 淘宝商家网站建设ps做网站如何
  • 东莞市主营网站建设平台2020国内十大小说网站排名
  • 长春网站开发培训价格如何更改wordpress后台地址
  • 北京网站建设z亿玛酷1专注百度竞价包年推广是怎么回事
  • 惠州住房和城乡建设局网站新闻式软文
  • 网页设计与网站开发的卷子wordpress表格图表插件
  • 网站建设流程范文营销推广活动方案
  • 如何申请网站域名流程正规seo排名公司
  • 攻防世界-Web-file_include
  • 建行网银盾插上以后网页无法打开珠海seo快速排名
  • 修改网站版权iis如何建立网站
  • 佛山移动网站建设公司wordpress内容
  • wordpress云建站深圳建筑设计有限公司
  • 怎样上网站dns解析不了杭州公司注销网站备案
  • 如何自己做代理网站的想法网站改版思路
  • 领优惠券的小网站怎么做广州做地铁的公司网站
  • 网站建设与管理需要哪些证书北京三快在线科技有限公司
  • 简易手机网站开发中国能源建设集团招聘
  • 网站改版合同书公司官网制作教程
  • 有什么网站可以做简历免费ps软件网站