首页 > 编程知识 正文

dubbo网关方案,dubbo配置文件详解

时间:2023-05-06 16:11:41 阅读:129470 作者:445

springboot集成dubbo zookeeper项目结构:

注意:在做此demo之前应该先自行搭建好zookeeper环境

也可以搭建dubbo监控环境

1 .创建任意项目并添加maven项目以存储接口package com.wzb.service;/* * @ author satsuki * @ time 2019/8/2717:51 * @ description : *如何模拟数据库事务*/publicinterfacetestsese 公共语音更新(; 公共语音sel (; )2)创捷服务提供者(向zookeeper注册服务) pom文件:

? XML版本=' 1.0 '编码=' utf-8 '? project xmlns=' http://maven.Apache.org/POM/4.0.0 ' xmlns : xsi=' http://www.w3.org/2001/XML方案ins ttins maven-4.0.0.xsd ' model版本4.0.0/modelversionparentgroupidorder groupidartifactidspring-boot-starter-parararer --- lookupparentfromrepository---parentgroupidcom.wzb/groupidartifactidprovider/artifactidversion0.0.1- snapshoovider namedescriptiondemoprojectforspringboot/descriptionpropertiesjava.1.8/jjjava propertiesdependenciesdepencies groupidartifactidservice/artifactidversion 1.0 -快照/版本/dependencydependencygroupidorg.spring framework.boot groupidartifactidspring-boot-starter-web/artifact id/dependencydependencygroupidorg.spring framework.boot/groupidartifactidspring-boot-starter-test/artifactidscopetestes dependencydependencygroupidorg.Apache.dubb bhe groupidartifactiddubbo-spring-boot-starter/artifactidversion2.7. 3

<exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.13</version> <type>pom</type> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

application.properties:

#spring项目名spring.application.name=dubbo_auto_configuration_provider_demo#Dubbo provider configurationdubbo.application.name=dubbo_providerdubbo.registry.protocol=zookeeperdubbo.registry.address=zookeeper://127.0.0.1:2181dubbo.protocol.name=dubbodubbo.protocol.port=20880#扫描注解包通过该设置将服务注册到zookeeperdubbo.scan.base-packages=com.wzb.provider.service

具体服务实现:

package com.wzb.provider.service.impl;import com.wzb.service.TestService;import org.apache.dubbo.config.annotation.Service;/** * @author Satsuki * @time 2019/8/27 15:35 * @description: * 模拟数据库事务实现 */@Service(version = "1.0.0",interfaceClass = TestService.class)//@Service(version = "1.0.0")public class TestServiceImpl implements TestService { @Override public void ins() { System.out.println("insert"); } @Override public void del() { System.out.println("delete"); } @Override public void upd() { System.out.println("update"); } @Override public void sel() { System.out.println("select"); }}

启动类:

package com.wzb.provider;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); }} 步骤总结:

1.搭建pom环境

2.写好配置文件(一定要写上dubbo.scan.base-packages该配置会扫描你写的服务并注册到zookeeper)

3.具体服务实现

4.运行springboot启动类即可

3.创建服务消费者(服务使用者:通过远程调用服务使用)

pom文件与provider一致不再列出

application.properties:

#dubbo configurationdubbo.application.name=dubbo_consumerdubbo.registry.protocol=zookeeperdubbo.registry.address=zookeeper://127.0.0.1:2181#避免端口冲突server.port=8085

服务调用:

package com.wzb.consumer.controller;import com.wzb.service.TestService;import org.apache.dubbo.config.annotation.Reference;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/** * @author Satsuki * @time 2019/8/27 15:58 * @description: * 调用dubbo */@RestControllerpublic class TestController {// @Resource// private TestService testServiceImpl; @Reference(version = "1.0.0") private TestService testServiceImpl; @RequestMapping("/ins") public String ins(){ testServiceImpl.ins(); return "ins"; } @RequestMapping("/del") public String del(){ testServiceImpl.del(); return "del"; } @RequestMapping("/upd") public String upd(){ testServiceImpl.upd(); return "upd"; } @RequestMapping("/sel") public String sel(){ testServiceImpl.sel(); return "sel"; }}

之后只要写一个springboot启动类启动服务并且通过url访问即可测试调用服务

结果如下:


完成

demo地址: https://github.com/luoziling/dubbotest1

欢迎star fork

踩坑:

java.lang.NoClassDefFoundError: org/apache/curator/framework/recipes/cache/TreeCacheListener

在pom文件中加入这两个依赖即可

<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.0.1</version></dependency><dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.8.0</version></dependency>

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。