你好,这里是codetrend专栏“SpringCloud2023实战”。欢迎点击关注检察往期文章。
注册中央在前文提到有很多选型,在这里以Spring Cloud Zookeeper为例说明注册中央的集成和使用。
选择Spring Cloud Zookeeper作为注册中央原因如下:
- 依靠更少,只依靠zookeeper单体或集群的部署。
- 配置更通用,Eureka和zookeeper的切换只需要少量配置切换即可完成。
- 集成方便,注解通用,集成starter即可。
客户端引入
- 修改子工程的pom.xml,引入Spring Cloud Zookeeper。
- <?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>
- <groupId>io.rainforest</groupId>
- <artifactId>banana</artifactId>
- <version>1.0</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>banana-client1</artifactId>
- <description>spring cloud banana-client1</description>
- <packaging>jar</packaging>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-undertow</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-openfeign</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-openfeign-core</artifactId>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>io.rainforest</groupId>
- <artifactId>banana-common-core</artifactId>
- </dependency>
- <dependency>
- <groupId>cn.hutool</groupId>
- <artifactId>hutool-crypto</artifactId>
- </dependency>
- <dependency>
- <groupId>cn.hutool</groupId>
- <artifactId>hutool-http</artifactId>
- </dependency>
- <dependency>
- <groupId>com.github.xiaoymin</groupId>
- <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- </project>
复制代码 启动zookeeper
- |-- LICENSE.txt
- |-- NOTICE.txt
- |-- README.md
- |-- README_packaging.md
- |-- bin
- |-- conf
- |-- data
- |-- docs
- |-- lib
复制代码
- 修改配置文件,此处为单体非集群版配置,在conf/zoo.cfg。
- # The number of milliseconds of each tick
- tickTime=2000
- # The number of ticks that the initial
- # synchronization phase can take
- initLimit=10
- # The number of ticks that can pass between
- # sending a request and getting an acknowledgement
- syncLimit=5
- # the directory where the snapshot is stored.
- # do not use /tmp for storage, /tmp here is just
- # example sakes.
- dataDir=E:/DevTool/apache-zookeeper-3.8.2-bin/data
- # the port at which the clients will connect
- clientPort=2181
复制代码- # windows系统
- bin\zkServer.cmd
- # Linux系统
- bin\zkServer.sh
复制代码 启动应用
- package io.rainforest.banana.client1;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
- import org.springframework.cloud.openfeign.EnableFeignClients;
- @SpringBootApplication
- @EnableDiscoveryClient
- @EnableFeignClients
- public class Application {
- public static void main(String[] args) {
- SpringApplication.run(Application.class, args);
- }
- }
复制代码- spring.application.name: client1
- spring:
- cloud:
- zookeeper:
- connect-string: localhost:2181 ## 注册中心的配置
- server:
- port: 10101
- servlet:
- context-path: /client1
复制代码 检察注册数据
- get /services/client1/b257e7f5-a451-4119-ba20-e7622f3aeaba
- {"name":"client1","id":"b257e7f5-a451-4119-ba20-e7622f3aeaba","address":"cat","port":10101,"sslPort":null,"payload":{"@class":"org.springframework.cloud.zookeeper.discovery.ZookeeperInstance","id":"client1","name":"client1","metadata":{"instance_status":"UP"}},"registrationTimeUTC":1698715221404,"serviceType":"DYNAMIC","uriSpec":{"parts":[{"value":"scheme","variable":true},{"value":"://","variable":false},{"value":"address","variable":true},{"value":":","variable":false},{"value":"port","variable":true}]}}
复制代码 默认的zookeeper注册中央的数据放在 /services/客户端名称/实例名称 。
源码信息
和“SpringCloud实战”对应的源码信息如下:
关于作者
来自一线全栈步调员nine的八年探索与实践,连续迭代中。欢迎关注公众号“雨林寻北”或添加个人卫星codetrend(备注技术)。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |