这次主要是对dubbo 和zookeeper的配置做个记录,以便以后自己忘记了,或者踩的坑再次被踩

快速阅读

zookeerer类似 springcloud中的Eureka都做为注册中心,用srpingboot建立三个项目生产者,消费者,公共接口,引用阿里的dubbo做为rpc框架, 生产者负责实现接口的业务逻辑 并且在zookeeper注册中心中注册,同是消费者也连接zookeeper注册中心进行消息调用 。

优点:

做为分布式服务架构,将核心业务抽取出来,稳定服务器,同时扩展方便 。可以针对高并发数据进行快速合理的扩展和监控。提高集群的利用率

zookeeper的配置

创建spring boot项目进行连接zookeeper

  1. 用Ideal创建一个maven项目 ,在项目里添加三个module

这三个项目分别是生产者dubboprovider 消费者dubboconsumer 接口duoboapi

创建一个maven的项目

1560945620551

输入项目名字

1560945665537

下一步

1560945713741

进入项目界面

1560945778728

新建provider module

1560945922825

1560945942977

1560945950011

同样的方法 创建其它两个module,结果如下所示三个module创建完毕

1561033762633

  1. 配置主项目 pom.xml

引用三个主要的依赖,

dubbo-spring-boot-starter: 在spring容器中注入特定bean ,集成了dubbo和spring boot

zookeeper:zookeeper的依赖

zkclient:zookeeper的客户端依赖

 <dependencies>
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>1.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.13</version>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
    </dependencies>
  1. 定义接口

在dubboapi 模块中java下,新建一个类com.hcb.Service.IHelloService

package com.hcb.Service;

public interface  IHelloService {
    String SayHello(String name);
}
  1. 实现 生产者模块

在该模块的pom.xml引用接口

<groupId>com.hcb</groupId>
    <artifactId>dubboprovider</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.hcb</groupId>
            <artifactId>dubboapi</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

新建main入口方法

引用@SpringBootApplication,@EnableDubboConfiguration 注解

  • @SpringBootApplication 整合了三个注解。(默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan
  • @Configuration 是和@Bean 把实体model翻译成了xml的配置文件 ,使配置更简单
  • @EnableAutoConfiguration 能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。
  • @ComponentScan 会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。
  • @EnableDubboConfiguration, 表示要开启dubbo功能.

参考:https://www.cnblogs.com/MaxElephant/p/8108140.html

package com.hcb;

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.util.concurrent.CountDownLatch;

@SpringBootApplication
@EnableDubboConfiguration
public class provider {
    public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(provider.class,args);
        new CountDownLatch(1).await();
    }
}

定义一个类com.hcb.Service.HelloService 来实现 接口

@Service注解,将自动注册到Spring容器,不需要再定义bean了

@component (把普通pojo实例化到spring容器中,相当于配置文件中的
<bean id="" class=""/>)

泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),

package com.hcb.Service;

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

@Service
@Component
public class HelloSevice implements IHelloService {
    public String SayHello(String name){
        return "hi "+name;
    }
}
        

resoruces中新建application.properties配置 文件

指定名字并给出要注册的zookeepr的地址

spring.dubbo.appname=dubboprovider
spring.dubbo.registry=zookeeper://192.168.159.131:2181

启动

在provider类中在击main方法所在的类,然后选择run

1561035282837

程序正常启动不报错

1561035346692


本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论