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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 创建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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
19天前
|
XML Dubbo Java
【Dubbo3高级特性】「框架与服务」服务的异步调用实践以及开发模式
【Dubbo3高级特性】「框架与服务」服务的异步调用实践以及开发模式
42 0
|
19天前
|
Dubbo Java 应用服务中间件
Dubbo服务暴露机制解密:深入探讨服务提供者的奥秘【九】
Dubbo服务暴露机制解密:深入探讨服务提供者的奥秘【九】
28 0
|
19天前
|
缓存 运维 监控
Dubbo服务降级:保障稳定性的终极指南【六】
Dubbo服务降级:保障稳定性的终极指南【六】
49 0
|
19天前
|
Dubbo Java 应用服务中间件
Spring Boot Dubbo 构建分布式服务
Spring Boot Dubbo 构建分布式服务
56 0
|
19天前
|
存储 负载均衡 监控
深入理解Dubbo-6.服务消费源码分析(下)
深入理解Dubbo-6.服务消费源码分析
40 0
|
19天前
|
SpringCloudAlibaba Dubbo Java
SpringCloud Alibaba集成Dubbo实现远程服务间调用
SpringCloud Alibaba集成Dubbo实现远程服务间调用
|
19天前
|
监控 负载均衡 Dubbo
Dubbo快速入门
Dubbo快速入门
|
19天前
|
XML Dubbo Java
【Dubbo3高级特性】「框架与服务」 Nacos作为注册中心-服务分组及服务分组聚合实现
【Dubbo3高级特性】「框架与服务」 Nacos作为注册中心-服务分组及服务分组聚合实现
67 0
|
19天前
|
Cloud Native Dubbo 应用服务中间件
【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-序章)
【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-序章)
72 0
|
19天前
|
Java fastjson 数据安全/隐私保护
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
54 0