springCloud zookeeper整合,Java Zookeeper微服务整合
================================
©Copyright 蕃薯耀 2021-03-08
http://fanshuyao.iteye.com/
一、Zookeeper的安装和使用
详情见:
https://www.iteye.com/blog/fanshuyao-2517221
二、springCloud zookeeper整合-服务提供者
1、pom.xml引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> <version>2.2.4.RELEASE</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.4</version> </dependency>
2、application.properties文件配置
server.port=8611 #zookeeper的服务区分大小写 spring.application.name=SPRINGCLOUD-ZK-CLIENT-SERVICE #zookeeper连接地址 spring.cloud.zookeeper.connect-string=192.168.170.14:2181 #服务实例ID spring.cloud.zookeeper.discovery.instance-id=${spring.application.name}
3、启动类
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringCloudZkClient8611Application { public static void main(String[] args) { SpringApplication.run(SpringCloudZkClient8611Application.class, args); } }
4、服务提供类
import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class ZkClientController { @Value("${server.port}") private String serverPort; @RequestMapping("/zk") public Result zk() { return Result.ok("端口:" + serverPort); } }
5、返回结果类
import java.util.Date; import cn.hutool.core.date.DateUtil; public class Result { public static final String SUCCESS = "操作成功。"; public static final String FAILURE = "操作失败!"; private boolean result; private String timestamp; private String msg; private Object datas; private Result() {} public static Result ok() { return Result.ok(SUCCESS, null); } public static Result ok(Object datas) { return Result.ok(SUCCESS, datas); } public static Result okMsg(String msg) { return Result.ok(msg, null); } public static Result ok(String msg, Object datas) { Result result = new Result(); result.setResult(true); result.setTimestamp(DateUtil.formatDateTime(new Date())); if(msg == null || msg == "" || msg.trim() == "") { result.setMsg(SUCCESS); }else { result.setMsg(msg); } result.setDatas(datas); return result; } public static Result fail() { return Result.fail(FAILURE, null); } public static Result failMsg(String msg) { return Result.fail(msg, null); } public static Result fail(Object datas) { return Result.fail(FAILURE, datas); } public static Result fail(String msg, Object datas) { Result result = new Result(); result.setResult(false); result.setTimestamp(DateUtil.formatDateTime(new Date())); if(msg == null || msg == "" || msg.trim() == "") { result.setMsg(FAILURE); }else { result.setMsg(msg); } result.setDatas(datas); return result; } public boolean isResult() { return result; } public void setResult(boolean result) { this.result = result; } public String getTimestamp() { return timestamp; } public void setTimestamp(String timestamp) { this.timestamp = timestamp; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getDatas() { return datas; } public void setDatas(Object datas) { this.datas = datas; } public static void main(String[] args) { } }
三、springCloud zookeeper整合-服务消费者
1、pom.xml引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> <version>2.2.4.RELEASE</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.4</version> </dependency>
2、application.properties配置
server.port=8621 spring.application.name=springCloud-zk-web spring.cloud.zookeeper.connect-string=192.168.170.14:2181 spring.cloud.zookeeper.discovery.instance-id=${spring.application.name}
3、启动类
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringCloudZkWeb8621Application { public static void main(String[] args) { SpringApplication.run(SpringCloudZkWeb8621Application.class, args); } }
4、RestTemplate配置类
import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration public class RestConfig { //@LoadBalanced实现负载均衡 @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } }
5、Controller请求类
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestController public class ZkController { //zookeeper的服务区分大小写:No instances available for SPRINGCLOUD-ZK-CLIENT-SERVICE private String serviceUrl = "http://SPRINGCLOUD-ZK-CLIENT-SERVICE"; @Autowired private RestTemplate restTemplate; @RequestMapping(value="/getzk", produces = MediaType.APPLICATION_JSON_VALUE) public Result getzk() { Result result = restTemplate.getForObject(serviceUrl + "/zk", Result.class); return result; } }
6、结果返回类(省略,见上面服务提供者结果返回类)
(如果文章对您有所帮助,欢迎捐赠,^_^)
================================
©Copyright 蕃薯耀 2021-03-08
http://fanshuyao.iteye.com/
相关推荐
除此之外,还通过整合SpringMVC+SpringBoot+Mybatis构建一个可用的基于SpringCloud的微服务工程将上述技术组件逐步落地,让大家看得懂做得出学得会。 00、尚硅谷_SpringBoot_源码、课件 01.尚硅谷_SpringCloud_前提...
SpringCloud微服务课程说明 1 网站架构演变过程 1 传统架构 1 分布式架构 1 SOA架构 1 微服务架构 2 微服务架构产生的原因 2 漫谈微服务架构 2 什么是微服务 2 微服务架构特征 3 微服务架构如何拆分 3 ...
断路器示意图 SpringCloud Netflix实现了断路器库的名字叫Hystrix. 在微服务架构下,通常会有多个层次的服务调用. 下面是微服架构下, 浏览器端通过API访问后台微服务的一个示意图: hystrix 1 一个微服务的超时...
spring boot 整合kafka rabbitmq activemq spring 系列 bean加载 spring 常用注解 spring boot application 相关 spring rest 相关 spring mvc spring boot 邮箱,定时任务 spring webflux spring bot redis 相关 ...
SpringBoot是企业级开发的整体整合解决方案,特别用于快速构建微服务应用,旨在用最简单的方式让开发人员适应各种开发场景。...分布式(整合Zookeeper/dubbo,整合SpringCloud),SpringBoot应用监管。
这个项目架构由自己建造使用架构为主流的Spring Cloud Alibaba主要用于尝试新技术并进行整合测试,最终用于实践 环境 杰克1.8 Maven 3.6.3 工具 想法2020.3 吉特邮差导航外壳MobaXterm Mobaxterm redis-desktop-...
D2ADADADMIN.D2ADADMIN.D2ADADADMIN.D2ADADMIN.D2ADADMIN.D2ADADMIN.D2ADADMIN.D2ADMIN.D2.D2.D2.SpringBoot2.0.5.5.release.release.release....Cloud.SpringCloud.SpringCloud.SpringCloud.SpringCloud19979载JDK8型...
Yan项目简介(使用说明)注:全新微服务项目lion已经逐步开发,基于SpringCloud的一整套方案,详情请查看本项目是一整合整合Dubbo + Zookeeper + SpringMVC + Spring + MyBatis支持分布式的高效率快速开发RPC框架,...
微服务SpringCloud 安全框架(Shiro、SpringSecurity) 消息中间件 ActiveMQ的使用 搜索引擎 非关系型数据库 分布式技术Dubbo、Zookeeper Linux与项目部署 设计模式 桥接模式 组合模式 外观模式 享元模式 模版方法...
0022--SpringCloud.zip ├─0023--Zookeeper实战分布式锁.zip ├─0024--Dubbo.zip ├─0025--分布式定时job-xxljob.zip ├─0026--深入理解Java虚拟机.zip ├─0027--垃圾回收机制算法.zip ├─0028--MySQL优化入门...
java8,maven3 :整合各种组件 :对微服务提供支持 :基础业务框架 :物联网通信(mqtt,udp) :redis客户端 :事件驱动 :消息中间件 :快速环境建造,持续交付 在使用本项目之前,你应该对以上技术有所...