springboot应用访问zookeeper的流程
作者:程序员欣宸 发布时间:2021-11-28 00:34:56
本文讲解了如果通过springboot快速开发web服务,并读取zookeeper的过程,为后续的“在docker下部署dubbo服务“做准备工作,本文相关的操作都在mac上进行的,文中有些目录和windows有些区别,请各位注意对应自己的电脑做对应的修改。
本地部署zookeeper
首先去官网下载zookeeper包,推荐使用稳定版3.3.6
下载后在本地解压,进入zookeeper-3.3.6/conf目录下,将zoo_sample.cfg文件改名为zoo.cfg,再用文本编辑器打开这个文件,修改如下红框位置的内容,改成本地一个可以访问的已有目录:
打开命令行窗口,进入zookeeper-3.3.6/bin目录,windows下执行zkServer.cmd status,mac和linux下执行./zkServer.sh status,该命令是查看当前zookeeper的状态,由于还没有启动zookeeper,我们会看到如下错误信息:
现在启动zookeeper吧,windows下执行zkServer.cmd start,mac和linux下执行./zkServer.sh start,启动信息如下:
这时候输入zkServer.cmd status,看到的结果如下:
可以看到zookeeper正在以standalone模式运行中;
现在我们用客户端命令来试试服务,windows下执行zkCli.cmd, mac和linux下执行./zkCli.sh,连接上服务端:
执行create /node1 abc创建一个znode,对应的value是"abc",再执行get /node1可以查看/node_1的value,如下图:
关于zookeeper的安装和验证就写到这里了,接下来我们开始开发应用来访问这个zookeeper节点的数据。
开发基于spring boot的应用
打开IntelliJ IDEA CE,创建名为zookeeperdemo的Maven工程,指定模板,如下图:
工程创建后要做的就是修改pom,增加库的依赖,已经添加配置文件,写java代码,具体的源码请在我的git上下载,链接
源码在以下位置:
源码下载下来后,可以通过Intellij IEDA导入,导入的时候以下红框中的选项需要选中,这样才能导入maven工程:
整个工程非常简单,首先是pom文件,依赖的父工程要用spring-boot-starter-parent:
还要添加对springboot的依赖,以及build时使用springboot对应的插件:
在resource目录增加application.properties文件配置一些重要的参数,例如日志目录,web server端口等,如下图:
最后是写java代码,由于只是个demo,这里的代码非常简单,一个入口,一个controller,入口如下:
controller如下,是一个简单的rest响应,链接zookeeper取得znode节点的值然后返回,注意由于申明了RestController,所以返回的内容非页面而是字符串:
至此,编码结束,来试试吧,如下图新建一个命令:
选择maven:
命令内容为clean package -U -Dmaven.test.skip=true spring-boot:run,如下:
命令创建完成后,点击“run“执行:
此时打开浏览器,输入http://localhost:2222/zkget即可得到我们在zookeeper上设置的/node_1的value,如下图:
至此,基于spring boot框架访问zookeeper的demo开发以及结束,后面我们尝试通过Dockerfile的方式制作zookeeper的镜像,然后通过docker的容器提供zookeeper的服务。
来源:https://xinchen.blog.csdn.net/article/details/101369239
猜你喜欢
- 1. 布局: GridBagLayout官方JavaDocsApi: java.awt.GridBagLayoutGridBagLayout
- 一、ArrayListArrayList是一个可以处理变长数组的类型,这里不局限于“数”组,ArrayList是一个泛型类,可以存放任意类型
- C#用户定义类型转换•用于自定义类和结构能够进行隐式转换和显示转换.例如:将一个自定义类类型转换成整型,浮点型等,反之亦然.C#提供隐式转换
- 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示U
- 同步日志的业务流程处理和日志打印是在同一个线程,日志打印的过程实际上是写文件IO的过程,这个过程是相对耗时的,并且会阻塞主线程的执行,只有日
- 说明:本文记录如何在Idea下,利用Maven管理项目,并整合SSM(Spring + Spring MVC +Mybatis)框架,实现简
- 本篇我们讲解下使用spring创建bean的几种方式,创建bean,也可以叫组件注册,就是把单例bean放到spring容器中。我们定义如下
- 步骤一:1.查看Eclipse版本的eclipse--help--About Eclipse,在Eclipseplatfrom那行的Vers
- springboot用以进行web项目开发的便捷性,本文不再赘述,主要是想将工作中基于springboot与gradle的多模块项目的构建经
- 前言本文主要给大家介绍了关于spring mvc注解@ModelAttribute妙用的相关内容,分享出来供大家参考学习,下面话不多说了,来
- 这是一个可以从乱码文本中得到正确的原始文本的程序,其基于的原理在于错误的编码往往导致位补充,因此正确的文本使用的字节数应该是最少的(之一)。
- 在java开发的实际场景中,我们经常要对时间进行格式化处理,但是每次获取开发中自己需要的格式都要重新写一个方法,这样的代码看起来是非常的笨重
- ES是一个基于Lucene的分布式全文搜索服务器,和SQL Server的全文索引(Fulltext Index)有点类似,都是基于分词和分
- 一、简介1.Apollo 是什么?Apollo(阿波罗)是携程框架部门研发的分布式配置中心。服务端基于Spring Boot和Spring
- 从刚接触c#编程到现在,差不多快有一年的时间了。在学习过程中,有很多地方始终似是而非,直到最近才弄明白。本文将先介绍用法,后评断功能。一、委
- 一、题目描述题目实现:使用网络编程时,需要通过Socket传递对象。二、解题思路创建一个类:Student,实现序列化Student类包含两
- 1.导入jar包: <!--jmsTemplate--> <dependency> <
- Properties属性文件中的值有等号和换行Spring配置Shiro的过滤器时,有个filterChainDefinitions属性,值
- 环绕通知:它是spring框架为我们提供的一种可以在代码中手动控制增强部分什么时候执行的方式。问题:当我们配置了环绕通知之后,增强的代码执行
- java web返回中文乱码ajax返回中文乱码问题 在浏览器按F12查看数据包可以看到charset为 iso-8859-1,这是spri