0


springcloud05——Zookeeper实现支付微服务

在这里插入图片描述

前 言
🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端
☕专栏简介:深入、全面、系统的介绍springcloud与springcloud Alibaba微服务常用技术栈
🌰 文章简介:本文将使用zookeeper作为集群注册组件,建议收藏备用,创作不易,敬请三连哦
🥒文章推荐:
zookeeper入门到精通01——zookeeper入门
zookeeper入门到精通02——zookeeper的本地安装操作
zookeeper入门到精通03——zookeeper集群搭建
zookeeper入门到精通04——zookeeper集群选举与集群操作
Zookeeper入门到精通05——Zookeeper客户端命令行操作
zookeeper入门到精通06——zookeeper客户端API创建节点
zookeeper入门到精通07——zookeeper客户端API节点操作与原理
微服务架构与springcloud 01——微服务入门
微服务架构与springcloud02——父工程构建及支付模块实现
微服务架构与springcloud03——项目热部署与消费者订单模块
微服务架构与springcloud04——Eureka服务注册与发现
大厂面试真题|面经

文章目录

一、准备工作

1.1 技术架构

使用Zookeeper服务注册与发现与使用Eureka基本上是一致的,其技术架构如图
在这里插入图片描述

1.2 集群启动

笔者为了贴近实际生产,使用了zookeeper集群。如果您还没有zookeeper集群,推荐参考下面两个博客进行安装与搭建。当然,您要是只使用一台zookeeper服务器也是可以的,后面我就不再赘述了。

zookeeper入门到精通02——zookeeper的本地安装操作
zookeeper入门到精通03——zookeeper集群搭建

关闭防火墙。

systemctl stop firewalld
systemctl status firewalld

依次开启zookeeper集群的服务器。

zkServer.sh start

如果您参考了我的博客编写了一键启动的脚本,也可以这样。

zk.sh start

依次查看状态,确定是否启动成功。

zkServer.sh status

或者使用j脚本一键查看。

zk.sh status

在这里插入图片描述

1.3 网络检测

查看网络通信是否正常。先在虚拟机服务器上使用如下命令查看ip。

ifconfig

在这里插入图片描述

然后在客户端主机ping一下zookeeper集群的各台主机,确保网络畅通。
在这里插入图片描述

二、支付服务进zookeeper

2.1 新建项目

为了区分,中间空个8003。新建工程cloud-provider-payment8004。
在这里插入图片描述

2.2 pom文件

pom文件。其实就是替换下eureka就行,其它的与8001微服务是一致的。注意和数据库有关的依赖不要引入,因为我们接下来不使用数据库,也不会进行数据库的配置,如果引入就会出错哟。

<dependencies><!-- 这两个依赖一般绑定在一起使用       --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--引入自定义的api通用包,可以使用Payment支付bean--><dependency><groupId>com.wangzhou.springcloud</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!--替换掉eureka依赖--><!--SpringBoot整合Zookeeper客户端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zookeeper-discovery</artifactId><exclusions><!--            先排除自带的zookeeper3.5.3--><exclusion><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId></exclusion></exclusions></dependency><!--        添加zookeeper3.4.10版本(引入对应版本的依赖)--><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.10</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency></dependencies>

服务器下载的zookeeper的jar包版本要与自己下载的zookeeper软件版本一致哦,如下图可以查看到服务器使用的zookeeper版本,不一致就可以排除掉原来的,再替换添加对应版本(上面就做了这件事)。
在这里插入图片描述

2.3 yml文件

application.yml文件也搞好。很简单,写端口号,以及zookeeper的ip,记住这样的核心理念。

#端口号server:port:8004spring:application:#服务别名——注册到zookeeper注册中心的名称name: cloud-provider-payment
  cloud:zookeeper:connect-string: 192.168.106.43:2182,192.168.106.44:2182,192.168.106.45:2182#linux的ip加暴露的端口号

2.4 主启动类

@EnableDiscoveryClient@SpringBootApplicationpublicclassPaymentMain8004{publicstaticvoidmain(String[] args){SpringApplication.run(PaymentMain8004.class, args);}}

2.5 controller

我们前面已经按照mvc的框架写过很多次了,这里主要介绍spring boot对zookeeper的集成。因此我们就直接在controller中对业务进行处理了。

@RestController@Slf4jpublicclassPaymentController{@Value("${server.port}")privateString serverPort;@RequestMapping("/payment/zk")publicStringpaymentzk(){return"springcloud with zookeeper:"+ serverPort +"\t"+ UUID.randomUUID().toString();}}

2.6 测试

启动zookeeper客户端(笔者修改过端口号,修改为2182,如未修改可以不指定ip与端口号,直接使用

./zkCli.sh

)

./zkCli.sh -server ip:port

在这里插入图片描述
查看节点信息

[zk: localhost:2182(CONNECTED)0]ls /
[sanguo1, sanguo2, zookeeper]

启动8004模块。在这里插入图片描述
访问下:http://localhost:8004/payment/zk
在这里插入图片描述
zookeeper就正式整合到支付微服务咯。在zookeeper客户端使用命令查看下,可以看到注册的详细信息哟。
在这里插入图片描述
这篇文章就介绍到这里咯,如果小伙伴在准备秋招,可以多背背面试题,刷刷算法,推荐:大厂面试真题|面经,真的超级全哦


本文转载自: https://blog.csdn.net/qq_41708993/article/details/125628363
版权归原作者 半旧518 所有, 如有侵权,请联系我们删除。

“springcloud05——Zookeeper实现支付微服务”的评论:

还没有评论