spring boot +dubbo+zookeeper

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。

dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。


  结合本公司的开发也是用的dubbo这款优秀的框架,加上 最近工作重心的。所以对于dubbo的学习已经是迫在眉睫了。


  在中秋假期,抽空实战了一把基于spring boot +dubbo+zookeeper 。其中也遇到了 很多的坑。


 在这里记录一下。


  我们看下dubbo的官网。http://dubbo.apache.org/en-us/ 。这里不在做赘述。


 我们开始上手去实战一个初步的demo。用实战的角度去学习他。


 在官网上也给我们了例子。


  我们按照官网去实现它


  首先 我们去搭建zookeeper。之所以选择zookeeper 我感觉还是资料多吧。


 我们去下载zookeeper 然后启动就可以。


   我这里用的是服务模式启动的。所以我在项目中用的 是3000的端口


我们去常见一个通用的api


package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}


配置文件


spring:
  application:
    name: interface


我们去创建provider


pom.xml


+ View Code


实现方法


package com.studay.leizi.leiziuserserver.imp;
import com.alibaba.dubbo.config.annotation.Service;
import com.example.demo.service.DemoService;
import org.springframework.beans.factory.annotation.Value;
@Service
public class DefaultDemoService implements DemoService {
    @Value("dubbo-auto-configuration-provider-demo")
    private String serviceName;
    public String sayHello(String name) {
        return String.format("Hello, %s", name);
    }
}


application.yml配置


spring:
  application:
    name: dubbo-registry-zookeeper-consumer-sample
dubbo:
  registry:
    address: zookeeper://127.0.0.1:3000
    protocol: zookeeper
    id: my-registry
  protocol:
    name: dubbo
    port: 12345
    id: dubbo
    status: server
  application:
    id: cusss
    name: cusss
  scan:
    basePackages: com.studay.leizi.leiziuserserver
server:
  port: 8081


这个时候我们去启动。


image.png


启动成功,我们去创建服务消费方


package com.styday.leiziapi.connec;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.annotation.Service;
import com.example.demo.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Service
@Component
public  class  Demoe implements DemoService {
    @Reference
    DemoService demoService;
    @Override
    public String sayHello(String name) {
        return demoService.sayHello(name);
    }
}


为了方便我们查看调用是否成功,我们编写controller


package com.styday.leiziapi.connter;
import com.styday.leiziapi.connec.Demoe;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@RestController("/home")
public class Consned {
    @Autowired
    Demoe demoe;
    @GetMapping("/getPayInfo")
    public String say(@RequestParam("name") String name) {
        return demoe.sayHello(name);
    }
}


application.yml配置<br>spring:
  application:
    name: consumer
dubbo:
  registry:
    address: zookeeper://127.0.0.1:3000
  protocol:
    name: dubbo
    port: 2081
    id: dubbo
  application:
      id: cusss
      name: cusss
  scan:
      basePackages: com.styday.leiziapi.connec.Demoe
server:
  port: 9999


启动完毕后, 启动。


image.png


我们可以用dubbo管理后台,去看服务的注册。下载地址 https://github.com/apache/dubbo/tree/2.5.x

mvn clean package -Dmaven.test.skip=true

然后 放在Tomcat启动。


配置下  webapps\dubbo-admin-2.6.0\WEB-INF\dubbo.properties


然后启动后登陆就可以


image.png


这样就可以在管理后台查看我们的服务了。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
3月前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
89 2
|
4月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
5月前
|
Dubbo Java 应用服务中间件
💥Spring Cloud Dubbo火爆来袭!微服务通信的终极利器,你知道它有多强大吗?🔥
【8月更文挑战第29天】随着信息技术的发展,微服务架构成为企业应用开发的主流模式,而高效的微服务通信至关重要。Spring Cloud Dubbo通过整合Dubbo与Spring Cloud的优势,提供高性能RPC通信及丰富的生态支持,包括服务注册与发现、负载均衡和容错机制等,简化了服务调用管理并支持多种通信协议,提升了系统的可伸缩性和稳定性,成为微服务通信领域的优选方案。开发者仅需关注业务逻辑,而无需过多关心底层通信细节,使得Spring Cloud Dubbo在未来微服务开发中将更加受到青睐。
97 0
|
3月前
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
139 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
2月前
|
Dubbo Java 应用服务中间件
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
72 1
|
3月前
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
45 4
|
3月前
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
244 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
5月前
|
XML Java 数据格式
Spring Cloud全解析:注册中心之zookeeper注册中心
使用ZooKeeper作为Spring Cloud的注册中心无需单独部署服务器,直接利用ZooKeeper服务端功能。项目通过`spring-cloud-starter-zookeeper-discovery`依赖实现服务注册与发现。配置文件指定连接地址,如`localhost:2181`。启动应用后,服务自动注册到ZooKeeper的`/services`路径下,形成临时节点,包含服务实例信息。
418 3
|
5月前
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
138 0
|
Dubbo 关系型数据库 Java
SpringBoot 整合 Dubbo&amp;Zookeeper 实现分布式
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36367789/article/details/81665692 1. 安装 Zookeeper 环境 Zookeeper 环境搭建&zk命令详解 2. 服务提供者 因为用了父工程的版本管理,所以这里没有显示版本,我把用到的版本给大家分享下。
2259 0