dubbo简单使用(二)

SpringBoot+Dubbo+Zookeeper的简单整合 之前写过dubbo的简单项目,用的是Spring+Dubbo,约摸看了下博客的创建时间,然后默默捂了下脸,已经是一年多前的事了。 由于Dubbo最近在疯狂地更新,相信死灰复燃还是有小宇宙可以燃烧的。 这次带来的是SpringBoot+Dubbo+Zookeeper的简单整合,客官们可要赏脸看一看。 首先看下项目的结构,如下图所示(发现现在博客强制加了水印,这水印真的是人类交流的最大阻碍了):... 阅读详情

这里接着前文,记录服务的生产和消费。

一、生产者

新建maven项目(笔者使用的是idea),添加依赖如下:

<dependencies>
    <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>

  </dependencies>

编写测试接口和实现:

package com.gcc.service;
/**
 * 发布接口
 * @author gcc
 */
public interface DemoProviderService {
	public String sayHello(String name);
}
package com.gcc.service.impl;
import com.gcc.service.DemoProviderService;
/**
 * 接口实现
 * @author gcc
 */
public class DemoProviderServiceImpl implements DemoProviderService{
	public String sayHello(String name) {
		return "this is server 001";
	}
}

添加dubbo配置文件:

<?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注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>  
    <!-- 使用dubbo协议,在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880"/>    
    <!-- service实现类作为本地的一个bean -->
    <bean id="demoProviderService" class="com.gcc.service.impl.DemoProviderServiceImpl"/>    
    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.gcc.service.DemoProviderService" ref="demoProviderService"/>

</beans>

最后做发布(生产)的测试:

package com.gcc.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
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();
		} // press any key to exit
        context.close();
	}
}

显示如下表示发布成功:


二、消费者

新建maven项目,添加依赖如下:

<dependencies>
    <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>
  </dependencies>

添加接口如下:

package com.gcc.service;
/**
 * 需要使用的接口
 * @author gcc
 */
public interface DemoProviderService {
	public String sayHello(String name);
}

添加dubbo配置如下:

<?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-consumer"/>
    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    <!-- 生成远程服务代理,可以与本地bean一样使用  check属性,启动时候是否检查 一般设置成false 启动时候不检查 -->
    <dubbo:reference id="demoProviderService" check="false" interface="com.gcc.service.DemoProviderService"/>

</beans>

测试如下:

package com.gcc.test;
import java.io.IOException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.gcc.service.DemoProviderService;
public class ConsumerTest {
	public static void main(String[] args) {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"dubbo-demo-consumer.xml"});
        context.start();
        DemoProviderService demoProviderService=(DemoProviderService) context.getBean("demoProviderService");
        String result=demoProviderService.sayHello("你好");
        System.out.println("远程调用结果:"+result);
        try {
			System.in.read();//一直连接
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        context.close();
	}
}

测试输入如下:


这样就将service分离了出来,只暴露接口(实现由生产者封装完成),使用者只要面向接口去编程即可。

三、管理界面:

对生产者(服务提供者)和消费者的管理,阿里也提供了用户界面,启动如下:

1,下载dubbo发布包,地址:https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.0

2,寻找路径dubbo-dubbo-2.6.0\下的dubbo-admin项目,将他打成war包(此步骤可能较麻烦)

3,war包放置到tomcat/webapp下运行

或者

1,使用笔者的war包,路径:https://github.com/mengguagua/dubbo

2,新下载一个tomcat,删除webapps\ROOT下所有文件,解压war包到ROOT目录

3,启动tomcat

4,在浏览器输入localhost:8080即可,默认用户名和密码都是root

注:启动tomcat之前,先把 zookeeper启动了,否则启动tomcat加载dubbo-admin会报错,因为默认就检查zookeeper服务,检测不到 就一直报错;

界面如下:


Dubbo 简单入门 Dubbo 的核心原理包括通过注册中心实现服务注册与发现、采用高效的通信协议、提供多种负载均衡策略和容错机制,并且支持通过 SPI 机制进行扩展。Dubbo 为构建高性能、可扩展的分布式服务系统提供了强有力的支持。 阅读详情

相关推荐

避坑指南:Quectel EC200A-CN在OpenWrt或嵌入式Linux下的RNDIS/ECM网络配置全解析

本文详细解析了Quectel EC200A-CN模块在OpenWrt或嵌入式Linux下的RNDIS/ECM网络配置,包括模式选择、内核配置、动态切换AT指令、网络接口生成与排错、路由与防火墙设置、性能调优及特殊场景应对策略,帮助开发者避免常见配置陷阱,提升网络稳定性和效率。

weixin_42531588的博客 287

最简单的Dubbo案例之二:dubbo实现服务提供者+消费者,SpringBoot + dubbo 无zookeeper方式点对点直连

前言 本文对接上一篇文章《最简单的Dubbo案例之一:dubbo实现服务提供者+消费者,无zookeeper方式点对点直连》,这是第二篇。 本文

cuipy的博客 966

三角洲行动交易行自动化脚本

DFMarketBot - 三角洲行动自动交易助手 DFMarketBot是一款专为三角洲行动游戏设计的交易行自动化工具,通过OCR识别和鼠标模拟实现自动补卡、补子弹功能。项目采用Python开发,支持Windows平台,主要功能包括: 自动检测并购买指定物品(房卡/子弹) 价格监控与智能购买(低于设定价格自动下单) 自定义购买数量与次数限制 支持窗口/无窗口两种游戏模式 使用前需安装Tesseract OCR引擎并配置游戏为1920*1080分辨率。通过JSON文件可灵活配置监控物品清单、理想价格和购买策

愤怒的阿木木的博客 3万+

简单的Dubbo(2.6.2)搭建

未使用Dubbo搭建前,模块中各部分调用 在服务提供者和服务消费者中去除掉bean和orderservice、userservice两个接口。抽取出来放到gmall-interface模块中 服务提供者 1、在服务提供者的pom.xml中导入相关依赖Dubbo、zookeeper <dependencies> <dependency> <groupId>org.example</gro...

weixin_44773752的博客 449

An AI compute of cities based on Distributed-Platform and Distributed-Databases(天池地铁流量预测)

摘要 在日益城市化的今天,城市居民出行问题逐渐成为衡量一个城市现代化能力的标准;城市出行方式多元化的同时,也对各交通系统的调度运营能力提出了更高的要求:如何提高运营效率,如何运用有限的安保力量进行有效的安检部署等问题一直在阻挠着城市交通的发展。 An AI compute of cities based on Distributed-Platform and Distributed-Databas...

Clearlove灬Star 5163

手把手教你排查Abaqus中的Johnson-Cook损伤参数:避免因d3正负号导致的仿真失败

本文详细解析了Abaqus中Johnson-Cook损伤参数d3正负号设置的关键问题,帮助用户避免因参数错误导致的仿真失败和Excessive distortion报错。通过对比不同文献定义、提供实操指南和典型错误排查流程,有效提升非线性分析的准确性和效率。

weixin_33960567的博客 354

Docker dubbo 服务注册

Dubbo 服务注册 问题 在容器部署应用和常规部署应用混合使用一套 zk 时,将出现常规部署应用调用远程容器 dubbo 服务失败。 原因 在容器中部署应用时,应用中的 dubbo 服务,获取容器 hostname 的 IP 地址和配置文件中的端口号向 zk 中注册。这就导致了,容器部署应用和常规部署应用混合共用一套 zk 时,将出现常规应用因为网络分段问题,无法路由至容

大白菜 6397

海康威视iVMS-4200在银河麒麟系统部署全攻略与疑难排解

在信创国产化进程中,软件兼容性是关键挑战之一。以安防监控领域广泛使用的海康威视iVMS-4200客户端为例,其从Windows环境迁移到银河麒麟等国产操作系统时,面临架构适配、依赖库匹配等核心兼容性问题。这涉及到跨平台软件部署的通用原理:不同CPU架构(如ARM的飞腾、x86的兆芯)和操作系统底层API的差异,要求软件必须进行针对性编译和优化。解决这类问题的技术价值在于保障专业软件在国产化环境中的稳定运行,是信创产业落地的重要环节。具体到应用场景,如在基于银河麒麟V10的安防监控项目中,通过获取对应架构的.

weixin_33423874的博客 1443

Dubbo的简单使用

一、架构演进 单体架构 垂直应用架构:根据业务边界拆分,每个功能称为一个服务 公共的业务service,导致很多部分的冗余 分布式应用架构:把公共服务器的service提取成一个服务 网络通讯的问题,使用RPC框架 服务集群的负载均衡处理 服务如何被发现 服务如何被治理 服务之间如何高效的通信 微服务架构,主要解决以下几个问题 服务的注册和发现 服务的搞笑通信 服务的治理:服务权重、负载均衡、服务熔断、限流等等 二、注册中心 1、概述 主流的注册中心:

liming0025的专栏 7376

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

灵境引路人 3227

樽海鞘优化算法详解:原理、实现与应用

本文详细介绍了樽海鞘优化算法(SSA)的原理、实现与应用。该算法模拟樽海鞘链式群体行为,将优化问题解空间映射为群体移动空间,通过领导者引导和追随者跟随的协作机制寻找最优解。文章从生物特性、数学模型到Python代码实现进行了系统阐述,包括种群初始化、位置更新公式和收敛因子等核心要素,并展示了算法在函数优化等领域的应用潜力。该算法具有结构简单、参数少、实现容易等特点,在多种优化问题上表现良好。

qq_42212808的博客 646

dubbo-admin安装以及dubbo-admin简单使用

一、dubbo-admin安装 1、环境准备 dubbo-admin 是一个前后端分离的项目。前端使用vue,后端使用springboot,安装 dubbo-admin 其实就是部署该项目。我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk,maven,nodejs 安装node**(如果当前机器已经安装请忽略)** 因为前端工程是用vue开发的,所以需要安装node.js,node.js中自带了npm,后面我们会通过npm启动 下载地址 https://nodejs.org/en/

听雨少年的博客 1万+

【Bug已解决】openclaw max turns reached / Tool calls exceeded limit — OpenClaw 最大轮次超限解决方案

OpenClaw 在执行过程中达到最大轮次限制任务未完成,本质是 --max-turns 设置过小或任务过于复杂。文中给出增加轮次、--continue 继续、分步执行等完整方案。

一键难忘的博客 5505

dubbo学习过程、使用经验分享及实现原理简单介绍

一、前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下。 二、什么是dubbo Dubbo是阿里巴巴提供的开源的SOA服务化治理的技术框架,据说只是剖出来的一部分开源的,但一些基本的需求已经可以满足的,而且扩展性也非常好(至今没领悟到扩展性怎么做到的)

周绍禹-whuiss 8万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

简单的使用dubbo

环境:W7 + jdk1.8+myeclipse+tomcat7+maven3+zookeeper-3.4.6为什么要用dubbo?当我们的网站规模达到了一定的量级的时候,普通的MVC框架已经不能满足我们的需求,于是分布式的服务框架和流动式的架构就凸显出来了。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框

Tate的博客 1167

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SpringBoot中Dubbo的简单使用方式

SpringBoot集成Dubbo

itsniu的博客 1743

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Dubbo学习记录(二)Dubbo实现RPC简单实例

前言  本文主要接着 上篇 接着Dubbo学习记录(一)zookeeper、dubbo-admin管理平台安装部署来基于springboot用dubbo写了一个简单的实例。本文完整源码已上传至github:https://github.com/leon2016/dubbo-parent

doctorvian的博客 3291

dubbo学习笔记-初步认识dubbo及dubbo的简单使用

dubbo学习笔记 初步认识dubbo dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 dubbo就是在这种背景中产生的。 下面有几大文...

931

dubbo基础(二)——dubbo简单demo

get start 在上一篇中介绍了dubbo诞生的背景和框架的特性:dubbo概念和基本概念,这里就来一个dubbo的简单使用小体验。 dubbo注册中心安装 dubbo中的官方文档的快速启动使用的是multicast广播注册中心暴露服务地址,这里选择的是使用zk作为注册中心,因为zk是很多公司作为dubbo注册中心,并且zk也是dubbo官方文档中推荐使用的注册中心。 本次是使用的mac上安装...

zlj1217的博客 499

dubbo-admin 的安装和简单使用

dubbo-admin安装 文章目录dubbo-admin安装dubbo-admin简单使用 1、node下载和安装 dubbo-admin 是一个前后端分离的项目。前端使用vue,后端使用springboot,安装 dubbo-admin 其实就是部署该项目。我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk,maven,nodejs 安装node 因为前端工程是用vue开发的,所以需要安装node.js,node.js中自带了npm,后面我们会通过npm启动 下载地址 https://

立志成为一个前端、后端、测试全方位发展的程序员 5477

dubbo--使用IDEA搭建简单的dubbo项目

dubbo--使用IDEA搭建简单的dubbo项目第一步,创建一个dubbotest名字的maven项目第二步,分别创建名字为dubbo_api,produce,consumer的module子项目第三步,分别修改pom文件第四步,分别在dubbo_api,produce,consumer的module子项目中创建java根目录和resources库第五步,在dubbo_api中创建一个接口,并在...

BIackMamba的博客 5066

Dubbo--简单介绍和使用(Simple)

内容简介 此篇文章是介绍Dubbo以及它的简单使用,会列举运用spring boot + dubbo搭建项目运用dubbo的步骤,主要是介绍一下dubbo的作用以及简单的配置,若有兴趣的朋友可以继续关注后续的dubbo系列文章,也可以参考官方文档进行学习.个人的一点心得和想法,有错误还请指正。 Dubbo介绍1.什么是Dubbo 一个分布式服务治理框架 2.为什么用Dubbo官方介绍 当

Little__Dragon的博客 1527

初识Dubbo及简单案例使用

所有博客文件目录索引:博客目录索引(持续更新)dubbo-github地址Dubbo架构图和Dubbo执行流程创建一个Maven项目:引入相关依赖 : : : : : 测试:首先启动provider中的application首先进行注册,接着再执行client进行调用获取ip地址来进行RPC调用provider先启动:此时我们来观察zookeeper:①可以看到上图启动图当红色框以及依据dubbo service started执行时对应zookeeper中出现了结点,在/dubbo下有两个结点一个是con

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 652

Dubbo学习笔记(二)——dubbo-admin的搭建&使用

这部分的实现。

2301_81298401的博客 7219
上一篇: dubbo简单使用(一)
下一篇: dubbo简单使用(三)
gcc_front
博客等级 码龄9年 16粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值