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/
相关推荐
**SpringCloud与Zookeeper整合** SpringCloud为Zookeeper提供了一个名为`spring-cloud-starter-zookeeper`的启动器,允许开发者轻松地将Zookeeper集成到SpringBoot应用中。首先,我们需要在项目中引入依赖: ```xml...
Spring Cloud Zookeeper则将Zookeeper的这些功能集成到了Spring Boot和Spring Cloud中,使得开发者可以更方便地在Java微服务架构中运用Zookeeper。 服务发现是微服务架构的关键一环。Spring Cloud Zookeeper提供了...
3. **集成Spring与Zookeeper**:在Spring Boot项目中引入Spring Cloud Zookeeper依赖,配置Zookeeper的连接信息。创建服务提供者和服务消费者,利用Spring Cloud Zookeeper的API进行服务注册和发现。 4. **集成...
本文将深入探讨Spring Cloud与Zookeeper的整合,以及如何在实际项目中运用这一组合。 **1. Spring Cloud简介** Spring Cloud是基于Spring Boot实现的一系列微服务开发工具集,它为开发者提供了在分布式系统(如配置...
SpringCloud是Java领域中广泛使用的微服务框架,它基于Spring Boot构建,旨在简化分布式系统开发。SpringCloud提供了一整套微服务解决方案,包括服务注册与发现、配置中心、全链路监控、服务网关、负载均衡、熔断器...
项目集成了Eureka/Consul/Zookeeper服务注册发现、Zuul服务网关、Hystrix熔断器、Ribbon/Feign负载均衡等Spring Cloud组件,并整合了Elasticsearch、RabbitMQ、Redis等中间件,实现了分布式锁和权限管理功能。...
在IT行业中,Spring Cloud Alibaba是一款备受推崇的微服务框架,它为开发者提供了构建分布式系统的一系列工具和服务。这个“springcloudalibaba微服务dubbo+sentinel+gateway+zookeeper+nacos的demo”压缩包文件,...
总之,理解和掌握Dubbo、Spring Boot和Spring Cloud对于想要在微服务领域发展的IT专业人员来说至关重要。通过深入学习并熟练运用这些技术,可以提升个人在面试中的竞争力,为未来的职场发展奠定坚实基础。
接下来,我们将讨论如何将Zookeeper整合到Spring Cloud项目中。首先,需要在项目的pom.xml文件中添加Spring Cloud Zookeeper的相关依赖。然后,配置application.yml或application.properties,设置Zookeeper的连接...
本文档总结了 Java 微服务考试试题的知识点,涵盖了 Spring 全家桶技术、Redis、SpringBoot、Dubbo 协议、ElasticSearch、Solr、数据库事务特性、微服务技术栈等多个方面的知识点。 Spring 全家桶技术 * ...
Dubbo更专注于提供高性能的Java RPC调用,而SpringCloud则是通过SpringBoot简化微服务架构的基础设施开发。 - **架构设计**:Dubbo基于远程方法调用(RPC),适用于Java生态系统的微服务架构;而SpringCloud基于...
Spring Cloud 包括服务开发(Spring Boot、Spring、Spring MVC)、服务...SpringCloud Gateway、Zuul)、服务监控(SpringBoot Admin、Turbine)、全链路追踪(Zipkin)、服务部署(Docker、OpenStack、Kubernetes)...
SpringCloud和Dubbo都是在Java社区中广泛使用的技术栈,它们被设计用来解决微服务架构中的一些核心问题,如服务发现、配置管理、负载均衡、容错机制等。它们之间的选择依赖于特定的业务需求、技术栈、团队经验等因素...
这些代码提供了详细的实现细节,帮助开发者理解如何将SpringCloud和Dubbo整合,以及如何构建一个完整的微服务架构的商城系统。 总的来说,这个项目提供了一个很好的学习案例,展示了如何利用SpringCloud和Dubbo的...
SpringCloud 是一个全面的微服务解决方案集合,它旨在简化微服务架构的开发和管理。SpringCloud 基于 SpringBoot,适用于 JDK 1.8 及以上版本,为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由...
Spring Cloud是一个基于Spring Boot实现的一站式微服务解决方案,它整合了多个成熟的第三方微服务组件,使得开发者可以轻松地构建和部署微服务应用。Spring Cloud的核心价值在于: 1. **简化分布式系统基础设施的...
《SpringCloud与Zookeeper整合应用详解》 在分布式系统中,服务发现和服务治理是至关重要的环节,SpringCloud作为微服务的主流框架,提供了丰富的组件来解决这些问题。而Zookeeper作为一个强大的分布式协调系统,常...
# SpringCloud课堂笔记知识点解析 ## 一、微服务概述 ...综上所述,SpringCloud因其全面的功能覆盖、良好的社区支持以及较低的学习门槛,在众多微服务框架中脱颖而出,成为许多企业和开发者首选的微服务框架。
本文将深入探讨Spring Cloud Txlcn的核心概念、工作原理以及如何整合到Spring Cloud项目中。 1. **分布式事务的概念** 在分布式系统中,事务需要满足ACID(原子性、一致性、隔离性和持久性)属性,以确保数据的...