手把手spring cloud整合zookeeper搭建微服务

环境配置:JDK8 +IDEA 开发工具

**说明:下面搭建过程基于你本地已经配置好zookeeper

一、先搭建父工程(PS:是可以不搭建父工程的,即每个服务和client都是单独的spring boot项目,也是OK的,搭建父工程纯粹为了将项目放在一起,且pom文件可以少一点而已!)

1、先搭建父工程:spring initial -- 第二步,Type改成Maven Pom,Artifact改成demo-parent,便于理解 -- 引入两个依赖,web和zookeeper-discovery;搭建完后,记得改maven路径

2、再搭建一个服务,也就是provider:在(1)搭建好的demo-parent上右键 -- new -- module -- Spring Initializr -- next -- Artifact改成demo-server -- next,这里是服务端,会有DB的操作,所有引入了mongoDB --next --finish;然后:

完成后吧pom文件的parent改成(1)中父工程的;

改配置文件。用yml形式,配置zookeeper

再随便建个Cintroller,定义一个测试接口

最后Application程序入口添加注解@EnableDiscoveryClient

》》先启动zookeeper,zookeeper后台也要运行jar包才能访问9090端口查看

巨坑之:发现测试接口一直报404,还另外新建了一个项目来对比,发现controller路径放错了,改成和Application同级下,一切OK了!

而zookeeper配置并没有问题,也很简单

3、搭建一个服务消费者:创建过程同(2)里面的,只是Artifact改成demo-client,引入的依赖改成,然后:

完成后吧pom文件的parent改成(1)中父工程的;

改配置文件。用yml形式,配置zookeeper,其中spring.cloud.zookeeper.discovery.register=false,也再ZK UI就不会出现了

定义一个用@FeignClient(value = "server-name")的接口,里面方法对应服务里面提供的方法,且server-name与服务提供里面配置的spring.application.name的值对应,示例如下:

@FeignClient(value = "server yml 文件 spring.application.name 对应的值")
public interface FeignService {

    @RequestMapping("/test")
    String printString(@RequestParam(name="name") String name);
}

再随便建个Controller,定义一个测试接口,接口里面调用接口里面的方法即可,示例如下:

  @Autowired
    FeignService feignService;
  //注意这里client/test是客户端自己定义的调用url,且、且、且千万不能/开头,即/client/test,是会报错的,服务调不通
    @RequestMapping("client/test")
    public String ps(String name){
        return feignService.printString(name);
    }

最后Application程序入口添加注解@EnableDiscoveryClient和@EnableFeignClients

二、要最先启动zookeeper服务,也可以启动zookeeper UI

三、依次启动 server 和 client,再在浏览器调用测试方法,即可查看结果!

原文地址:https://www.cnblogs.com/zz-3m23d-begining/p/11077428.html

时间: 2024-08-27 23:40:14

手把手spring cloud整合zookeeper搭建微服务的相关文章

【译文】用Spring Cloud和Docker搭建微服务平台

by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-microservices.html This blog series will introduce you to some of the foundational concepts of building a microservice-based platform using Spring Cloud

跟着园内spring cloud+.net core搭建微服务架构 服务消费出错问题

http://www.cnblogs.com/longxianghui/p/7561259.html 最近在跟随着园区内的这个博客做服务发现的时候,发觉在vs 上调整了端口后还是无法实现通过,order 服务访问product,一访问 就抛出错误.经过近乎两周的时间 发现,通过 cmd 命令行启动后,可以实现服务消费 .  当然 ,也可按照评论所说的发布到iis上,我没这么发布处理,一来我是觉得不够方便快捷,二来,我是希望脱离iis 运行的 如图:不过在启动前,需要把配置文件拷贝到生成了dll

从 Spring Cloud 开始,聊聊微服务架构实践之路

[编者的话]随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加.在这个背景下,平台的技术架构也完成了从传统的单体应用到微服务化的演进. 系统架构的演进过程 单一应用架构(第一代架构) 这是平台最开始的情况,当时流量小,为了节约成本,并将所有应用都打包放到一个应用里面,采用的架构为 .NET SQL Server: 表示层:位于最外层(最上层),最接近用户.用于显示数据和接收用户输入的数 据,为用户提供一种交互式操作的界面,平台所使用

使用Spring Cloud和Docker构建微服务

什么是Spring Cloud?Spring Cloud 是Pivotal提 供的用于简化分布式系统构建的工具集.Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接器(Service Connector)的概念.云平台连接器是一个接口,需要由云平台提供者进行实现,以便库中的其他模块可以与该云平台协同工作.(更多介绍,可以阅读 InfoQ的这篇文章:http://www.infoq.com/cn/news/2014/06/spring-cloud-platfor

使用 Spring Cloud 和 Docker 构建微服务架构

如何使用Spring Boot.Spring Cloud.Docker和Netflix的一些开源工具来构建一个微服务架构. 本文通过使用Spring Boot.Spring Cloud和Docker构建的概念型应用示例,提供了了解常见的微服务架构模式的起点. 该代码可以在Github上获得,并且在Docker Hub上提供了镜像.您只需要一个命令即可启动整个系统. 我选择了一个老项目作为这个系统的基础,它的后端以前是单一应用.此应用提供了处理个人财务.整理收入开销.管理储蓄.分析统计和创建简单预

【spring cloud】导入一个新的spring boot项目作为spring cloud的一个子模块微服务,怎么做/或者 每次导入一个新的spring boot项目,IDEA不识别子module,启动类无法启动/右下角没有蓝色图标

如题:导入一个新的spring boot项目作为spring cloud的一个子模块微服务,怎么做 或者说每次导入一个新的spring boot项目,IDEA不识别,启动类无法启动,怎么解决 下面一起来走一遍这个流程: 1.将一个spring boot服务导入spring cloud中作为一个子模块 如图:这里有一个现成的spring cloud微服务集群,[如何创建一个spring cloud微服务:https://www.cnblogs.com/sxdcgaq8080/p/9035724.h

从Spring Cloud到Kubernetes的微服务迁移实践

写在前面 要出发周边游(以下简称要出发)是国内知名的主打「周边游」的在线旅行网站,为了降低公司内部各个业务模块的耦合度,提高开发.交付及运维效率,我们在 2017 年就基于 Spring Cloud 完成了公司内部业务微服务化的改造,并在 2019 年实现了 Spring Cloud 至 UK8S 平台的迁移.? 本文从要出发的业务架构.Prometheus JVM 监控.基于 HPA 的峰值弹性伸缩.基于 Elastic 的APM链路跟踪及 Istio 服务治理等方面介绍了我们基于UK8S的

spring cloud 学习(6) - zuul 微服务网关

微服务架构体系中,通常一个业务系统会有很多的微服务,比如:OrderService.ProductService.UserService...,为了让调用更简单,一般会在这些服务前端再封装一层,类似下面这样: 前面这一层俗称为“网关层”,其存在意义在于,将"1对N"问题 转换成了"1对1”问题,同时在请求到达真正的微服务之前,可以做一些预处理,比如:来源合法性检测,权限校验,反爬虫之类... 传统方式下,最土的办法,网关层可以人肉封装,类似以下示例代码: LoginResul

使用 Spring Cloud 和 Docker 构建微服务

该项目主要是对微服务,以及Spring Cloud系统学习的一些总结,使用gitbook写成了书. 探讨的话题主要有: 什么是微服务注册中心Eureka服务提供者服务消费者客户端负载均衡Ribbon简化的Http客户端Feign熔断器Hystrix Hystrix监控界面Hystrix DashboardHystrix集群监控工具Turbine配置中心 API Gateway使用Docker构建微服务 目前基于Spring Cloud构建微服务的必要组件已经讲解完成. 下一步是讲解Docker的