0
点赞
收藏
分享

微信扫一扫

尚硅谷SpringCloud2020简单学习记录(个人用)28集(不停踩坑,单独记录)

梦为马 2022-03-20 阅读 58

在新装的centos7里面删除自带的jdk,安装自己的jdk1.8,然后安装zookeeper

[root@localhost bin]# pwd

/myzookeeper/zookeeper-3.4.9/bin

关闭防火墙:

[root@localhost bin]# systemctl stop firewalld

使用以下指令可以看到防火墙已经关闭了:

[root@localhost bin]# systemctl status firewalld

查看ip:

[root@localhost bin]# ifconfig

inet 后面会跟着12个数字

接着使用指令:

[root@localhost bin]# ping (接自己windows的ip地址)

出现几行信息后就可以按ctrl+c停止了,显示联通成功

(在windows也可以这样做,显示连接成功)

新建cloud-provider-payment8004

Pom.XML的内容和其他payment的不同之处在于将eureka的依赖换成zookeeper

<dependency>
    <
groupId>org.springframework.cloud</groupId>
    <
artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</
dependency>

Application.yml的内容换成了:

server:
 
port: 8004

spring:
 
application:
   
name: cloud-provider-payment

 
cloud:
   
zookeeper:
     
connect-string: 192.168.174.128:2181

Dao和service就不写了,这里controller改成以下内容:

@RestController
public class PaymentController {
   
@Value("${server.port}")
   
private String serverPort;

   
@RequestMapping(value = "/payment/zk")
   
public String paymentzk() {
       
return "springcloud with zookeeper: " + serverPort + "\t" + UUID.randomUUID().toString();
    }
}

接着回到linux启动zookeeper

[root@localhost bin]# ./zkServer.sh start

TIPS:重要踩坑记录1:

提示grep: /myzookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg: No such file or directory

解决方法:将zoo_simple.cfg原地复制一份命名为zoo.cf即可

[root@localhost bin]# ./zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /myzookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

接着:

[root@localhost bin]# ./zkCli.sh

Connecting to localhost:2181

[zk: localhost:2181(CONNECTED) 0]

再接着:

[zk: localhost:2181(CONNECTED) 0] ls /

[zookeeper]

[zk: localhost:2181(CONNECTED) 1] get /zookeeper

cZxid = 0x0

ctime = Wed Dec 31 16:00:00 PST 1969

mZxid = 0x0

mtime = Wed Dec 31 16:00:00 PST 1969

pZxid = 0x0

cversion = -1

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 0

numChildren = 1

[zk: localhost:2181(CONNECTED) 2] ls /zookeeper

[quota]

做出各种操作都没问题,即代表链接成功

Idea里启动项目发现报错

去maven中可以看到zookeeper中的版本为3.5.3beta版本,linux是3.4.9,有jar包冲突

则需要在pom.XML中继续修改:

<dependency>
    <
groupId>org.springframework.cloud</groupId>
    <
artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
   
<!--先排除自带的zookeeper3.5.3-->
   
<exclusions>
        <
exclusion>
            <
groupId>org.apache.zookeeper</groupId>
            <
artifactId>zookeeper</artifactId>
        </
exclusion>
    </
exclusions>
</
dependency>
<!--添加zookeeper3.4.9版本-->
<dependency>
    <
groupId>org.apache.zookeeper</groupId>
    <
artifactId>zookeeper</artifactId>
    <
version>3.4.9</version>
</
dependency>

TIPS:重要踩坑记录2

Centos重启后防火墙会重开,需要再次禁用,否则会报java.net.ConnectException: Connection timed out: no further information

启动项目,显示成功

启动成功前后的区别:

[zk: localhost:2181(CONNECTED) 0] ls /

[zookeeper]

[zk: localhost:2181(CONNECTED) 1] ls /

[services, zookeeper]

再来:

[zk: localhost:2181(CONNECTED) 2] ls /services

[cloud-provider-payment]

成功注册进来了

网页输入:http://localhost:8004/payment/zk

多次刷新结果会有不同

再接着输入:

[zk: localhost:2181(CONNECTED) 3] ls /services/cloud-provider-payment

[d78d8cc2-4a49-4b2b-a597-df64dfe4f287]

[zk: localhost:2181(CONNECTED) 4] ls /services/cloud-provider-payment/d78d8cc2-4a49-4b2b-a597-df64dfe4f287

[]

[zk: localhost:2181(CONNECTED) 5] get /services/cloud-provider-payment/d78d8cc2-4a49-4b2b-a597-df64dfe4f287

{"name":"cloud-provider-payment","id":"d78d8cc2-4a49-4b2b-a597-df64dfe4f287","address":"localhost","port":8004,"sslPort":null,"payload":{"@class":"org.springframework.cloud.zookeeper.discovery.ZookeeperInstance","id":"application-1","name":"cloud-provider-payment","metadata":{}},"registrationTimeUTC":1647715410900,"serviceType":"DYNAMIC","uriSpec":{"parts":[{"value":"scheme","variable":true},{"value":"://","variable":false},{"value":"address","variable":true},{"value":":","variable":false},{"value":"port","variable":true}]}}

cZxid = 0xa

ctime = Sat Mar 19 11:43:35 PDT 2022

mZxid = 0xa

mtime = Sat Mar 19 11:43:35 PDT 2022

pZxid = 0xa

cversion = 0

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x17fa35debca0001

dataLength = 530

numChildren = 0

可以看到用get得到一个很大的json数据串

举报

相关推荐

0 条评论