【云原生】springcloud06——订单服务注册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服务注册与发现
s
pringcloud05——Zookeeper实现支付微服务
厂面试真题|面经

上一讲我们已经讲将支付服务进zookeeper完成,结合下图,可以发现我们还需要将订单服务注册进zookeeper。

(1)建工程

新建消费者模块cloud-consumerzk-order80。

(2)写pom/yml

pom和yml直接复制8004。(yml中端口号改为80,应用名改为cloud-consumer-order,其他都相同)

pom

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>cloud2020</artifactId>
        <groupId>com.wangzhou.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
&lt;artifactId&gt;cloud-consumer-order80&lt;/artifactId&gt;

&lt;properties&gt;
    &lt;maven.compiler.source&gt;8&lt;/maven.compiler.source&gt;
    &lt;maven.compiler.target&gt;8&lt;/maven.compiler.target&gt;
&lt;/properties&gt;

<dependencies>
<!-- 这两个依赖一般绑定在一起使用 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

&lt;dependency&gt;
    &lt;groupId&gt;org.projectlombok&lt;/groupId&gt;
    &lt;artifactId&gt;lombok&lt;/artifactId&gt;
    &lt;optional&gt;true&lt;/optional&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
    &lt;artifactId&gt;spring-boot-starter-test&lt;/artifactId&gt;
    &lt;scope&gt;test&lt;/scope&gt;
&lt;/dependency&gt;
&lt;!--引入自定义的api通用包,可以使用Payment支付bean--&gt;
&lt;dependency&gt;
    &lt;groupId&gt;com.wangzhou.springcloud&lt;/groupId&gt;
    &lt;artifactId&gt;cloud-api-commons&lt;/artifactId&gt;
    &lt;version&gt;${project.version}&lt;/version&gt;
&lt;/dependency&gt;

&lt;!--替换掉eureka依赖--&gt;
&lt;!--SpringBoot整合Zookeeper客户端--&gt;
&lt;dependency&gt;
    &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
    &lt;artifactId&gt;spring-cloud-starter-zookeeper-discovery&lt;/artifactId&gt;
    &lt;exclusions&gt;
        &lt;!--            先排除自带的zookeeper3.5.3--&gt;
        &lt;exclusion&gt;
            &lt;groupId&gt;org.apache.zookeeper&lt;/groupId&gt;
            &lt;artifactId&gt;zookeeper&lt;/artifactId&gt;
        &lt;/exclusion&gt;
    &lt;/exclusions&gt;
&lt;/dependency&gt;

&lt;!--        添加zookeeper3.4.10版本(引入对应版本的依赖)--&gt;
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.zookeeper&lt;/groupId&gt;
    &lt;artifactId&gt;zookeeper&lt;/artifactId&gt;
    &lt;version&gt;3.4.10&lt;/version&gt;
    &lt;exclusions&gt;
        &lt;exclusion&gt;
            &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
            &lt;artifactId&gt;slf4j-log4j12&lt;/artifactId&gt;
        &lt;/exclusion&gt;
    &lt;/exclusions&gt;
&lt;/dependency&gt;

</dependencies>
</project>

application.yml

代码语言:javascript
复制
#端口号
server:
port: 80

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

autoconfigure:
exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

(3)主启动类

主启动类。(与8004相同)

代码语言:javascript
复制
@SpringBootApplication
@EnableDiscoveryClient
public class OrderZKMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderZKMain80.class,args);
}
}

(4)业务类

先写配置类。返回restTemplate。

代码语言:javascript
复制
@Configuration
public class Applicationcontextconfig {

@Bean
@LoadBalanced //负载均衡
public RestTemplate getRestTemplate() {
    return new RestTemplate();
}

}

再写controller.

代码语言:javascript
复制
@RestController
@Slf4j
public class ZKController {
public static final String INVOKE_URL="http://cloud-provider-payment";

@Resource
private RestTemplate restTemplate;

@GetMapping(&#34;/consumer/payment/zk&#34;)
public String paymentInfo(){
	// url拼接上/payment/zk,对应8004服务controller中的rest api
    String result = restTemplate.getForObject(INVOKE_URL + &#34;/payment/zk&#34;, String.class);
    return result;
}

}

启动zookeeper集群(如果没有搭建可以参考:zookeeper入门到精通03——zookeeper集群搭建

),启动8004支付微服务,80订单微服务。

在zookeeper服务器上执行命令,可以看到订单服务注册成功。

访问rest api,进行调用功能测试如下。

工欲善其事,必先利其器”。要想成为工作上的数据库高手,面试时的题霸,独步江湖,就必须拿到一份"武林秘籍"。

我个人强推牛客网:找工作神器|大厂java面经汇总|超全笔试题库

推荐理由:
1.刷题题库,题目特别全面,刷爆笔试再也不担心

链接: 找工作神器|大厂java面经汇总|超全笔试题库

2.超全面试题、成体系、高质量,还有AI模拟面试黑科技

链接: 工作神器|大厂java面经汇总|超全笔试题库

3.超多面经,大厂面经很多

4.内推机会,大厂招聘特别多

链接: 找工作神器|大厂java面经汇总|超全笔试题库

5.大厂真题,直接拿到大厂真实题库,而且和许多大厂都有直接合作,题目通过率高有机会获得大厂内推资格。

链接: 找工作神器|大厂java面经汇总|超全笔试题库