当前位置 : 主页 > 编程语言 > java >

Springboot+dubbo+zookeeper简单项目的使用。

来源:互联网 收集:自由互联 发布时间:2022-08-10
项目全部源码及其zookeeper安装包, 公众号:知识浅谈 后台回复“springboot集成dubbo”获取下载连接。 第一步:获取完上边的项目之后,先安装zookeeper, 安装zookeeper,只需要在zookeeper的跟


项目全部源码及其zookeeper安装包,
公众号:知识浅谈 后台回复“springboot集成dubbo”获取下载连接。

  • 第一步:获取完上边的项目之后,先安装zookeeper,
  • 安装zookeeper,只需要在zookeeper的跟文件夹下创建一个data文件夹,然后在conf文件夹下复制zoo_sample.cfg,粘贴到和zoo_sample 相同目录下重命名为zoo.cfg
  • Springboot+dubbo+zookeeper简单项目的使用。_maven

  • 然后修改zoo.cfg中的dataDir后边的地址为你刚才创建的data文件夹的绝对路径
  • Springboot+dubbo+zookeeper简单项目的使用。_spring_02

  • 然后就可以在bin文件夹下的zkServer.cmd,启动注册中心了,当然,等你下边项目写完之后,先运行这个文件,再运行项目就ok了
  • Springboot+dubbo+zookeeper简单项目的使用。_spring_03

  • 第二步,项目部署
  • 先给出我的文件夹结构,结合着创建项目
  • Springboot+dubbo+zookeeper简单项目的使用。_maven_04


  • Springboot+dubbo+zookeeper简单项目的使用。_spring_05

Springboot+dubbo+zookeeper简单项目的使用。_zookeeper_06

第一个项目:建立对应的用于接口的项目,因为接口在服务提供者和服务消费者都用的到(服务提供者用接口实现,服务消费者使用接口调用服务提供者实现的方法)

不选哪个create直接点击下一步创建即可,名字结合我项目中的或者上边文件结构中的。

Springboot+dubbo+zookeeper简单项目的使用。_maven_07

该项目中就一个文件service的接口,而且pom.xml不用改变

package com.englishcode.springboot.service;

/**
* @author cyl
* @version 1.0
* @date 2020/10/27 11:26
*/
public interface StudentService {
Integer queryAllStudentCount();
}

第二个项目21服务提供者:使用springboot创建

Springboot+dubbo+zookeeper简单项目的使用。_maven_08


名字同样参考文件结构

对应的pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.englishcode.springboot</groupId>
<artifactId>021-springboot-dubbo-provider</artifactId>
<version>1.0.0</version>

<properties>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--dubbo集成springboot依赖-->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>

<!--注册中心-->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>

<!--接口工程-->
<dependency>
<groupId>com.englishcode.springboot</groupId>
<artifactId>020-springboot-dubbo-interface</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

对应的application.properties

#设置内嵌tomcat端口号
server.port=8081
#设置上下文
server.servlet.context-path=/

#设置dubbo的配置
spring.application.name=021-springboot-provider

#设置当前工程是一个服务提供者
spring.dubbo.server=true

#设置注册中心
spring.dubbo.registry=zookeeper://127.0.0.1:2181

对应的启动文件:

package com.englishcode.springboot;

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

@SpringBootApplication
@EnableDubboConfiguration //开启dubbo配置
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}

}

对应的service实现文件

package com.englishcode.springboot.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.englishcode.springboot.service.StudentService;
import org.springframework.stereotype.Component;

/**
* @author cyl
* @version 1.0
* @date 2020/10/27 11:28
*/
@Component //加载到spring容器中
@Service(interfaceClass = StudentService.class,version = "1.0.0",timeout = 15000) //这个即使最后要暴漏出去的类名
public class StudentServiceImpl implements StudentService {
@Override
public Integer queryAllStudentCount() {
return 12;
}
}
  • 对于第三个项目22服务消费者:
  • pom.xml和上边的差不多,以来都一样,把对应的名字什么改一下就行,源码如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.englishcode.springboot</groupId>
<artifactId>022-springboot-dubbo-consumer</artifactId>
<version>1.0.0</version>

<properties>
<java.version>1.8</java.version>
</properties>

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

<!--dubbo集成springboot框架起步依赖-->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!--注册中心-->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>

<!--接口工程,只有有这个才能知道提供者要提供哪些工程,消费者需要哪些工程-->
<dependency>
<groupId>com.englishcode.springboot</groupId>
<artifactId>020-springboot-dubbo-interface</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

对应的application.properties

#设置内嵌tomcat端口号
server.port=8082
server.servlet.context-path=/

#dubbo配置
spring.application.name=022-springboot-dubbo-consumer
#指定注册中心,使用的是zookeeper
spring.dubbo.registry=zookeeper://127.0.0.1:2181

对应的启动文件:

package com.englishcode.springboot;

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

@SpringBootApplication
@EnableDubboConfiguration //开启dubo的配置
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}

}

对应的controller

package com.englishcode.springboot.service;

import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
* @author cyl
* @version 1.0
* @date 2020/10/27 11:21
*/
@Controller
public class StudentController {

@Reference(interfaceClass = StudentService.class,version = "1.0.0",check = false) //相当于从注册中心要引用哪个方法
private StudentService studentService;
@RequestMapping("")
public @ResponseBody Object studentCount(){
Integer all = studentService.queryAllStudentCount();
return "学生总人数:"+all;
}
}

注意:在配置文件中设置的那个server.port不能相同会冲突,代码中已经设置为不相同了。

开始运行:
运行步骤:注册中心(zookeeper)运行,然后运行服务提供者,最后运行服务消费者,然后通过网页访问查看是否成功。
第一步,zookeeper运行起来如下:

Springboot+dubbo+zookeeper简单项目的使用。_spring_09


这就代表运行成功了第二步:运行服务提供者:

Springboot+dubbo+zookeeper简单项目的使用。_java_10


第三步:运行服务消费者

Springboot+dubbo+zookeeper简单项目的使用。_zookeeper_11


最后一步:访问网页

Springboot+dubbo+zookeeper简单项目的使用。_java_12

完美结束,你,学会了吗

上一篇:IDEA Eval Reset 使用方法
下一篇:没有了
网友评论