SpringBoot+zk+dubbo架构实践(二):SpringBoot 集成 zookeeper

禅あ思 2018-06-05 14:42:42 ⋅ 1178 阅读


上一篇: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实战联盟”公众号,如果需要源码的话可以关注公众号留言(zkboot源码+邮箱),也可以加入交流群和作者互撩哦~~~



全部评论: 0

    我有话说:

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

    SpringBoot+zk+dubbo架构实践系列实现目标:自己动手搭建微服务架构

    SpringBoot+zk+dubbo架构实践(三):部署Dubbo-admin管理平台

    本系列架构实践不做深入探讨,主旨是带领大家能够快速踏入微服务架构门槛,能够轻松的搭建一套属于自己的微服务架构。——写代码我们是认真滴!

    SpringBoot+zk+dubbo架构实践(四):sb+zk+dubbo框架搭建(内附源码GitHub地址)

    本篇案例模拟了一个provider服务提供方和PC、Web两个服务消费方内附GitHub源码......

    SpringBoot+zk+dubbo架构实践(五):搭建微服务电商架构(内附GitHub地址)

    集成了mybatis和swagger让接口可视化并完成了一些增删改查的基础业务,对了还有个分页查询!

    架构实战篇(十):Spring Boot 集成 Dubbo

    Dubbo是阿里巴巴SOA服务化治理方案的核心框架,一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案。

    微服务架构实战篇:快速入手SpringBoot 2.0,欢迎入坑哦~~~

    SpringBoot 2.0 基本要求Java最低要求8以上,不再支持Java 6 和 7等低版本。

    传统保险企业基于 Dubbo 的微服务实践

    Dubbo 社区开发者日深圳站的现场分享

    「尝鲜」SpringBoot 快速整合Swagger 3.0

    第一步:Maven引入Swagger3.0 starter依赖 Maven项目中引入springfox-boot-starter依赖: <dependency> <groupId>io.springfox<...

    服务化改造实践 | 如何在 Dubbo 中支持 REST

    随着微服务的流行以及多语言互操作诉求的日益增多,在 Dubbo 中暴露 REST 服务变成了一个不容忽视的诉求。

    【开源资讯】Spring Boot 2.4.0.M4 发布

    Spring Boot 2.4.0 的第四个里程碑版本发布了,可以从里程碑仓库获取。此版本包含 145 项更新内容,亮点如下:1、改进故障分析器(Failure Analyzer)2、能够发布由 Maven 和 Gradle ...

    架构实战篇(九):Spring Boot 集成 RocketMQ

    快速集成阿里开源消息队列 RocketMQ

    精品推荐:Nacos 发布 v0.6.0 版本,支持 Dubbo 和 Docker 部署

    阿里巴巴微服务开源项目Nacos发布 v0.6.0 版本,该版本开始支持 Dubbo的服务发现和配置管理,并针对 Docker 部署提供了官方的 Docker 镜像,以及优化了Nacos 控制台的

    Dubbo Admin重构版-v0.1发布

    为了提升 Dubbo 里程碑版本2.7.0的使用体验,去年年中启动了 Dubbo Admin 的重构计划

    【超全教程】SpringBoot 2.3.x 分层构建 Docker 镜像实践

    作者:超级小豆丁 http://www.mydlq.club/article/98/ 目录 什么是镜像分层 SpringBoot 2.3.x 新增对分层的支持 创建测试的 SpringBoot

    架构实战篇(十六):Spring Boot Assembly服务化打包

    使用assembly来打包springboot微服务项目,让发布更简单

    Springboot项目redisTemplate实现轻量级消息队列

    redisTemplate实现轻量级消息队列,代码奉上

    架构实战篇(十一):Spring Boot 集成企业级搜索引擎 SolrCloud

    Solr是以Lucene为基础实现的文本检索应用服务。Solr部署方式有单机方式、多机Master-Slaver方式、Cloud方式。

    微服务架构实战篇(六):Spring boot2.x 集成阿里大鱼短信接口详解与Demo

    Spring boot2.x 集成阿里大鱼短信接口,发送短信验证码及短信接口详解。