springboot + dubbo + zookeeper入门到实战超级详解

简介: springboot + dubbo + zookeeper入门到实战超级详解
一,引言

在此之前,本人还是希望各位有一台自己的服务器,不然在虚拟机里面操作真的是会很卡很卡的。由于dubbo最近似乎又开始更新了,所以不得不学了一下dubbo,由于这里只是入门,因此一些概念就先不聊了。

二,安装jdk

在服务器里面安装jdk,附上下载网址:https://www.oracle.com/java/technologies/javase-downloads.html

解压在/usr/local/software 里面,这个software需要手动创建。我大概就装了一下里面的东西

然后对/etc/profile进行环境配置,输入一下内容即可

vim /etc/profile
export JAVA_HOME=/usr/local/software/jdk1.8.0_281
export JRE_HOME=${JAVA_HOME}/jre
export CLASSSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

再自己测试一下javac或者java -version即可

三,安装tomcat

附上连接https://tomcat.apache.org/download-70.cgi,常规的解压安装即可,我这边装的是tomcat7

四,安装zookeeper

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

,版本尽量安装3.4.x的,不然安装的版本太高容易启动不了,太多的bug。同样将压缩包放到/usr/local/software目录下,tar -zxvf解压即可。

20210319154405868.png

修改配置文件 cd …/conf/ : mv zoo_sample.cfg zoo.cfg

接下来vim zoo.cfg,并修改里面的dataDir数据为当前zookeeper的data目录,该data目录可以在zookeeper下面新建即可

接下来保存退出,切换到bin目录下

./zkServer.sh status:查看当前服务状态
./zkServer.sh stop: 停止服务
./zkServer.sh start: 开启服务

这里开启服务即可,不需要在哪个服务器里面将端口2181打开

五,安装dubbo

这里就需要使用tomcat来安装了,现在一个dubbo.war,附上一个地址可以下载的,https://download.csdn.net/download/fyc__ios/10386974,亲测有效

然后打开tomcat,直接切换到/usr/local/software/tomcat7/webapps/ROOT这个目录,直接 rm -rf *,删除里面的全部

rm -rf *


然后将dubbo.war里面的解压到/usr/local/software/tomcat7/webapps/ROOT这个路径下解压即可,需要使用unzip解压

unzip dubbo.war -d tomcat7/webapps/ROOT

再查看一下 /usr/local/software/tomcat7/webapps/ROOT/WEB-INF

vim dubbo.properties

不用改,看看就行了,到时登录dubbo时的账号和密码都是root

在切换到tomcat下面的bin目录,可以看到熟悉的脚本

直接启动

./startup.sh

需要编译等待一段时间,而且在启动前尽量关闭防火墙,并且打开端口号2181和8080.一段时间后,在浏览器上输入 服务器ip + 8080,出现以下界面,登录账号和密码都是root

六,接下来就是springboot和dubbo的整合了

新建springboot项目,见一个服务者和消费者作为测试即可

1,先说服务提供者,即dubbo-provider

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入dubbo-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>
    </dependencies>

application.properties

server.port=8081
dubbo.application.name=dubbo2-springboot-provider
dubbo.registry.protocol=zookeeper
#服务注册中心的地址,即服务器地址
dubbo.registry.address=xxx.xxx.xxx.xxx:2181
dubbo.protocol.port=20883

代码比较简单

在主启动类上加上 @EnableDubbo 开启dubbo服务的注解,和前面说的eureka是一样的。

然后就是新建一个IUserService接口

package com.zheng.dubboprovider.service;
public interface IUserService {
    public String getUser(String username);
}

具体实现类

package com.zheng.dubboprovider.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.zheng.dubboprovider.service.IUserService;
@Service
public class UserServiceImpl implements IUserService {
    @Override
    public String getUser(String username) {
        System.out.println(username);
        return username;
    }
}

启动该微服务

可以发现该微服务以及注册进来了

2,消费者dubbo-consumer

pom.xml,多了一个服务提供者的依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入dubbo-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.zheng</groupId>
            <artifactId>dubbo-provider</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

application.properties

server.port=8082
dubbo.application.name=dubbo2-springboot-consumer
dubbo.registry.protocol=zookeeper
#服务注册中心的地址,即服务器地址
dubbo.registry.address=xxx.xxx.xxx.xxx:2181

controller

package com.zheng.dubboconsumer.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.zheng.dubboprovider.service.IUserService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/t1")
@RestController
public class GetUser {
    //@Reference(loadbalance = "leastactive")
    @Reference
    private IUserService userService;
    @GetMapping("/qaq")
    public String getUserInfo(String username){
        System.out.println(username);
        return userService.getUser(username);
    }
}

主启动类,加上 @EnableDubbo 注解即可

3,启动服务调用者并测试

点开服务治理下面的应用,可以看到下图,服务者提供者和消费者都被加进来了


再来进行接口测试

http://localhost:8082/t1/qaq?username=123456789

测试成功,dubbo+zookeeper+springboot的整合正式成功!

相关文章
|
10月前
|
数据采集 机器学习/深度学习 数据可视化
让回归模型不再被异常值"带跑偏",MSE和Cauchy损失函数在噪声数据环境下的实战对比
本文探讨了MSE与Cauchy损失函数在线性回归中的表现,特别是在含噪声数据环境下的差异。研究发现,MSE虽具良好数学性质,但对异常值敏感;而Cauchy通过其对数惩罚机制降低异常值影响,展现出更强稳定性。实验结果表明,Cauchy损失函数在处理含噪声数据时参数估计更接近真实值,为实际应用提供了更鲁棒的选择。
387 1
让回归模型不再被异常值"带跑偏",MSE和Cauchy损失函数在噪声数据环境下的实战对比
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
SpringCloudAlibaba Dubbo Java
【SpringCloud Alibaba系列】Dubbo基础入门篇
Dubbo是一款高性能、轻量级的开源Java RPC框架,提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册和发现、运行期流量调度、可视化服务治理和运维等功能。
【SpringCloud Alibaba系列】Dubbo基础入门篇
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
723 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
Dubbo Java 应用服务中间件
微服务框架Dubbo环境部署实战
微服务框架Dubbo环境部署的实战指南,涵盖了Dubbo的概述、服务部署、以及Dubbo web管理页面的部署,旨在指导读者如何搭建和使用Dubbo框架。
1267 17
微服务框架Dubbo环境部署实战
|
Dubbo Java 应用服务中间件
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
709 1
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
277 4
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
1278 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
缓存 负载均衡 Dubbo
Dubbo技术深度解析及其在Java中的实战应用
Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java分布式服务框架,它致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
534 6

热门文章

最新文章