Dubbo初步搭建-01

【Dubbo系列】环境搭建-01 现在(2024年12月1日15点50分)想做一门课程,不知道从什么入手;偶然发现dubbo是自己没有了解过的,那么就从这里开始吧! 阅读详情

建立第一个dubbo服务接口

*准备工作:
①首先,我们先从zookeeper官网http://mirrors.hust.edu.cn/apache/zookeeper下载zookeeper-3.4.11.tar压缩包;
②然后,再在dubbo官网http://dubbo.io/下载dubbo-dubbo-2.6.0压缩包,解压即可。

下面开始建立接口:
①新建一个简单的maven项目dubbo-demo-provider,在pom.xml下添入依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.6.0</version>
</dependency>
<dependency>
    <groupId>com.101tec</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.10</version>
</dependency>
    <dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.46</version>
</dependency>
    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>
<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.0.35.Final</version>
</dependency>

②新建一个接口DemoProviderService为服务提供者:

package com.java.service;

/**
 * 服务提供者接口
 * @author zxy
 *
 */
public interface DemoProviderService {

    public String sayHello(String name);

}

再新建一个实现类DemoProviderServiceImpl实现该接口

package com.java.service.impl;

import com.java.service.DemoProviderService;

/**
 * 服务提供者接口实现类
 * @author zxy
 *
 */
public class DemoProviderServiceImpl implements DemoProviderService{

    public String sayHello(String name) {
        // TODO Auto-generated method stub
        return "服务001"+name;
    }

}

③将dubbo-dubbo-2.6.0\dubbo-demo\dubbo-demo-provider\src\main\resources\META-INF\spring路径下的dubbo-demo-provider.xml复制到项目resource路径下,可参考我的写法:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 提供方应用名称,用于计算依赖关系 -->
    <dubbo:application name="demo-provider"/>

    <!-- 使用zookeeper注册中心暴露服务地址 本地为127.0.0.1 默认为2181端口 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>

    <!-- 使用dubbo协议,在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880"/>

    <!-- service实现类作为本地的一个bean -->
    <bean id="demoProviderService" class="com.java.service.impl.DemoProviderServiceImpl"/>

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.java.service.DemoProviderService" ref="demoProviderService"/>

</beans>

④开启zookeeper服务:在zookeeper3.4.11\bin路径下的zkServer.bat脚本,不能直接开启,因为其需要zookeeper-3.4.11\conf路径下zoo.cfg配置文件的支持,我们可将该路径下默认的zoo_sample.cfg文件改成zoo.cfg,脚本zkServer.bat即可正常启动,黑窗口没有闪退即为启动成功。
⑤开启dubbo-admin管理控制器:将dubbo-dubbo-2.6.0路径下的dubbo-admin文件夹打包成war包,改名为ROOT后,将其复制到本地tomcat下的webapps中,然后在
tomcat\bin路径下双击脚本startup.bat启动tomcat。(请一定保证zookeeper服务先于tomcat开启,不然此项目会报错)
⑥tomcat运行成功后,访问http://localhost:8080/,浏览器会提示输入用户名密码,默认的用户名和密码均为root,出现下图表示管理控制器运行成功
这里写图片描述
⑦暴露自定义接口:在项目test路径下新建一个测试ProviderTest:

import java.io.IOException;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ProviderTest {

    public static void main(String[] args) {
        ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"dubbo-demo-provider.xml"});
        context.start();
        System.out.println("服务提供者向zookeeper注册中心注册服务成功(端口:20880)!");
        try {
            System.in.read();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        context.close();
    }

}

运行程序,eclipse控制台可以看到:
这里写图片描述
同时zookeeper控制台和tomcat
控制台均发生变化:
这里写图片描述
这里写图片描述
最后来看管理控制器,可以看到dubbo服务多了一条信息,为自定义暴露的接口:
这里写图片描述

*自此,一个简单的dubbo服务接口发布完成了。

搭建 Dubbo 服务控制台 本文介绍了 Dubbo Admin 控制台的部署流程及常见问题解决方案。 阅读详情

相关推荐

Dubbo实战案例01【需求分析及项目创建】

1.1 需求完成对用户表的CRUD操作。1.2 项目架构方式SOA面向服务架构1.3 技术选型二、创建表usersuseridusernameuserageuserid三、项目设计四、创建项目1.创建dubbo-parent。

2401_87254533的博客 1057

微服务框架之Dubbo(SpringBoot+Dubbo+Zookeeper)

SpringBoot+Dubbo+Zookeeper一、名词解释1、RPC2、SOA二、dubbo1、概念2、dubbo连接方式3、Dubbo 架构流程图三、Zookeeper1、介绍:2、Zookeeper 在Linux系统的安装3、服务启动四、Demo1、搭建环境ZooKeeper:dubbo-admin:2、搭建项目1、父项目 dubbo-demo-parent1、项目结构2、pom文件2、服务接口 demo-service1、项目结构2、pom文件3、实体类User4、服务UserService5、

qq_33451695的博客 388

Dubbo学习01-安装Dubbo Admin中遇到的坑

1、引言 Dubbo是阿里公司开源给Apache的一款Java的RPC框架,最近因为疫情待在家里,所以准备来学习一下,在Dubbo安装之前,一般推荐安装Dubbo自家的一个监控中心Dubbo Admin,就是这么个简单的安装,搞了我整整差不多三个小时,当中也遇到很多奇奇怪怪的问题,所以今天写下这篇博客记录一下。 顺带说一下,本文的安装环境是腾讯云的基础款服务器,使用的系统是centos7...

yirui1995的博客 1743

第二:Dubbo接口测试-Jmeter插件实现测试

【代码】第二:Dubbo接口测试-Jmeter插件实现测试。

欢迎来到本博客! 857

Linux内核同步原语之队列自旋锁(Queued Spin Lock)深度解析

本文深度解析了Linux内核中的队列自旋锁(Queued Spin Lock)机制。通过对比传统自旋锁的瓶颈,详细阐述了队列自旋锁如何利用紧凑的4字节结构、每CPU节点数组和pending位优化,有效解决多核(SMP)系统中的缓存行乒乓和惊群效应,实现公平、高效的锁等待队列,从而显著提升内核在高并发场景下的可扩展性与性能。

weixin_29205061的博客 303

Linux文件操作四剑客

① /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 yyyy-MM-dd / yy-MM-dd 格式。⑥“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$” //正浮点数。

wuds_158的博客 1610

Dubbo源码(九) - 服务调用过程

Dubbo 服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。

王谷雨的博客 1020

AI自主网络攻击技术深度解析:从LLM驱动到防御体系升级

网络安全领域正经历从自动化脚本到智能自主攻击的范式转变。其核心原理在于将大型语言模型(LLM)与自动化渗透测试框架深度融合,构建具备环境感知、决策规划和自适应能力的攻击系统。这种技术的核心价值在于实现了从预设步骤到目标驱动的质变,能自主完成信息收集、漏洞利用、横向移动等复杂攻击链。在应用场景上,它不仅能极大提升高级持续性威胁(APT)的攻击效率,也对渗透测试和红队演练技术提出了新的要求。面对此类由AI驱动的自主攻击,传统的基于签名的防御体系已显不足,必须转向以行为分析和零信任为核心的整体纵深防御。本次曝光的

weixin_34254464的博客 605

Dubbo 3 搞清楚 接口级地址发现 和 应用级地址发现

Dubbo 3 相较于 Dubbo 2 ,由接口级别服务注册发现转变为应用级别,这两种方式不可互相兼容。 这种转变带来的好处是,极大的释放了服务注册中心的存储压力,比如原来的一个服务如果提供了 100 个 dubbo 接口,部署 100 台机器,那么注册中心就需要存储 10000 条数据,而改为应用级别就只需要 100 个。 所以对于 Dubbo 3 来说 应用级的服务注册与发现,最大的好处就是 节省内存,和减轻地址推送压力。 举个例子,假设我们有 2000 台

dying 搁浅 4413

DDoS攻击--Syn_Ack/Ack_Flood等攻击防护详解(TCP)

前言 Syn_Ack/Ack_Flood攻击属于TCP攻击,在了解Syn_Ack/Ack_Flood攻击之前,可以先看看TCP攻击详解。 Syn_Ack Flood 攻击: syn_ack报文出现在连接建立的第2个报文,用来确认第一次握手的syn包。 当服务器收到syn_ack报文后会在系统里查询是否属于3次握手的范畴。如果属于则回复ack,并将连接设为连接状态。若没有查到相关信息,则回复...

一只IT小小鸟 1万+

地震勘探中的频谱分析:从基础到应用

本文深入探讨了地震勘探中的频谱分析技术,从基础原理到实际应用。通过傅里叶变换等工具,频谱分析能有效识别不同地震波的频率特征,指导数据采集和处理。文章结合油田勘探案例,展示了如何利用振幅谱和相位谱提升信噪比,并介绍了智能滤波等前沿技术在地震数据处理中的应用。

weixin_42557830的博客 406

dubbo 接口初探

jemter 调用dubbo 接口

qq_46590109的博客 417

一步到位解决Docker拉取镜像失败的问题!超详细的Docker代理设置教程!(使用代理解决群晖Docker获取注册表失败的问题)

一步到位解决Docker拉取镜像失败的问题!超详细的Docker代理设置教程!(使用代理解决群晖Docker获取注册表失败的问题)

XiaoqiangClub的博客 1万+

Dubbo01【概述】

Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 官网地址:http://dubbo.apache.org 架构图 节点角色说明 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服...

波波烤鸭的博客 2657

中国工商银行企业架构建设实践最全总结

中国工商银行参考IBM持续价值创新方法并吸收TOGAF等主流企业架构的框架理念,结合业务实际情况形成工行自己的企业架构方法论并实践,为数字化转型提供支撑。本案例通过介绍中国工商银行企业架构之业务架构设计方法,为其他银行企业架构建设提供参考。 企业架构是数字化转型的抓手,可以帮助企业规划、管理和实施数字化解决方案,以实现业务目标并适应不断变化的市场条件。中国工商银行通过战略目标指导业务架构的规划和设计,业务架构建模后指导IT架构建模。

银行信息系统应用架构详解 2730

【RT-DETR多模态融合改进】在前期、中期、中后期、后期多模态融合中添加P6大目标检测层,完整步骤及代码

主题: RT-DETR的多模态融合改进中增加P6大目标检测层方式: 分别在前期融合、中期融合、中-后期融合、后期融合中增加P6多模态融合检测层。内容: 包含融合方式详解以及完整配置步骤,开箱即用,一键运行。原始模型结构如下: 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检测头对应的经过了更多的下采样

Limiiiing的博客 392

dubbo01 - 一文速通dubbo基础

dubbo01 - 一文速通dubbo基础

qq_43350524的博客 1129

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

dubbo使用_01:环境搭建

dubbo搭建

qq_15058833的博客 505

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SpringBoot整合dubbo(注解配置dubbo)

源码 GitHub:https://github.com/291685399/springboot-learning/tree/master/springboot-dubbo01 准备 1、在服务器或者本地搭建好zookeeper,具体可参考文章:https://blog.youkuaiyun.com/qq_35620501/article/details/87519306 2、在服务器或者本地搭建好dubb...

断橋殘雪的博客 2万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

01.Dubbo快速入门

一、说明 第一篇文章,先将一个最简单的例子运行起来,让大家对dubbo有一个直观的感受。 二、环境准备 1、下载并安装zookeeper dubbo需要一个注册中心,dubbo的服务提供方和消费方都需要在注册中心注册。dubbo的注册中心可以选择redis、zookeeper等等,本示例使用zookeeper作为dubbo的注册中心。 实验室环境安装单机zookeeper即可。 zoo...

mazhongjia的博客 302

基于Zookeeper + Dubbo 搭建的项目

基于Zookeeper + Dubbo 搭建的项目 项目简介 此项目为自己学习Dubbo+Zookeeper,搭建的第一个项目,主要架构就是一个父项目、三个子Module:dubbo_provider、 dubbo_consumer 和 dubbo_api,三个子Module分别继承父项目。 Dubbo的远程访问是基于接口的。Consumer和Provider使用同一个接口,可以实现远程访问。 Provider给接口写实现,提供服务。 Consumer使用接口,并通过Dubbo创建的动态代理对象,远程访问

qq_44918331的博客 1299

Dubbo源码阅读01(上)

1、前言 源码地址:https://github.com/apache/incubator-dubbo 官方文档:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html 源码版本:2.7.1 本文将完成dubbo源码环境搭建及dubbo案例测试,通过dubbo提供的测试案例来试图深入源码一探究竟。 2、正文 将源码导入idea,...

js_tengzi的博客 2347

【Dubbo01】消息队列与微服务之Dubbo介绍

Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实 现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。

运维&陈同学的博客 1765

Dubbo——Day01

Dubbo 1. 分布式系统 就是多个独立计算机的集合,这些计算机对于用户来说就像是单个相关系统。 个人理解:传统垂直系统就像是独居,而分布式就是相当于是合居。独居的时候自己买菜、洗菜、做饭。合居的时候就可以对象洗菜的时候自己做菜。大家各干各的,节省了时间还轻松了一些,互相协作为了一个共同的目标——吃饭。希望早日大家都有对象。 发展演变: 2. 什么是Dubbo Apache Dubbo 是一款高性能、轻量级的开源Java RPC 框架,但是是由阿里巴巴开发的。提供了三大核心功能: 面向接口的远程方法调

风间琉璃の博客 270

第二章 Dubbo系统框架搭建

文章目录前言一、第一个Dubbo程序(直连式)1.创建业务接口工程00-api2.创建提供者(自建spring容器)01-provider3.创建提供者(Main启动)01-provider24.创建消费者01-consumer二、Zookeeper注册中心1.创建提供者02-provider-zk2.创建消费者02-consumer-zk3.添加日志文件三、将Dubbo应用到web工程1.创建提供者03-provider-web2.创建消费者03-provider-web3.部署运行四、Dubbo管理控制

gqs2019的博客 378

dubbo-day01-Dubbo入门案例

Dubbo入门案例 1、Spring和SpringMVC整合 1.0、搭建案例环境 创建dubbo-pro空项目,添加dubbo-service和dubbo-web的maven模块; dubbo-service 完整pom.xml文件,注意zookeeper包的版本依赖关系 完整applicationContext.xml文件,添加log4j日志文件 创建UserService接口,添加sayHello方法;提供实现类 install打包供dubbo-web调用 dubbo-

hello_world2019g的博客 250
上一篇: Java Mail解决标题乱码问题
下一篇: Dubbo消费服务-02
IceCaptain
博客等级 码龄10年 12粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值