自己写个dubbo和zookeeper的用法记录一下 用springboot整合

1,先写一个接口

1.1:导入依赖 
    <dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
</dependencies>

1.2:写好实体类,写好接口
实体类:

@Data
@EqualsAndHashCode
//@AllArgsConstructor
public class User implements Serializable {
    private String name;
}

接口:

package com.addservice.service;

import com.addservice.pojo.User;

import java.util.List;


public interface AddService {
    List<User> getAll();
}

2.开始写生产者

2.1 先导入依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>producter</artifactId>

    <dependencies>
<!--        服务提供的的接口-->
        <dependency>
            <groupId>com.mscy</groupId>
            <artifactId>addservice</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions><!-- 去掉默认配置 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
<!--        dubbo-->
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>com.alibaba</groupId>
                    <artifactId>dubbo</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

2.2 开始写配置文件 application.properties

#服务名称
dubbo.application.name=provider1
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#注册中心类型
dubbo.registry.protocol=zookeeper

#版本号
dubbo.application.version=3
# Dubbo Protocol
#协议名称
dubbo.protocol.name=dubbo
#服务暴露端口
dubbo.protocol.port=20880

server.port=8088

2.3 开始写一个类 并且继承 1 写的接口

package com.productor.service.impl;

import com.addservice.pojo.User;
import com.addservice.service.AddService;

import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;


@Service(version = "3")
@Component
public class ProductorServiceImpl implements AddService {
    @Override
    public List<User> getAll() {
        User user1 = new User();
        user1.setName("王思聪");
        User user2 = new User();
        user2.setName("狄仁杰");
        List<User> users = Arrays.asList(user1, user2);
        return users;
    }
}

这里的@service 注解 别导错包了
( import com.alibaba.dubbo.config.annotation.Service;)

2.4 创建一个启动类

package com.productor;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@EnableDubbo
@SpringBootApplication
public class ProductorAoolication {
    public static void main(String[] args) {
        SpringApplication.run(ProductorAoolication.class,args);
    }
}

3 开始创建消费者

3.1 导入消费者依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>consumer</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

<!--        dubbo-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>
<!--        引入接口服务-->
        <dependency>
            <groupId>com.mscy</groupId>
            <artifactId>addservice</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

3.2 application.properties配置文件 配置消费者

#注册中心
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.registry.protocol=zookeeper
#dubbo应用名称
dubbo.application.name=consumer1
server.port=8888

3.3 创建一个控制器 并注入接口

import com.addservice.pojo.User;
import com.addservice.service.AddService;
import com.alibaba.dubbo.config.annotation.Reference;
import com.consumer.service.consumerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;


@RestController
public class consumerController {
    @Autowired
    private consumerService consumerService;
    @Reference(version = "3")
    private AddService addService;

    @ResponseBody
    @RequestMapping("/add")
    public List<User> getAll(){
        return addService.getAll();
    }
}

3.4 创建启动类

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
@EnableDubbo
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);

    }
}

4 之后先启动zookeeper

在这里插入图片描述

5 启动 Tomcat里面的dubbo-admin

输入:http://localhost:8080/

6 在途中会遇到一些 包冲突 编辑时找不到类等问题。应该是需要注意dubbo的版本

7 记录一个日志冲突

在这里插入图片描述
解决方法:
我上面的代码是解决之后的代码 (无需再重复操作)

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions><!-- 去掉默认配置 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

在这里插入图片描述

发布了30 篇原创文章 · 获赞 0 · 访问量 2461

猜你喜欢

转载自blog.csdn.net/duanduan339/article/details/104963787
今日推荐