SpringBoot+zk+dubbo架构实践(二):SpringBoot 集成 zookeeper
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相关推荐
- redis 登录_Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper
Redis集群架构 [课程介绍] Redis是现在使用为广泛的NoSQL数据库技术,其自身不仅拥有着良好的操作性能,也被广泛的应用于各种集群架构的数据整合处理之中,而本课程将通过Redis的核心作用, ...
- 基于SOA架构集成spring-boot+mybatis+dubbo+Druid+zookeeper
2019独角兽企业重金招聘Python工程师标准>>> 本来是给公司搭建的一个基础框架,但公司因为开发时间问题不用了,所以就个记录. 总结下在搭建这个基础框架 首先,整个系统架构是S ...
- SpringBoot与Dubbo的集成
简介 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以 及 SOA 服务治理方案.简单的说,dubbo 就是个服务框架,如果没有分布式的需求,其实 是不需要用 ...
- SpringBoot(二)集成支付宝 - 电脑网站支付和查询账单案例
一.简介 电脑支付常用于电商和后台管理系统的账户充值等场景. 电脑网站支付 文档 电脑网站支付流程图 项目源代码(含数据库):码云Gitee 二.集成步骤 0.创建应用.配置密钥 集成前需要先创建应用 ...
- 【自撰】Springboot集成Zookeeper和Dubbo
Springboot集成Zookeeper和Dubbo <!--springBoot起步依赖--><dependency><groupId>org.springfr ...
- Springboot 整合 Dubbo/ZooKeeper你不知道的那点事,大神必修课
"看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一想,都没有什么大不了的.这能帮助自己在遇到挫折时稳定心态,想得更开." – <腾讯 ...
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔 ...
- 【SpringBoot整合Dubbo和Zookeeper】
本笔记内容为狂神说SpringBoot集成Dubbo和Zookeeper部分 目录 一.Dubbo dubbo基本概念 调用关系说明 二.Dubbo环境搭建 三.Window下安装zookeeper ...
- 爱奇艺在 Dubbo 生态下的微服务架构实践
作者 | 周晓军 爱奇艺中间件团队负责人 导读:本文整理自作者于 2020 年云原生微服务大会上的分享<爱奇艺在 Dubbo 生态下的微服务架构实践>,重点介绍了爱奇艺在 Dubbo.S ...
- SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统
QUESTIONl:SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统? ANSWER: 一:创建项目模块 1.1.创建一个Empty Project 名称:Dubbo 1.2. ...
最新文章
- oracle设置缓存大小设置多少,【数据库类※从V$DB_CACHE_ADVICE中设置数据缓冲大小※】...
- linux信号使用,linux信号使用注意事项
- java数据集成是什么_数据集成 - BlueDavy之技术Blog - BlogJava
- STM32中常用的C语言知识点,开始复习!
- 实力登场!移动云技术内核2.0 四大全新升级!
- 手机User-Agent大全(Android爬虫)
- linux内核之kfifo队列
- Android自定义控件学习(七)-------优化视图
- 编译lua5.3.2报错提示libreadline.so存在未定义的引用解决方法
- Jenkins 官网文档翻译汇总
- java.io.InvalidClassException
- 借助创客匠人玩转视频号
- android添加本地视频播放器,找到令人满意的Android本地视频播放器是如此困难吗?...
- 10月书讯(上) | 小长假我读这些新书
- IO第二天 低级流 缓冲流BOS 对象流OOS
- GitHub clone: clone succeeded, but checked failed
- Windows10下自定义桌面快捷方式图标--以Spyder为例
- IO流---基础 (附相对路径)
- 利用VBScript连接mysql数据库_过路老熊_新浪博客
- python算法—1234能组成不重复3位数