构建 Zookeeper + Dubbo + Spring Boot 的分布式调用项目(一)
构建 Zookeeper + Dubbo + Spring Boot 的分布式调用项目(一)
一、写在前头
-
在开始构建前,默认你已经能够成功安装并启动 Zookeeper 注册中心,能够成功安装并启动 Dubbo 控制台;
-
在本例中,我的 Zookeeper 注册中心 IP 地址为 192.168.10.41,端口号为 4183,Dubbo 控制台的访问地址为 http://192.168.10.41:8080;
-
为了体现分布式调用,本例中创建了以下两个项目,dubbo-consumer 远程调用 dubbo-provider 提供的服务:
- dubbo-provider Dubbo 服务提供者
- dubbo-consumer Dubbo 服务消费者
- dubbo-consumer 项目的访问路径为 http://192.168.10.41:8012/test/{name} 格式,其中 {name} 为请求参数;
二、使用 Spring Initializr 构建 Dubbo 服务提供者 dubbo-provider 项目
1. 登录 http://start.spring.io/ 填写如下信息后点击 “Generate Project” 按钮,得到 dubbo-provider 项目骨架
初始 dubbo-provider 项目结构如下:
2. 为 dubbo-provider 项目添加依赖:
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>dubbo</artifactId>
- <version>2.4.10</version>
- <exclusions>
- <exclusion>
- <artifactId>spring</artifactId>
- <groupId>org.springframework</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.zookeeper</groupId>
- <artifactId>zookeeper</artifactId>
- <version>3.4.6</version>
- <exclusions>
- <exclusion>
- <artifactId>slf4j-log4j12</artifactId>
- <groupId>org.slf4j</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.github.sgroschupf</groupId>
- <artifactId>zkclient</artifactId>
- <version>0.1</version>
- </dependency>
- package com.shawearn.dubbo.remote;
- /**
- * 测试远程调用的接口;
- * <p/>
- * Created by Shawearn on 2017/2/14.
- */
- public interface TestService {
- String sayHello(String name);
- }
- package com.shawearn.dubbo.provider.impl;
- import com.shawearn.dubbo.remote.TestService;
- /**
- * Created by Shawearn on 2017/2/14.
- */
- public class TestServiceImpl implements TestService {
- @Override
- public String sayHello(String name) {
- return "Hello " + name + "!";
- }
- }
5. 在 resource/ 下添加 providers.xml 配置文件,用于向 zookeeper 注册中心注册服务
- <?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">
- <!-- 配置可参考 http://dubbo.io/User+Guide-zh.htm -->
- <!-- 服务提供方应用名,用于计算依赖关系 -->
- <dubbo:application name="dubbo-provider" owner="dubbo-provider"/>
- <!-- 定义 zookeeper 注册中心地址及协议 -->
- <dubbo:registry protocol="zookeeper" address="192.168.10.41:4183" client="zkclient"/>
- <!-- 定义 Dubbo 协议名称及使用的端口,dubbo 协议缺省端口为 20880,如果配置为 -1 或者没有配置 port,则会分配一个没有被占用的端口 -->
- <dubbo:protocol name="dubbo" port="-1"/>
- <!-- 声明需要暴露的服务接口 -->
- <dubbo:service interface="com.shawearn.dubbo.remote.TestService" ref="testService" timeout="10000"/>
- <!-- 和本地 bean 一样实现服务 -->
- <bean id="testService" class="com.shawearn.dubbo.provider.impl.TestServiceImpl" />
- </beans>
6. DubboProviderApplication 中使用 providers.xml 配置文件;
- package com.shawearn.dubbo.provider;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.context.annotation.ImportResource;
- @SpringBootApplication
- @ImportResource(value = {"classpath:providers.xml"}) // 使用 providers.xml 配置;
- public class DubboProviderApplication {
- public static void main(String[] args) {
- SpringApplication.run(DubboProviderApplication.class, args);
- }
- }
- server.port=8011
9. 启动 dubbo-provide 项目,可以通过 Dubbo 服务控制台看到服务已经被注册到 zookeeper:
本文示例项目代码可从此地址下载:下载地址
构建 Zookeeper + Dubbo + Spring Boot 的分布式调用项目(二)
文章来源 http://blog.****.net/shawearn1027
相关推荐
- Spring Boot 整合dubbo与zookeeper实现不同项目之间数据通过服务的传递
- 学习笔记(13):Java全程实战~spring boot2.0技术栈与分布式中间件实战系列一-企业场景!基于Maven+Spring Boot2.0构建项目(一)...
- Dubbo+Zookeeper+Spring 分布式服务的搭建(一)
- 使用Spring Boot+Dubbo+Zookeeper搭建第一个分布式项目(详细介绍如何搭建分布式项目,下篇)
- 使用Spring Boot+Dubbo+Zookeeper搭建第一个分布式项目(详细介绍如何搭建分布式项目,上篇)
- 构建 Zookeeper + Dubbo + Spring Boot 的分布式调用项目(二)
- 构建 Zookeeper + Dubbo + Spring Boot 的分布式调用项目
- 构建 Zookeeper + Dubbo + Spring Boot 的分布式调用项目(一)
- Spring Boot 基础系列教程 | 第一篇:基础项目构建,引入web模块,完成一个简单的RESTful API
- spring Boot环境下dubbo+zookeeper的一个基础讲解与示例
- Shell 编程核心技术《四》
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.4.5 版本管理