`
阅读更多

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/

1
1
分享到:
评论

相关推荐

    SpringCloud——Zookeeper(注册中心)

    **SpringCloud与Zookeeper整合** SpringCloud为Zookeeper提供了一个名为`spring-cloud-starter-zookeeper`的启动器,允许开发者轻松地将Zookeeper集成到SpringBoot应用中。首先,我们需要在项目中引入依赖: ```xml...

    spring-cloud-zookeeper:Spring Cloud Zookeeper

    Spring Cloud Zookeeper则将Zookeeper的这些功能集成到了Spring Boot和Spring Cloud中,使得开发者可以更方便地在Java微服务架构中运用Zookeeper。 服务发现是微服务架构的关键一环。Spring Cloud Zookeeper提供了...

    spring+zookeeper+kafka

    3. **集成Spring与Zookeeper**:在Spring Boot项目中引入Spring Cloud Zookeeper依赖,配置Zookeeper的连接信息。创建服务提供者和服务消费者,利用Spring Cloud Zookeeper的API进行服务注册和发现。 4. **集成...

    springcloud2.0-zookeeper.rar

    本文将深入探讨Spring Cloud与Zookeeper的整合,以及如何在实际项目中运用这一组合。 **1. Spring Cloud简介** Spring Cloud是基于Spring Boot实现的一系列微服务开发工具集,它为开发者提供了在分布式系统(如配置...

    59道SpringCloud面试题详解含答案(值得珍藏)

    SpringCloud是Java领域中广泛使用的微服务框架,它基于Spring Boot构建,旨在简化分布式系统开发。SpringCloud提供了一整套微服务解决方案,包括服务注册与发现、配置中心、全链路监控、服务网关、负载均衡、熔断器...

    基于Spring Cloud微服务架构的openapi设计与实现源码

    项目集成了Eureka/Consul/Zookeeper服务注册发现、Zuul服务网关、Hystrix熔断器、Ribbon/Feign负载均衡等Spring Cloud组件,并整合了Elasticsearch、RabbitMQ、Redis等中间件,实现了分布式锁和权限管理功能。...

    springcloudalibaba微服务dubbo+sentinel+gateway+zookeeper+nacos的demo

    在IT行业中,Spring Cloud Alibaba是一款备受推崇的微服务框架,它为开发者提供了构建分布式系统的一系列工具和服务。这个“springcloudalibaba微服务dubbo+sentinel+gateway+zookeeper+nacos的demo”压缩包文件,...

    面试专题-面试人员必看-微服务架构面试专题系列:Dubbo+Spring Boot+Spring Cloud.rar

    总之,理解和掌握Dubbo、Spring Boot和Spring Cloud对于想要在微服务领域发展的IT专业人员来说至关重要。通过深入学习并熟练运用这些技术,可以提升个人在面试中的竞争力,为未来的职场发展奠定坚实基础。

    springcloud20210530.zip

    接下来,我们将讨论如何将Zookeeper整合到Spring Cloud项目中。首先,需要在项目的pom.xml文件中添加Spring Cloud Zookeeper的相关依赖。然后,配置application.yml或application.properties,设置Zookeeper的连接...

    Java微服务考试试题.pdf

    本文档总结了 Java 微服务考试试题的知识点,涵盖了 Spring 全家桶技术、Redis、SpringBoot、Dubbo 协议、ElasticSearch、Solr、数据库事务特性、微服务技术栈等多个方面的知识点。 Spring 全家桶技术 * ...

    白话SpringCloud.pdf

    Dubbo更专注于提供高性能的Java RPC调用,而SpringCloud则是通过SpringBoot简化微服务架构的基础设施开发。 - **架构设计**:Dubbo基于远程方法调用(RPC),适用于Java生态系统的微服务架构;而SpringCloud基于...

    SpringCloud概览_终稿.docx

    Spring Cloud 包括服务开发(Spring Boot、Spring、Spring MVC)、服务...SpringCloud Gateway、Zuul)、服务监控(SpringBoot Admin、Turbine)、全链路追踪(Zipkin)、服务部署(Docker、OpenStack、Kubernetes)...

    SpringCloud和Dubbo的详细解释和比较

    SpringCloud和Dubbo都是在Java社区中广泛使用的技术栈,它们被设计用来解决微服务架构中的一些核心问题,如服务发现、配置管理、负载均衡、容错机制等。它们之间的选择依赖于特定的业务需求、技术栈、团队经验等因素...

    springcloud和dubbo整合实现mall商城系统.zip

    这些代码提供了详细的实现细节,帮助开发者理解如何将SpringCloud和Dubbo整合,以及如何构建一个完整的微服务架构的商城系统。 总的来说,这个项目提供了一个很好的学习案例,展示了如何利用SpringCloud和Dubbo的...

    新版本SpringCloud2学习手册

    SpringCloud 是一个全面的微服务解决方案集合,它旨在简化微服务架构的开发和管理。SpringCloud 基于 SpringBoot,适用于 JDK 1.8 及以上版本,为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由...

    Spring Cloud面试题(2022最新版).docx

    Spring Cloud是一个基于Spring Boot实现的一站式微服务解决方案,它整合了多个成熟的第三方微服务组件,使得开发者可以轻松地构建和部署微服务应用。Spring Cloud的核心价值在于: 1. **简化分布式系统基础设施的...

    springcloud-zookeeper-guoyu

    《SpringCloud与Zookeeper整合应用详解》 在分布式系统中,服务发现和服务治理是至关重要的环节,SpringCloud作为微服务的主流框架,提供了丰富的组件来解决这些问题。而Zookeeper作为一个强大的分布式协调系统,常...

    周阳SpringCloud课堂笔记

    # SpringCloud课堂笔记知识点解析 ## 一、微服务概述 ...综上所述,SpringCloud因其全面的功能覆盖、良好的社区支持以及较低的学习门槛,在众多微服务框架中脱颖而出,成为许多企业和开发者首选的微服务框架。

    spring-cloud-txlcn.rar

    本文将深入探讨Spring Cloud Txlcn的核心概念、工作原理以及如何整合到Spring Cloud项目中。 1. **分布式事务的概念** 在分布式系统中,事务需要满足ACID(原子性、一致性、隔离性和持久性)属性,以确保数据的...

Global site tag (gtag.js) - Google Analytics