<1>Dubbo快速入门 发布服务、启动服务

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 创建maven项目,服务生产者的接口项目

创建maven项目,服务生产者的接口项目


项目名 vhukze-member-public-dubbo-api


在项目中新建一个包com.vhukze.api.member.service


包中新建一个接口


package com.vhukze.api.member.service;

public interface MemberService {

public String getUser(Long userId);

}

这个项目就这样



再创建一个maven项目表示生产者接口实现项目,并在pom文件中引入上面那个项目

<dependency>
    <groupId>com.vhukze</groupId>
    <artifactId>vhukze-member-public-dubbo-api</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </dependency>

项目名 vhukze-member-dubbo-service-api


项目中新建一个包 com.vhukze.api.member.service.impl


包中新建一个类实现上面那个接口

package com.vhukze.api.member.service.impl;
import com.vhukze.api.member.service.MemberService;
public class MemberServiceImpl implements MemberService {
  public String getUser(Long userId) {
  // TODO Auto-generated method stub
  System.out.println(userId);
  return "getUser OK";
  }
}
在pom文件中引入需要的包
<!-- zookeeper客户端连接工具 -->
  <dependency>
    <groupId>com.101tec</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.10</version>
  </dependency>
  <dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
  </dependency>
  <!-- dubbo底层框架基于netty实现 -->
  <dependency>
    <groupId>org.jboss.netty</groupId>
    <artifactId>netty</artifactId>
    <version>3.2.5.Final</version>
  </dependency>
  <!-- spring框架组件 -->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.9.RELEASE</version>
  </dependency>
  <!-- dubbo包 -->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.5.3</version>
    <exclusions>
    <exclusion>
      <groupId>org.springframework</groupId>
      <artifactId>spring</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.jboss.netty</groupId>
      <artifactId>netty</artifactId>
    </exclusion>
    </exclusions>
  </dependency>
在resources文件下创建一个dubbo-provider.xml文件
内容如下,注意接口和接口的实现bean那里是刚才创建的接口和实现类
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://code.alibabatech.com/schema/dubbo
      http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
  <!--服务名称 定义了提供方应用信息,用于计算依赖关系;在 dubbo-admin 或 dubbo-monitor 会显示这个名字,方便辨识 -->
  <dubbo:application name="member-provider" />
  <!--注册中心的地址 使用 zookeeper 注册中心暴露服务,注意要先开启 zookeeper -->
  <dubbo:registry address="zookeeper://localhost:2181" />
  <!-- 用dubbo协议在20880端口暴露服务 -->
  <dubbo:protocol name="dubbo" port="20880" />
  <!--使用 dubbo 协议实现定义好的 api.PermissionService 接口 -->
  <dubbo:service interface="com.vhukze.api.member.service.MemberService"
  ref="memberService" protocol="dubbo" />
  <!--具体实现该接口的 bean -->
  <bean id="memberService" class="com.vhukze.api.member.service.impl.MemberServiceImpl" />
</beans>


创建一个包com.vhukze.member.app


包下创建一个类为启动类

package com.vhukze.member.app;
import java.io.IOException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AppMember {
  public static void main(String[] args) throws IOException {
  //加载配置文件
  ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("dubbo-provider.xml");
  //启动服务
  app.start();
  System.out.println("会员服务启动成功");
  //保持服务一直在运行
  System.in.read();
  }
}


到这里就配置完了,但是还不能启动


先启动zookeeper服务


在官网下载完zookeeper安装目录中的bin文件夹下有一个zkServer.cmd


双击启动服务


下载一个zookeeper图形客户端 ZooInspector


解压后双击打开build文件夹中的jar文件   如图



打开后点击左上角的绿色连接按钮



弹出下面的框 直接点击OK 连接成功




现在来到启动类,运行


打开ZooInspector,点击上面的刷新按钮



可以看到已经成功的注册到zookeeper注册中心了


这里的服务基本信息节点是服务的接口的路径,采用持久化存储


此节点中的provides节点是服务的访问路径,采用临时存储


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
6月前
|
XML Dubbo Java
【Dubbo3高级特性】「框架与服务」服务的异步调用实践以及开发模式
【Dubbo3高级特性】「框架与服务」服务的异步调用实践以及开发模式
157 0
|
6月前
|
Dubbo Java 应用服务中间件
Dubbo服务暴露机制解密:深入探讨服务提供者的奥秘【九】
Dubbo服务暴露机制解密:深入探讨服务提供者的奥秘【九】
101 0
|
6月前
|
缓存 运维 监控
Dubbo服务降级:保障稳定性的终极指南【六】
Dubbo服务降级:保障稳定性的终极指南【六】
169 0
|
6月前
|
SpringCloudAlibaba Dubbo Java
SpringCloud Alibaba集成Dubbo实现远程服务间调用
SpringCloud Alibaba集成Dubbo实现远程服务间调用
|
1月前
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
81 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
3月前
|
JSON Dubbo Java
【Dubbo协议指南】揭秘高性能服务通信,选择最佳协议的终极攻略!
【8月更文挑战第24天】在分布式服务架构中,Apache Dubbo作为一款高性能的Java RPC框架,支持多种通信协议,包括Dubbo协议、HTTP协议及Hessian协议等。Dubbo协议是默认选择,采用NIO异步通讯,适用于高要求的内部服务通信。HTTP协议通用性强,利于跨语言调用;Hessian协议则在数据传输效率上有优势。选择合适协议需综合考虑性能需求、序列化方式、网络环境及安全性等因素。通过合理配置,可实现服务性能最优化及系统可靠性提升。
59 3
|
3月前
|
缓存 Dubbo Java
Dubbo服务消费者启动与订阅原理
该文章主要介绍了Dubbo服务消费者启动与订阅的原理,包括服务消费者的启动时机、启动过程以及订阅和感知最新提供者信息的方式。
Dubbo服务消费者启动与订阅原理
|
3月前
|
Dubbo 网络协议 Java
深入掌握Dubbo服务提供者发布与注册原理
该文章主要介绍了Dubbo服务提供者发布与注册的原理,包括服务发布的流程、多协议发布、构建Invoker、注册到注册中心等过程。
深入掌握Dubbo服务提供者发布与注册原理
|
3月前
|
负载均衡 Dubbo Java
Dubbo服务Spi机制和原理
该文章主要介绍了Dubbo中的SPI(Service Provider Interface)机制和原理,包括SPI的基本概念、Dubbo中的SPI分类以及SPI机制的实现细节。
Dubbo服务Spi机制和原理
|
3月前
|
C# 开发者 Windows
勇敢迈出第一步:手把手教你如何在WPF开源项目中贡献你的第一行代码,从选择项目到提交PR的全过程解析与实战技巧分享
【8月更文挑战第31天】本文指导您如何在Windows Presentation Foundation(WPF)相关的开源项目中贡献代码。无论您是初学者还是有经验的开发者,参与这类项目都能加深对WPF框架的理解并拓展职业履历。文章推荐了一些适合入门的项目如MvvmLight和MahApps.Metro,并详细介绍了从选择项目、设置开发环境到提交代码的全过程。通过具体示例,如添加按钮点击事件处理程序,帮助您迈出第一步。此外,还强调了提交Pull Request时保持专业沟通的重要性。参与开源不仅能提升技能,还能促进社区交流。
45 0