Java简单操作dubbo(一)
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(一)的更多相关文章
- Java 简单操作hdfs API
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6632047118376780295/ 启动Hadoop出现问题:datanode的clusterID 和 name ...
- java 简单操作HDFS
创建java 项目 package com.yw.hadoop273; import org.apache.hadoop.conf.Configuration; import org.apache.h ...
- Kafka学习笔记-Java简单操作
Maven依赖包: <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka ...
- Java简单操作Zookeeper
Zookeeper客户端链接 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId ...
- java简单操作redis数据库
package RedisTest; import redis.clients.jedis.Jedis; public class RedisTest { private static String ...
- github上创建java项目简单操作
github上创建java项目简单操作 参考L: github上创建java项目简单操作 - CSDN博客http://blog.csdn.net/qq_29392425/article/detail ...
- Java服务端对Cookie的简单操作
Java服务端对Cookie的简单操作 时间 2016-04-07 10:39:44 极客头条 原文 http://www.cuiyongzhi.com/index.php/post/15.html ...
- Java中对session的简单操作
1.jsp中操作session <% String name=(String)request.getSession().getAttribute("username"); / ...
- java日期操作大全
摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个: 取得指定月份的第一天与取得指定月份的最后一天 http ...
随机推荐
- enable-ssh-key-logon-disable-password-password-less-logon-centos/
cat ~/.ssh/id_rsa.pub | ssh root@destination_server_address "cat >> ~/.ssh/authorized_key ...
- 【git】之使用shell脚本提交代码
为减少提交步骤,防止提交错误,使用Shell脚本进行git提交不失一件好事 #!/bin/sh # @author Hubal # @Email Hubal@123.com # @createBy - ...
- 【linux】之查看磁盘占用情况
查看整个硬盘使用情况: 1.df -h 2.du -bs xx 具体目录占用情况 3.查看当前目录大于100M的文件 find . -size +100M
- Nodejs 中将html转换成pdf文件
Nodejs 中将html转换成pdf文件,Nodejs Convert html into pdf 1. 下载phantomjs.exe,将该文件放在根目录 2. 编写pdf.js文件(在githu ...
- ARC085E MUL
https://atcoder.jp/contests/arc085/tasks/arc085_c 题目大意 略 解法 最小割即可. 直接建图有负边,但是因为我们知道最后在割上的边数一定为 \(N\) ...
- OpenResty的现状、趋势、使用及学习方法
Nginx 是俄罗斯人发明的, Lua 是巴西几个教授发明的,中国人章亦春把 LuaJIT VM 嵌入到 Nginx 中,实现了 OpenResty 这个高性能服务端解决方案. 通过 OpenRest ...
- numpy和matploptlib
numpy Numpy介绍 编辑 一个用python实现的科学计算,包括:1.一个强大的N维数组对象Array:2.比较成熟的(广播)函数库:3.用于整合C/C++和Fortran代码的工具包:4.实 ...
- ubuntu16.04 pip install scrapy 报错处理
Failed building wheel for Twisted inculde/site/python3./Twisted failed with error code in tmp/pip-in ...
- 2、Netty基础
一.前言 主要包含下面内容: 初识 Netty: 使用 Java NIO 搭建简单的客户端与服务端实现网络通讯: 使用 Netty 搭建简单的客户端与服务端实现网络通讯: Netty 底层操作与 Ja ...
- 【转】Lombok 安装、入门 - 消除冗长的 java 代码
前言: 逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下. lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码.特别是相对于 ...