IT实战联盟博客:http://blog.100boot.cn

上一篇:SpringBoot+zk+dubbo架构实践(一):本地部署zookeeper

前言

这是第二篇了,本篇我们完成两件事情。
1、搭建SpringBoot 框架;
2、基于spring boot框架访问zookeeper。

搭建SpringBoot框架

其实之前“IT实战联盟”已经出了该系列文章,今天我们简单搭建一下(详细的步骤可以参考架构实战篇(一)-Spring Boot+MyBatis基础架构搭建)

基于开发工具(IntelliJ IDEA),创建名为zkboot的Maven工程

项目目录

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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.10.RELEASE</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.itunion.zkboot</groupId><artifactId>zkboot</artifactId><version>1.0-SNAPSHOT</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><maven.test.skip>true</maven.test.skip><aliyun.oss.version>3.1.0</aliyun.oss.version></properties><repositories><repository><id>clojars</id><url>http://clojars.org/repo/</url></repository></repositories><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.12</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>1.3.2</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><finalName>zkboot</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- 打war包用,maven打包的时候告诉maven不需要web.xml,否刚会报找不到web.xml错误 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>2.1.1</version><configuration><failOnMissingWebXml>false</failOnMissingWebXml></configuration></plugin></plugins></build></project>

备注:groupId、artifactId 根据自己需要修改

application.properties

#设置服务端口
server.port=8089
server.context-path=/zkboot

Application 启动入口

package com.itunion.zkboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.support.SpringBootServletInitializer;
/*** 启动入口* @author lin* @date 2018年06月05日14:21:49*/@SpringBootApplicationpublic class Application extends SpringBootServletInitializer {
public static void main(String[] args) throws Exception {SpringApplication.run(Application.class, args);}}

RestZkController 获取设置的zookeeper node节点信息方法

package com.itunion.zkboot.web.controller;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;/*** Created by lin on 2018年06月05日14:23:36*/@RestControllerpublic class RestZkController {
@RequestMapping(value = "/zkGet",method = RequestMethod.GET)
public String zkGet(){Watcher watcher= new Watcher(){
            public void process(WatchedEvent event) {System.out.println("receive event:"+event);}};String value = null;
        try {
            final ZooKeeper zookeeper = new ZooKeeper("127.0.0.1:2181", 999999, watcher);
            final byte[] data = zookeeper.getData("/node_1", watcher, null);value = new String(data);zookeeper.close();}catch(Exception e){e.printStackTrace();}
        return "获取 node_1 节点值为 [" + value + "]";}
}

启动项目并测试

访问地址:http://127.0.0.1:8089/zkboot/zkGet
备注:大家要保证 zookeeper 服务正常启动,并且创建了node_1 节点和值,如果没有可以参考上一篇文章!

执行结果

备注

简单的SpringBoot集成zookeeper已经完成了,如果可以深入了解可以继续自行深入学习。

关注我们

IT实战联盟博客:http://blog.100boot.cn

更多精彩内容请关注“IT实战联盟”公*众*号,如果需要源码的话可以关注公众号留言(zkboot源码+邮箱),也可以加入交流群和作者互撩哦~~~

SpringBoot+zk+dubbo架构实践(二):SpringBoot 集成 zookeeper相关推荐

  1. redis 登录_Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper

    Redis集群架构 [课程介绍] Redis是现在使用为广泛的NoSQL数据库技术,其自身不仅拥有着良好的操作性能,也被广泛的应用于各种集群架构的数据整合处理之中,而本课程将通过Redis的核心作用, ...

  2. 基于SOA架构集成spring-boot+mybatis+dubbo+Druid+zookeeper

    2019独角兽企业重金招聘Python工程师标准>>> 本来是给公司搭建的一个基础框架,但公司因为开发时间问题不用了,所以就个记录. 总结下在搭建这个基础框架 首先,整个系统架构是S ...

  3. SpringBoot与Dubbo的集成

    简介 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以 及 SOA 服务治理方案.简单的说,dubbo 就是个服务框架,如果没有分布式的需求,其实 是不需要用 ...

  4. SpringBoot(二)集成支付宝 - 电脑网站支付和查询账单案例

    一.简介 电脑支付常用于电商和后台管理系统的账户充值等场景. 电脑网站支付 文档 电脑网站支付流程图 项目源代码(含数据库):码云Gitee 二.集成步骤 0.创建应用.配置密钥 集成前需要先创建应用 ...

  5. 【自撰】Springboot集成Zookeeper和Dubbo

    Springboot集成Zookeeper和Dubbo <!--springBoot起步依赖--><dependency><groupId>org.springfr ...

  6. Springboot 整合 Dubbo/ZooKeeper你不知道的那点事,大神必修课

    "看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一想,都没有什么大不了的.这能帮助自己在遇到挫折时稳定心态,想得更开." – <腾讯 ...

  7. Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔 ...

  8. 【SpringBoot整合Dubbo和Zookeeper】

    本笔记内容为狂神说SpringBoot集成Dubbo和Zookeeper部分 目录 一.Dubbo dubbo基本概念 调用关系说明 二.Dubbo环境搭建 三.Window下安装zookeeper ...

  9. 爱奇艺在 Dubbo 生态下的微服务架构实践

    作者 | 周晓军  爱奇艺中间件团队负责人 导读:本文整理自作者于 2020 年云原生微服务大会上的分享<爱奇艺在 Dubbo 生态下的微服务架构实践>,重点介绍了爱奇艺在 Dubbo.S ...

  10. SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统

    QUESTIONl:SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统? ANSWER: 一:创建项目模块 1.1.创建一个Empty Project 名称:Dubbo 1.2. ...

最新文章

  1. oracle设置缓存大小设置多少,【数据库类※从V$DB_CACHE_ADVICE中设置数据缓冲大小※】...
  2. linux信号使用,linux信号使用注意事项
  3. java数据集成是什么_数据集成 - BlueDavy之技术Blog - BlogJava
  4. STM32中常用的C语言知识点,开始复习!
  5. 实力登场!移动云技术内核2.0 四大全新升级!
  6. 手机User-Agent大全(Android爬虫)
  7. linux内核之kfifo队列
  8. Android自定义控件学习(七)-------优化视图
  9. 编译lua5.3.2报错提示libreadline.so存在未定义的引用解决方法
  10. Jenkins 官网文档翻译汇总
  11. java.io.InvalidClassException
  12. 借助创客匠人玩转视频号
  13. android添加本地视频播放器,找到令人满意的Android本地视频播放器是如此困难吗?...
  14. 10月书讯(上) | 小长假我读这些新书
  15. IO第二天 低级流 缓冲流BOS 对象流OOS
  16. GitHub clone: clone succeeded, but checked failed
  17. Windows10下自定义桌面快捷方式图标--以Spyder为例
  18. IO流---基础 (附相对路径)
  19. 利用VBScript连接mysql数据库_过路老熊_新浪博客
  20. python算法—1234能组成不重复3位数

热门文章

  1. TCP-IP 用户态编程
  2. 基于JWT前后端token认证
  3. Linux内核驱动之主次编号
  4. SFML图形库学习:环境部署
  5. Hadoop Partitioner 实战详解
  6. 百度地图json_R: 民政部官网市级行政地图的绘制
  7. poi 拆分带图片的word_POI导出简单的带有图片的Word文档
  8. [礼仪大赛/模特比赛策划方案]现场场景描述
  9. db powerdesigner设计mysql数据库表
  10. mysql between 边界