dubbo-service公共Service

package com.itman.service;

public interface UserService {

    // 提供服务 使用userId查找用户信息FS
public String getUserId(Integer id);
}

dubbo-producer生产者

引入依赖

    <dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.6</version>
</dependency>
<!-- 添加zk客户端依赖 -->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>com.itman</groupId>
<artifactId>dubbo-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>

实现Service

package com.itman.service.impl;

import com.itman.service.UserService;

public class UserServiceImpl implements UserService {

    public String getUserId(Integer id) {
System.out.println("被客户端(消费者)消费....id:" + id);
if (id == 1) {
return "itman";
}
if (id == 2) {
return "itman2";
}
if (id == 1) {
return "itman3";
}
return "未找到..."; } }

发布服务

<?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:application name="provider" />
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://169.254.197.135:2181" />
<!-- 用dubbo协议在29014端口暴露服务 -->
<dubbo:protocol name="dubbo" port="29014" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.itman.service.UserService" ref="userService" />
<!-- 具体的实现bean -->
<bean id="userService" class="com.itman.service.impl.UserServiceImpl" />
</beans>

启动代码

package com.itman;

import java.io.IOException;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestMember {

    public static void main(String[] args) throws IOException {
// 发布服务
ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("provider.xml");
app.start();// 加载
System.out.println("服务发布成功...");
System.in.read(); // 让程序阻塞
}
}

dubbo-consumer消费者

消费类

package com.itman;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.itman.service.UserService;

public class TestConsumer {

    public static void main(String[] args) {
ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("consumer.xml");
UserService userService = (UserService) app.getBean("userService");
String name = userService.getUserId(1);
System.out.println("name:" + name); }
}

消费者配置

<?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:application name="consumer" />
<!-- 使用multicast广播注册中心暴露发现服务地址 -->
<dubbo:registry protocol="zookeeper" address="zookeeper://169.254.197.135:2181" />
<!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
<dubbo:reference id="userService" interface="com.itman.service.UserService" />
</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. h5互动课件动画如何实现?如何快速开发h5互动课件动画

    最近几年随着h5的兴起,复杂的h5动画,甚至是交互动画类型的产品不断涌现,尤其在课件产品方面,很多公司都有相关需求,最近很多h5开发工程师想了解相关方面的技术. 针对h5,如果是简单的动画效果,可以考 ...

  2. FM与PM信号的表现形式

    角度调制可以写成如下形式: $u(t)=A_c cos(2\pi f_c t + \phi (t) )$ $A_c cos(2\pi f_c t)$是载波,调制信号控制$\phi (t)$. 对于PM ...

  3. HTML5 Audio(音频)

        <audio controls> <source src="horse.ogg" type="audio/ogg"> <s ...

  4. 搭建 Jest+ Enzyme 测试环境

    1.为什么要使用单元测试工具? 因为代码之间的相互调用关系,又希望测试过程单元相互独立,又能正常运行,这就需要我们对被测函数的依赖函数和环境进行mock,在测试数据输入.测试执行和测试结果检查方面存在 ...

  5. socket通信中select函数的使用和解释

    select函数的作用: select()在SOCKET编程中还是比较重要的,可是对于初学SOCKET的人来说都不太爱用select()写程序,他们只是习惯写诸如 conncet().accept() ...

  6. 实时监听input输入内容的N种方法

    现在有一个需求,需要我们实时监听input输入框中的内容,从而带来更好的用户体验,而不是等我们全部输入完毕才告诉我们格式不对首先我们创建一个input输入框 <form name='loginF ...

  7. 关于Python课程的一些思考。

    出于对网络爬虫的好奇,我选修了Python程序设计,至于pyhton还能干啥还不太清除,只觉得爬一些数据很有意思,所以希望老师讲一些数据分析之类的技术.学完课程希望能分析一些数据,比如:还有: 上课的 ...

  8. html弹出div

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. [C#]左移和右移

    参考链接: https://www.cnblogs.com/tjudzj/p/4190878.html https://www.cnblogs.com/wwwzzg168/p/3570152.html ...

  10. 前端 js加密 后台java 解密 RSA

    前端代码 : $.ajax({ type:"GET", url:"http://localhost:8084/getPulbicKey", dataType:& ...