zookeeper+dubbo的整合。

  <!--导入依赖  dubbo zookeeper-->

        <!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.7</version>
        </dependency>
        <!-- 然后就是导入zkclient
 可能会有一些冲突,需要到入一些 就是和log4j-slf4j日志文件进行冲突了
        -->
        <!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
        <!--解决冲突导入的jar-->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>
        <!--  上面两个都是zookeeper服务端的一个依赖-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.14</version>
            <!--排除这个slf4j-log4j12-->
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

在这里插入图片描述
provider-service:
TicketService接口:

    public interface TicketService {
    public String getTicket();
}

TicketServiceImpl:

import org.apache.dubbo.config.annotation.DubboService;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;
//这个及时zookeeper:服务注册与发现
@Component
//项目启动就到注册中心上去了
@DubboService
@Service
public class TicketServiceImpl implements TicketService {
    @Override
    public String getTicket() {
        return "《白雪公主》";
    }
}

配置文件:application.propertie:

server.port=8888
#地址。我写的就是自己虚拟机的地址。端口号都是一样的。
dubbo.registry.address=zookeeper://192.168.64.131:2181
#名字
dubbo.application.name=provider-server
#那些服务要注册
dubbo.scan.base-packages=com.example.service

==================================================
customer-server:

在这里,你需要一个就是在provider-server那个类的接口,或者是pom引到这个模块里:我用的是接口类,注意的是包的路径要和provider-server相同。

public interface TicketService {
    public String getTicket();
}
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    //要去注册中心那到要使用的东西
    /*有两种办法
    * 1、接口相同,也就是说包名的,+接口都是和提供者的相同就行了
    * 2、可以引入坐标也是可以的
    * */
    /*拿过来之后我们就可以引用*/
    @Reference
    TicketService ticketService;
    public void ticke()
    {
        String ticket = ticketService.getTicket();
       /* if (ticket==null)
        {
            System.out.println("konzhi");
        }*/
        System.out.println("你买到"+ticket+"票了");
    }

application.properties:

  dubbo.registry.address=zookeeper://192.168.64.131:2181
#消费者去注册中心去哪,但是需要暴露自己的名字
dubbo.application.name=customer-server
#注册中心的地址

进行测试:

@SpringBootTest
class CustomerServerApplicationTests {

    @Autowired
    UserService userService;
    @Test
    void contextLoads() {
        userService.ticke();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值