前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springboot+dubbo+zookeeper简单项目的使用。

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

作者头像
知识浅谈
修改2022-06-16 22:26:06
8850
修改2022-06-16 22:26:06
举报
文章被收录于专栏:分享学习分享学习

项目全部源码及其zookeeper安装包,

公众号:知识浅谈 后台回复“springboot集成dubbo”获取下载连接。

  • 第一步:获取完上边的项目之后,先安装zookeeper,
    • 安装zookeeper,只需要在zookeeper的跟文件夹下创建一个data文件夹,然后在conf文件夹下复制zoo_sample.cfg,粘贴到和zoo_sample 相同目录下重命名为zoo.cfg
    在这里插入图片描述
    在这里插入图片描述

    然后修改zoo.cfg中的dataDir后边的地址为你刚才创建的data文件夹的绝对路径

    在这里插入图片描述
    在这里插入图片描述

    然后就可以在bin文件夹下的zkServer.cmd,启动注册中心了,当然,等你下边项目写完之后,先运行这个文件,再运行项目就ok了

    在这里插入图片描述
    在这里插入图片描述
  • 第二步,项目部署
  • 先给出我的文件夹结构,结合着创建项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第一个项目:建立对应的用于接口的项目,因为接口在服务提供者和服务消费者都用的到(服务提供者用接口实现,服务消费者使用接口调用服务提供者实现的方法) 不选哪个create直接点击下一步创建即可,名字结合我项目中的或者上边文件结构中的。

在这里插入图片描述
在这里插入图片描述

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

代码语言:javascript
复制
package com.englishcode.springboot.service;

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

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

在这里插入图片描述
在这里插入图片描述

名字同样参考文件结构 对应的pom.xml文件:

代码语言:javascript
复制
<?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

代码语言:javascript
复制
#设置内嵌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

对应的启动文件:

代码语言:javascript
复制
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实现文件

代码语言:javascript
复制
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和上边的差不多,以来都一样,把对应的名字什么改一下就行,源码如下
代码语言:javascript
复制
<?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

代码语言:javascript
复制
#设置内嵌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

对应的启动文件:

代码语言:javascript
复制
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

代码语言:javascript
复制
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运行起来如下:

这就代表运行成功了
这就代表运行成功了

这就代表运行成功了

第二步:运行服务提供者:

在这里插入图片描述
在这里插入图片描述

第三步:运行服务消费者

在这里插入图片描述
在这里插入图片描述

最后一步:访问网页

在这里插入图片描述
在这里插入图片描述

完美结束,你,学会了吗

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 公众号:知识浅谈 后台回复“springboot集成dubbo”获取下载连接。
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档