环境步骤:

  1. 安装Zookeepr启动
  2. 创建Maven项目搭建生产者和消费者
  3. 安装DubboAdmin平台,实现监控

Dubbo注册中心采用的是Zookeeper。为什么采用Zookeeper呢?

Zookeeper是一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中心。

Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注册中心能自动删除提供者信息,当提供者重启时,能自动恢复注册数据,以及订阅请求

创建Maven工程

项目结构:

主要分三大模块:

toov5-dubbo-api : 存放公共接口;

toov5-dubbo-consumer : 调用远程服务;

toov5-dubbo-provider : 提供远程服务

创建maven  toov5-member-api

然后创建子模块   toov5-member-service-impl

1、创建maven 父pom文件项目

2、创建两个maven model 一个是a; toov5-member-dubbo-service-api (依赖公用接口 去实现之)

一个是b: toov5-member-public-dubbo-api (公用接口)

a的pom 要依赖 b

  1. <dependency>
  2. <groupId>com.toov5</groupId>
  3. <artifactId>toov5-member-api</artifactId>
  4. <version>0.0.1-SNAPSHOT</version>
  5. </dependency>

依赖了就可以去实现了哦

生产者:

pom

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <parent>
  4. <groupId>com.toov5</groupId>
  5. <artifactId>toov5-parent</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. </parent>
  8. <artifactId>toov5-member-dubbo-service-api</artifactId>
  9. <dependencies>
  10. <dependency>
  11. <groupId>com.toov5</groupId>
  12. <artifactId>toov5-member-api</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. </dependency>
  15.  
  16. <dependency>
  17. <groupId>com.101tec</groupId>
  18. <artifactId>zkclient</artifactId>
  19. <version>0.10</version>
  20. </dependency>
  21. <dependency>
  22. <groupId>commons-logging</groupId>
  23. <artifactId>commons-logging</artifactId>
  24. <version>1.2</version>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.jboss.netty</groupId>
  28. <artifactId>netty</artifactId>
  29. <version>3.2.5.Final</version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework</groupId>
  33. <artifactId>spring-context</artifactId>
  34. <version>4.3.9.RELEASE</version>
  35. </dependency>
  36. <dependency>
  37. <groupId>com.alibaba</groupId>
  38. <artifactId>dubbo</artifactId>
  39. <version>2.5.3</version>
  40. <exclusions>
  41. <exclusion>
  42. <groupId>org.springframework</groupId>
  43. <artifactId>spring</artifactId>
  44. </exclusion>
  45. <exclusion>
  46. <groupId>org.jboss.netty</groupId>
  47. <artifactId>netty</artifactId>
  48. </exclusion>
  49. </exclusions>
  50. </dependency>
  51. </dependencies>
  52. </project>

  

  1. package com.toov5.member.service.impl;
  2.  
  3. import com.toov5.api.member.service.MemberService;
  4.  
  5. public class MemberServiceImpl implements MemberService {
  6.  
  7. public String getUser(Long userId) {
  8. System.out.println("订单服务调用会员服务:userId"+userId);
  9. return "toov5";
  10. }
  11.  
  12. }

启动类

  1. package com.toov5.member.service.impl;
  2.  
  3. import java.io.IOException;
  4.  
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;
  6.  
  7. public class AppMember {
  8.  
  9. public static void main(String[] args) throws IOException {
  10.  
  11. ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("dubbo-provider.xml");
  12. applicationContext.start(); //发布服务直接
  13. System.out.println("会员启动成功...");
  14. System.in.read(); //服务一直保持运行
  15.  
  16. }
  17.  
  18. }

dubbo配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://code.alibabatech.com/schema/dubbo
  7. http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
  8. <!--定义了提供方应用信息,用于计算依赖关系;在 dubbo-admin 或 dubbo-monitor 会显示这个名字,方便辨识 -->
  9. <dubbo:application name="demotest-provider" />
  10. <!--使用 zookeeper 注册中心暴露服务,注意要先开启 zookeeper -->
  11. <dubbo:registry address="zookeeper://192.168.91.5:2181" />
  12. <!-- 用dubbo协议在20880端口暴露服务 -->
  13. <dubbo:protocol name="dubbo" port="20880" />
  14. <!--使用 dubbo 协议实现定义好的 api.PermissionService 接口 -->
  15. <dubbo:service interface="com.toov5.api.member.service.MemberService"
  16. ref="MemberServiceImpl" protocol="dubbo" />
  17. <!--具体实现该接口的 bean --> <!-- 包名+类名 -->
  18. <bean id="MemberServiceImpl" class="com.toov5.member.service.impl.MemberServiceImpl" />
  19.  
  20. </beans>

启动会员服务:

privider 下面的节点是经常变换的 所以临时的

 

Dubbo之生产者的更多相关文章

  1. dubbo服务提供与消费

    一.前言 项目中用到了Dubbo,临时抱大腿,学习了dubbo的简单实用方法.现在就来总结一下dubbo如何提供服务,如何消费服务,并做了一个简单的demo作为参考. 二.Dubbo是什么 Dubbo ...

  2. zookeeper+dubbo-admin开发dubbo应用

    前面的章节中我们已经安装好了zookeeper,tomcat了.今天我们来实现一个完整的从dubbo消息产生到消费的完整流程. 1.dubbo api 2.dubbo consumer 消费者 3.d ...

  3. j2ee分布式架构 dubbo + springmvc + mybatis + ehcache + redis 分布式架构

    介绍 <modules>        <!-- jeesz 工具jar -->        <module>jeesz-utils</module> ...

  4. 一.把传统服务做成dubbo分布式服务架构的步骤

    1.把传统服务按照一定原则(根据项目的业务逻辑和场景)拆分成多个服务(主要服务是服务提供者和服务消费者,服务提供者或服务消费者的公共部分也可以拆分成其他服务,如公共DAO.公共工具类.公共实体,公共w ...

  5. dubbo负载均衡与集群集群容错

    1.负载均衡 在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用. 1.  负载均衡策略 Random LoadBalance 随机,按权重设置随机概率.(默认值)在一个 ...

  6. dubbo初步认识

    dubbo中文网站:http://dubbo.apache.org/zh-cn/ dubbo英文网站:http://dubbo.apache.org/en-us/ 1.Apache Dubbo是一款高 ...

  7. dubbo学习(1)--简单的入门搭建实例

    转载请注明源文出处:http://www.cnblogs.com/lighten/p/6828026.html 1 简介 dubbo是一个分布式服务框架,由阿里巴巴的工程师开发,致力于提供高性能和透明 ...

  8. dubbo项目实战代码展示

    最近公司项目使用dubbo服务,于是就去网上搜索关于dubbo的相关资料,真的很多,但是对于很多人并不是很了解框架或者 不是太适合新手的片段代码,于是我就根据项目的相关内容把dubbo部分单独切出来, ...

  9. 分布式个人理解概述和dubbo实现简述

    什么是分布式?为什么使用分布式? 个人有一些浅薄的理解希望可以批评指正,从概念和应用 两个方面概述:      一.概念:分布式也叫分布式服务,也就是说 他是 一种面向服务思想的程序设计和架构风格,典 ...

随机推荐

  1. 【音乐App】—— Vue-music 项目学习笔记:歌曲列表组件开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 当前歌曲播放列表 添加歌曲 ...

  2. IDEA破解 2017 IDEA license server 激活(可用)

    进入ide主页面,help-register-license server,然后输入 http://idea.iteblog.com/key.PHP(注意:php要小写)即可~

  3. jquery相冊图片来回选择

    <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <script sr ...

  4. 《android 1: 创建一个安卓项目》

    创建方式有两种: 通过Eclipse创建 在工具栏上选择New>android>android application project,或者在导航栏上选择file>new>pr ...

  5. bottle的几个小坑

    距离我在<web.py应用工具库:webpyext>里说要换用bottle,已经过去快两个月了--事实上在那之前我已经開始着手在换了.眼下那个用于 Backbone.js 介绍的样例程序已 ...

  6. SQLSERVER聚集索引和主键(Primary Key)的误区认识

    引用别人的,供以后学习使用,谢谢! 很多人会把Primary Key和聚集索引搞混起来,或者认为这是同一个东西.这个概念是非常错误的. 主键是一个约束(constraint),他依附在一个索引上,这个 ...

  7. Android_程序未处理异常的捕获与处理

    1.简单介绍 对于程序抛出的未被捕获的异常,可能会导致程序异常退出,界面不友好且应记录关键错误信息上传至server. 这里主要使用UncaughtExceptionHandler 2.代码实现 pu ...

  8. caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--03--20171103

    classification ./examples/cifar10/cifar10_full.prototxt ./examples/cifar10/cifar10_full_iter_70000.c ...

  9. springboot 项目中控制台打印日志以及每天生成日志文件

    1.控制台打印sql语句 只要在application.properties 中加入<configuration  scan="true" scanPeriod=" ...

  10. linux支持的machine-types

    在内核文件中arch/arm/tools/mach-types定义目前内核支持的板卡.芯片等: ##machine_is_xxx  CONFIG_xxxx  MACH_TYPE_xxx  number ...