第一步,要选择dubbo的中间件,之前用的是zookeeper来做注册中心的,所以我这边也使用它来搭建注册中心,下载地址去apache的官网下载,可以戳我直接去到官网下载稳定版本。而后解压到本地文件夹,解压出来的结构如下
打开conf文件夹,copy zoo_sample.cfg副本,重命名为zoo.cfg,然后可以修改里面的内容,也可以不修改。
打开bin目录下的zkServer.cmd文件,如果报错,请设置好环境变量。
正常启动如下
注册中心就弄好了,
第二步,创建service工程与其中的服务,本案例使用maven构建系统,怎么创建maven系统这边就不做赘述了,主要上下其中的代码
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi="
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
< modelVersion >4.0.0</ modelVersion >
< groupId >com.inspires</ groupId >
< artifactId >dubbo-service</ artifactId >
< version >0.0.1-SNAPSHOT</ version >
< packaging >jar</ packaging >
< name >dubbo-service</ name >
< url >http://maven.apache.org</ url >
< properties >
< project.build.sourceEncoding >UTF-8</ project.build.sourceEncoding >
</ properties >
< dependencies >
< dependency >
< groupId >junit</ groupId >
< artifactId >junit</ artifactId >
< version >4.12</ version >
</ dependency >
< dependency >
< groupId >org.springframework</ groupId >
< artifactId >spring-context</ artifactId >
< version >3.2.5.RELEASE</ version >
</ dependency >
< dependency >
< groupId >com.alibaba</ groupId >
< artifactId >dubbo</ artifactId >
< version >2.4.9</ version >
</ dependency >
< dependency >
< groupId >org.apache.zookeeper</ groupId >
< artifactId >zookeeper</ artifactId >
< version >3.4.6</ version >
</ dependency >
< dependency >
< groupId >com.101tec</ groupId >
< artifactId >zkclient</ artifactId >
< version >0.4</ version >
</ dependency >
</ dependencies >
</ project >
|
然后创建一个spring的配置文件命名为service-dubbo.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<? 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 = "service-test-dubbo" />
<!-- 使用multicast广播注册中心暴露服务地址 -->
< dubbo:registry address = "zookeeper://127.0.0.1:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
< dubbo:protocol name = "dubbo" port = "20880" />
<!-- 声明需要暴露的服务接口 -->
< dubbo:service interface = "com.inspires.dubbo.service.IDemoService" ref = "demoService" />
<!-- 和本地bean一样实现服务 -->
< bean id = "demoService" class = "com.inspires.dubbo.service.impl.DemoService" />
</ beans >
|
接下来创建一个接口与实现类IDemoService、DemoService,只创建一个sayHello方法以做校验
IDemoService.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/** *
*/
package com.inspires.dubbo.service;
/** * @author Jon Chiang
* @project dubbo-service
* @create_date 2014-12-30 下午5:06:52
*/
public interface IDemoService {
/**
* @author Jon Chiang
* @create_date 2014-12-30 下午5:09:27
* @param name
* @return
*/
String sayHello(String name);
} |
DemoService.java 不多说
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/** *
*/
package com.inspires.dubbo.service.impl;
import com.inspires.dubbo.service.IDemoService;
/** * @author Jon Chiang
* @project dubbo-service
* @create_date 2014-12-30 下午5:07:29
*/
public class DemoService implements IDemoService {
static int sayHelloCount = 0 ;
@Override
public String sayHello(String name) {
String hello = "Hello " + name;
System.out.println(++sayHelloCount);
System.out.println(hello);
return hello;
}
} |
还有web.xml里面要做spring配置文件和监听的配置,这里不做赘述(附件里面有,不会的同事可以参考附件)这里service工程基本弄好了
第三步,创建maven的访问者或者客户端工程。
pom.xml 注意要引用service工程,不然没法访问IDemoService了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
< 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/maven-v4_0_0.xsd" >
< modelVersion >4.0.0</ modelVersion >
< groupId >com.inspires</ groupId >
< artifactId >dubbo-client</ artifactId >
< packaging >war</ packaging >
< version >0.0.1-SNAPSHOT</ version >
< name >dubbo-client Maven Webapp</ name >
< url >http://maven.apache.org</ url >
< build >
< finalName >dubbo-client</ finalName >
</ build >
< dependencies >
< dependency >
< groupId >junit</ groupId >
< artifactId >junit</ artifactId >
< version >4.12</ version >
</ dependency >
< dependency >
< groupId >org.springframework</ groupId >
< artifactId >spring-context</ artifactId >
< version >3.2.5.RELEASE</ version >
</ dependency >
< dependency >
< groupId >com.alibaba</ groupId >
< artifactId >dubbo</ artifactId >
< version >2.4.9</ version >
</ dependency >
< dependency >
< groupId >org.apache.zookeeper</ groupId >
< artifactId >zookeeper</ artifactId >
< version >3.4.6</ version >
</ dependency >
< dependency >
< groupId >com.101tec</ groupId >
< artifactId >zkclient</ artifactId >
< version >0.4</ version >
</ dependency >
< dependency >
< groupId >com.inspires</ groupId >
< artifactId >dubbo-service</ artifactId >
< version >0.0.1-SNAPSHOT</ version >
</ dependency >
</ dependencies >
</ project >
|
然后就是spring文件
client-dubbo.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<? 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 = "client-test-dubbo" /> <!-- 使用zookeeper广播注册中心暴露发现服务地址 -->
< dubbo:registry address = "zookeeper://127.0.0.1:2181" /> <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
< dubbo:reference id = "demoService" interface = "com.inspires.dubbo.service.IDemoService" />
</ beans >
client-common.xml <? 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:context = "http://www.springframework.org/schema/context"
xmlns:tx = "http://www.springframework.org/schema/tx" xmlns:util = "http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"
default-lazy-init = "false" >
< context:annotation-config />
< context:component-scan base-package = "com.inspires.dubbo.service" /> <!-- 自动扫描所有注解该路径 -->
</ beans >
|
让后我们在service里面写一个测试调用远程接口的方法。因为我这边只是测试接口是否通,所以使用@PostConstruct注解,让工程一启动就调用init方法访问接口,达到我测试的目的。
TestService.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
/** *
*/
package com.inspires.dubbo.service.impl;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.inspires.dubbo.service.IDemoService;
import com.inspires.dubbo.service.ITestService;
/** * @author Jon Chiang
* @project dubbo-client
* @create_date 2014-12-30 下午6:54:12
*/
@Service public class TestService implements ITestService{
@Autowired
IDemoService demoService;
@PostConstruct
@Override
public void init(){
for ( int i = 0 ; i < 20 ; i++) {
demoService.sayHello( "Jon Chiang " );
}
}
} |
然后可以开测了
启动service工程控制台无异常,然后启动client工程,系统调用远程方法。控制台答应hello Jon Chiang 大功告成也!
相关推荐
欢迎下载并体验其强大功能。 【标签】:Dubbo-Admin 在深入讨论Dubbo-Monitor之前,我们先来了解一下Dubbo-Admin。Dubbo-Admin是一个基于Web的管理控制台,它为Dubbo服务提供了一套图形化的管理界面,包括服务注册...
`dubbo-demo-consumer-2.5.4-SNAPSHOT-assembly.tar.gz`和`dubbo-demo-provider-2.5.4-SNAPSHOT-assembly.tar.gz`则分别是消费者和提供者的实例,解压后可以运行示例代码,快速体验Dubbo的基本功能。 通过这三个...
在分布式服务框架 Dubbo 中,异常处理是必不可少的一部分。Dubbo 提供了强大的异常处理机制,使得服务提供者能够向消费者传递自定义异常...这不仅提高了代码的可读性和可维护性,还能提高整个系统的稳定性和用户体验。
在本示例中,`dubbo-demo` 提供了对 Dubbo 功能的直观体验。 【服务提供方(Provider)】是系统中的服务生产者,它将服务注册到注册中心,使得服务消费者能够找到并调用。在 `dubbo-demo` 中,服务提供方包含了实现...
这个版本的发布标志着Dubbo管理工具的重大升级,为用户带来了更加便捷的体验。 【描述】中提到的“需要安装Zookeeper”是指Dubbo-admin依赖于Zookeeper作为注册中心,用于存储和管理服务元数据。Zookeeper是一个...
将Dubbo 2.6.2编译版本导入IDEA,意味着开发者可以直接在IDEA中进行开发、测试和调试,享受到其便捷的开发体验。IDEA的插件系统也支持Dubbo的相关配置,使得服务的配置和管理更加直观和简单。 在下载的压缩包中,...
【标题】"Dubbo初体验"揭示了对阿里巴巴开源分布式服务框架Dubbo的初次探索。Dubbo是一款高性能、轻量级的服务治理方案,它旨在提高微服务架构中的服务发现、调用、负载均衡和容错能力。这篇博客的作者通过实践,...
Dubbo 管理控制台的未来发展方向是提供更加丰富的功能和更好的用户体验。例如,添加更多的服务管理功能,例如服务监控、服务跟踪等。同时,也可以探索其他的技术栈和架构设计,以提高系统的可维护性和可靠性。
然而,为了提高用户体验和效率,还可以考虑对Dubbo Admin界面进行自定义定制,例如添加自定义监控指标,或者对接其他日志系统,实现更全面的服务监控。 总结来说,Dubbo Admin是Dubbo生态中的重要一环,它提供了一...
【标题】"Dubbo HelloWorld 实践教程" 在IT行业中,Dubbo是一款由阿里巴巴开源的高性能、轻量级的服务治理框架,主要用于实现分布式服务的开发、治理和服务发现。...现在,你可以动手尝试,体验Dubbo的魅力了。
- 异步调用、本地存根、本地伪装:提供了异步处理能力和本地代理,以提升性能和用户体验。 - 并发控制、连接控制:为服务调用提供了更细粒度的控制。 - 路由规则、配置规则:允许用户根据特定的规则将服务请求路由到...
- **高性能通信**:基于 Netty 框架,Dubbo 实现了高效的长连接通信,支持多种序列化方式,如 Hessian 和 Protobuf,提供低延迟的远程调用体验。 - **透明化远程调用**:Dubbo 将远程服务调用封装为本地方法调用,...
这个版本旨在提供更加稳定、高效的管理体验,帮助开发者实时掌握服务运行状态,快速定位并解决问题。 二、关键功能解析 1. **服务注册与发现**:Dubbo Admin允许服务提供者向注册中心注册服务,同时服务消费者可以...
版本 2.5.3 带来了更多的优化和改进,增强了用户体验和稳定性。 二、主要功能 1. **服务治理**:Dubbo Admin 可以展示所有注册的服务,包括服务提供者和服务消费者,便于管理和调整服务之间的依赖关系。 2. **...
`2.5.3` 版本的 `dubbo-admin` 更新了界面和功能,提高了用户体验。 **3. Alibaba Dubbo Dependency** `alibaba-dubbo-dependency` 是阿里巴巴提供的 Dubbo 依赖集合,包含了一系列 Dubbo 相关的 Maven 或 Gradle ...
Java的Dubbo框架是阿里巴巴开源的一款高性能、轻量级的服务治理框架,主要用于构建分布式服务系统。在Eclipse中配置Dubbo时,`...在Eclipse中正确引用`dubbo.xsd`,可以有效提升开发体验,避免因配置错误导致的问题。
SpringBoot整合Dubbo增强版是将流行的微服务框架Dubbo与SpringBoot进行深度融合的一个项目,旨在简化Dubbo在SpringBoot应用中的配置和管理,提供更好的开发体验。在传统的SpringBoot集成Dubbo过程中,可能会遇到一些...
3. **问题修复**:对已知的bug进行修复,提高系统的可靠性和用户体验。 4. **API兼容性**:保持与前一版本的良好兼容性,同时提供向更高版本平滑升级的路径。 三、参考文档的价值 "一些参考文档"表明,除了源代码...
7. **版本升级**:dubbo-admin的版本更新通常会带来新的功能或性能提升,例如2.6.0可能修复了之前版本的bug,增强了用户体验,或者增加了新的管理功能。 8. **微服务架构**:在微服务架构中,每个服务都是独立的,...
总结来说,“dubbo-springboot-demo”案例展示了如何将Dubbo的高可用服务治理功能与SpringBoot的简洁开发体验相结合,构建一个高效、灵活的微服务系统。通过这个案例的学习,开发者不仅可以掌握Dubbo和SpringBoot的...