springboot+dubbo 生产者(提供者)

需要的工具:

链接:   https://pan.baidu.com/s/1Mwv-vI2Tp73A1eAN4xNo-w

密码:rj1i

配置zookeeper,百度下,内容主要是配置data和log的输出路径以及zookeeper的路径。

dubbo-admin.war,放在本地启动的tomcat的webapp下,直接启动。这边dubbo-admin是需要jdk1.7才能正常启动,否则会报错,报错原因是dubbo-admin中引入的spring的版本太低。可以百度下怎么解决。个人原本是1.8的环境后来配置了1.7的环境,不过使用idea能随意切换本机拥有的jdk,所以下面的代码也是直接用1.8启动,电脑的环境变量是1.7。

dubbo-admin登录问题:

在web-inf下的dubbo.properties文件配置账户密码,以及zookeeper的地址:

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root

dubbo.admin.guest.password=guest

坑人的是这边其实是两个账户,一个是root,密码是root;一个是guest,密码是guest。而且我这边只能用guest登录。dubbo-admin的作用是能看见生成者和消费者。其实数量少的话,在zookeeper中就能看见,不想配置的同学可以不启动dubbo-admin。

下面是介绍生产者的流程:

idea新建一个Springboot的web项目。

然后在引入dubbo相关的jar包。

<dependency>
   <groupId>io.dubbo.springboot</groupId>
   <artifactId>spring-boot-starter-dubbo</artifactId>
   <version>1.0.0</version>
</dependency>

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>dubbo</artifactId>
   <version>2.5.6</version>
</dependency>
配置application.properties.
## Dubbo 服务提供者配置
spring.dubbo.application.name=springbootProvider #服务的命名
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 #在本地的端口为2181的zookeeper上进行注册
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880  #服务的端口号
spring.dubbo.scan=com.example.demo.service #这边是需要扫描的包

创建需要所谓服务的接口service以及实体类 impl。

sevice:

public interface DubboTest {
    public String test();
}

impl:

@Service
public class DubboTestImpl implements DubboTest{

    @Override
    public String test() {
        return "123";
    }
}
 
 

创建实体类impl后,添加service标签,这个service表示是dubbo引入的,不是springMVC的标签,具体为:

import com.alibaba.dubbo.config.annotation.Service;
创建完之后的目录结构:



到这边,项目的配置已经结束。启动springboot项目,在zookeeper中注册提供服务的生产者。

我在这边遇到的坑,十分重要:

1.springboot启动的端口不能冲突,很容易和启动dubbo-admin的tomcat产生8080(默认)冲突,这边改下springboot的端口;

2.服务端口冲突,就是生产者dubb个人的端口也会和当前电脑中的其他服务的端口差生冲突;

3.springboot继承父类的版本太高,导致springboot在启动后,一直报找不到log4j的日志报,这边我之前引入的这个包,但是没有什么用处,可能和springboot自带的日志logback冲突。冲突的父类引用:

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.0.0.RELEASE</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

解决的办法是将maven引入的springboot手动改低版本。改动后:

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>1.5.0.RELEASE</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

这边引入的父类版本 还是注意下,我个人引入的是1.5.0(这个版本肯定试用),最好是1.5.+版本以上,少于2.0。之前遇见过低版本的忘记产生了什么问题,也麻烦了我本人好久的时间。

再次启动,在zookeeper中可以看见启动的结果:


项目下载的地址,码云:https://gitee.com/zwfazt/springboot_dubbo.git


猜你喜欢

转载自blog.csdn.net/qq_36633149/article/details/79658807