dubbo-service公共Service

  1. package com.itman.service;
  2.  
  3. public interface UserService {
  4.  
  5. // 提供服务 使用userId查找用户信息FS
  6. public String getUserId(Integer id);
  7. }

dubbo-producer生产者

引入依赖

  1. <dependencies>
  2. <dependency>
  3. <groupId>com.alibaba</groupId>
  4. <artifactId>dubbo</artifactId>
  5. <version>2.5.6</version>
  6. </dependency>
  7. <!-- 添加zk客户端依赖 -->
  8. <dependency>
  9. <groupId>com.github.sgroschupf</groupId>
  10. <artifactId>zkclient</artifactId>
  11. <version>0.1</version>
  12. </dependency>
  13. <dependency>
  14. <groupId>com.itman</groupId>
  15. <artifactId>dubbo-service</artifactId>
  16. <version>0.0.1-SNAPSHOT</version>
  17. </dependency>
  18. </dependencies>

实现Service

  1. package com.itman.service.impl;
  2.  
  3. import com.itman.service.UserService;
  4.  
  5. public class UserServiceImpl implements UserService {
  6.  
  7. public String getUserId(Integer id) {
  8. System.out.println("被客户端(消费者)消费....id:" + id);
  9. if (id == 1) {
  10. return "itman";
  11. }
  12. if (id == 2) {
  13. return "itman2";
  14. }
  15. if (id == 1) {
  16. return "itman3";
  17. }
  18. return "未找到...";
  19.  
  20. }
  21.  
  22. }

发布服务

  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 http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">
  5.  
  6. <!-- 提供方应用信息,用于计算依赖关系 -->
  7. <dubbo:application name="provider" />
  8. <!-- 使用zookeeper注册中心暴露服务地址 -->
  9. <dubbo:registry address="zookeeper://169.254.197.135:2181" />
  10. <!-- 用dubbo协议在29014端口暴露服务 -->
  11. <dubbo:protocol name="dubbo" port="29014" />
  12. <!-- 声明需要暴露的服务接口 -->
  13. <dubbo:service interface="com.itman.service.UserService" ref="userService" />
  14. <!-- 具体的实现bean -->
  15. <bean id="userService" class="com.itman.service.impl.UserServiceImpl" />
  16. </beans>

启动代码

  1. package com.itman;
  2.  
  3. import java.io.IOException;
  4.  
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;
  6.  
  7. public class TestMember {
  8.  
  9. public static void main(String[] args) throws IOException {
  10. // 发布服务
  11. ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("provider.xml");
  12. app.start();// 加载
  13. System.out.println("服务发布成功...");
  14. System.in.read(); // 让程序阻塞
  15. }
  16. }

dubbo-consumer消费者

消费类

  1. package com.itman;
  2.  
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;
  4.  
  5. import com.itman.service.UserService;
  6.  
  7. public class TestConsumer {
  8.  
  9. public static void main(String[] args) {
  10. ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("consumer.xml");
  11. UserService userService = (UserService) app.getBean("userService");
  12. String name = userService.getUserId(1);
  13. System.out.println("name:" + name);
  14.  
  15. }
  16. }

消费者配置

  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 http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
  5. <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
  6. <dubbo:application name="consumer" />
  7. <!-- 使用multicast广播注册中心暴露发现服务地址 -->
  8. <dubbo:registry protocol="zookeeper" address="zookeeper://169.254.197.135:2181" />
  9. <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
  10. <dubbo:reference id="userService" interface="com.itman.service.UserService" />
  11. </beans>

Dubbo-admin管理平台搭建

1.将dubbo-admin.zip 解压到webapps目录下

2.修改dubbo.properties zk注册中心连接地址连接信息

3.启动tomcat即可

Dubbo集群、负载均衡、容错

修改:provider.xml  端口号  <dubbo:protocol name="dubbo" port="29015" />

启动两个服务,配置相关权重,负载均衡策略

Java简单操作dubbo(一)的更多相关文章

  1. Java 简单操作hdfs API

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6632047118376780295/ 启动Hadoop出现问题:datanode的clusterID 和 name ...

  2. java 简单操作HDFS

    创建java 项目 package com.yw.hadoop273; import org.apache.hadoop.conf.Configuration; import org.apache.h ...

  3. Kafka学习笔记-Java简单操作

    Maven依赖包: <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka ...

  4. Java简单操作Zookeeper

    Zookeeper客户端链接 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId ...

  5. java简单操作redis数据库

    package RedisTest; import redis.clients.jedis.Jedis; public class RedisTest { private static String ...

  6. github上创建java项目简单操作

    github上创建java项目简单操作 参考L: github上创建java项目简单操作 - CSDN博客http://blog.csdn.net/qq_29392425/article/detail ...

  7. Java服务端对Cookie的简单操作

    Java服务端对Cookie的简单操作 时间 2016-04-07 10:39:44 极客头条 原文  http://www.cuiyongzhi.com/index.php/post/15.html ...

  8. Java中对session的简单操作

    1.jsp中操作session <% String name=(String)request.getSession().getAttribute("username"); / ...

  9. java日期操作大全

    摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http ...

随机推荐

  1. 实验楼Python破解验证码

    本人大二,因为Python结业考试项目,又想要学习机器学习方向,但是由于接触时间不长,选择了实验楼的Python破解验证码这个项目作为我的项目, 我在原来的基础上加了一些代码用于完善,并且对功能如何实 ...

  2. 【rabbitmq】RabbitMQ 集群与网络分区

    网络分区(network partitions) 官网-网络分区 网络设备故障导致的网络分裂.比如,存在A\B\C\D\E五个节点,A\B处于同一子网,B\C\D处于另外一子网,中间通过交换机相连.若 ...

  3. Lubuntu下安装Python3.6

    Lubuntu下系统自带的Python版本是2.X,由于开发环境要求Python3,于是我们安装Python3.6 1.在终端输入以下命令: sudo add-apt-repository ppa:j ...

  4. (引用)!Unicode,GBK以及UTF8的联系和区别

    在实现单片机显示汉字的操作时,了解到有关汉字编码的相关概念. Unicode是一种字符集,该字符集可以涵盖世界上所有的语言.最常见的字符集是ASC II-0~127(0x00~0x7f).Unicod ...

  5. c# 观察者模式 匿名方法与Lambda

    //匿名方法 //和委托搭配使用 //方便我们快速对委托进行传参 //不需要我们去定义一个新的函数 //直接用delegate关键字代替方法名,后面跟上参数列表与方法体 //delegate(参数列表 ...

  6. springboot项目如何打包成war包

    一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除嵌入式tomcat插件 在pom.xml里找到spring-boot-s ...

  7. Spark-RPC理解

    基本架构 Akka Actor式RPC架构 Spark采用的是AkkaActor架构实现RPC,但是实际使用过程为了兼容不同节点之间的文件下载,采用Netty来实现Actor功能. Spark RPC ...

  8. 一、.NetCore EF 之命令行

    一.前言 最近在学习研究ABP,使用到微软的ORM框架 Entity Framework(后面简称EF),将其基本操作记录下来. 二.程序包管理器控制台 为了能够在控制台中使用命令行来操作EF,需要先 ...

  9. JS 实现右下角弹窗

    <!DOCTYPE HTML> <head> <title>JS实现右下角弹窗</title> <meta http-equiv="co ...

  10. jmeter联合selenium webdriver进行自动化测试-简单1

    jmeter进行webdriver测试 背景:jmeter可以联合selenium进行基本的UI自动化进行测试,解放了手工测试的压力.那么selenium webdriver完成GUI的流程初步如下 ...