本地环境下springboot整合dubbo

实习已经4个月了,我终于开始写博客了!

本文讲的是windows下搭建单机zookeeper,以及搭建dubbo-admin监控平台,最后springboot整合dubbo的过程。

所用环境

1.tomcat-7.0.88

2.zookeeper 3.4.12

3.dubbo-admin 2.5.10

正文

1.zookeeper的安装与配置

下载地址  http://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/

下载完后解压到常用目录(我这里是C盘),进入其conf文件夹下找到zoo_sample.cfg这个文件,重命名为zoo.cfg,修改该文件

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=C:\\zookeeper-3.4.12\\data  
dataLogDir=C:\\zookeeper-3.4.12\\log 
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

主要是修改dataDir和dataLogDir,然后进入cmd

 另起一个cmd,输入jps命令,观察到quorumPeerMain进程,则启动成功

 2.dubbo监控平台的搭建 

dubbo-admin下载地址  https://github.com/apache/incubator-dubbo

tips:git官网master分支上没有dubbo-admin文件了,请切到2.5.x分支或者选择2.5.x版本的tags下载

下载并解压到常用目录(我是C:\incubator-dubbo-dubbo-2.5.10),进入到incubator-dubbo-dubbo-2.5.10\dubbo-admin的目录下面,然后使用mvn package -Dmaven.test.skip=true进行编译打包,打包完成之后会在target会有一个dubbo-admin-2.5.10.war的包

 然后进入 dubbo-admin-2.5.10文件夹,在WEB-INF下找到dubbo.properties文件,设置root账号和guest账号的密码,以及zookeeper注册中心的地址

最后进入你的tomcat目录,将dubbo-admin-2.5.10.war这个包放入webapps目录下,将ROOT文件夹下所有文件删除并替换为dubbo-admin-2.5.10文件夹下的文件

tomcat bin目录下startup.bat启动tomcat,会自动解压war包

在浏览器上输入localhost:8080,弹出登入框

登入后页面为

 配置完成。

3.springboot整合dubbo

到这里整合前的一些准备工作都已经完成(zookeeper和tomcat不要关闭,因为默认为springboot内置的tomcat启动,所以启动项目时不能启动dubbo监控)

简单的介绍一下dubbo:

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。

Provider

暴露服务方称之为“服务提供者”。

Consumer

调用远程服务方称之为“服务消费者”。

Registry

服务注册与发现的中心目录服务称之为“服务注册中心”。

Monitor

统计服务的调用次数和调用时间的日志服务称之为“服务监控中心”。

更深入的解析请参考其它博文,所以在这里我们需要搭建两个项目,一个服务提供者,一个服务消费者。

1.服务提供者(dubbo-provider)项目搭建

springboot项目搭建流程这里不再赘述.

pom文件引入如下依赖

        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.12</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

 此时项目的目录结构为

 该demo中暴露的服务是testService

其实现类

 @Service这个注解在com.alibaba.dubbo.config下,加上此注解的服务为提供的服务

在spring配置中添加(端口号不要和dubbo监控的端口号相同)

spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.example.provider.Service
server.port=8888

 

springboot启动类

@EnableDubboConfiguration这个注解用来开启dubbo服务,表示其为dubbo服务提供者,开启完成后,在dubbo监控平台上显示提供者

2.服务消费者(dubbo-consumer)项目搭建

 pom文件

        <dependency>
            <groupId>com.example</groupId>
            <artifactId>dubbo-provider</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

controller层调用服务

@Controller
public class TestController {
    @Reference
    private TestService testService;

    @RequestMapping("/home")
    @ResponseBody
    public String home() {
        return testService.sayHello("hi");
    }
}

@Reference用来注入提供服务(

import com.alibaba.dubbo.config.annotation.Reference

spring配置文件

spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 
spring.dubbo.protocol.port=20800  
spring.dubbo.protocol.name=dubbo
dubbo.protocol.id=dubbo
server.port=8889

启动类

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
@EnableDubboConfiguration
public class DubboConsumerApplication  {

    public static void main(String[] args) {
        ConfigurableApplicationContext run = SpringApplication.run(DubboConsumerApplication.class, args);
    }
}

启动完成后监控平台显示

访问接口调用成功

 到此本文结束!!定个小目标,每个星期写一篇

完整代码请访问 https://github.com/ytpuls/dubbo-demo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值