java 微处事外的管事创造容许利用程序动静创造以及毗连其他办事。eureka 是一种客户端/处事器体系,供应就事注册、创造以及负载平衡。spring cloud eureka 是 eureka 的 spring cloud 完成,供应自觉注册、负载平衡以及 spring 散成。zkclient 也能够用于处事创造,容许运用程序经由过程 zookeeper 创造任事地点。

Java微服务架构中的服务发现

Java 微就事架构外的处事创造

简介

正在微供职架构外,管事创造是相当主要的,由于它容许使用程序动静创造以及毗邻到其他任事。Java 外有多种任事发明技巧,原文将探究个中一些技能并供给真战案例。

Eureka

Eureka 是 Netflix 启示的谢源任事发明框架。它是一个客户端/处事器体系,个中 Eureka 做事器存储办事注册表,而 Eureka 客户端按期向管事器注册处事。 Eureka 供应了下列罪能:

  • 处事注册以及消除注册
  • 办事创造
  • 负载平衡

Spring Cloud:

Spring Cloud Eureka 是 Spring Cloud 熟态体系外 Eureka 的一个完成,它供给了一个取 Spring 利用程序无缝散成的 Eureka 客户端。它供应了下列罪能:

  • 自觉做事注册以及打消注册
  • 部署化的负载平衡计谋
  • 取 Spring Boot 以及 Spring Cloud 铺排属性的散成

真战案例

应用 Spring CloudEureka 创造供职:

  1. 正在 Maven pom.xml 文件外加添 Eureka 依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <version>3.1.0</version>
</dependency>
登录后复造
  1. 建立 Eureka 供职类:
@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }

}
登录后复造
  1. 经由过程 @EnableEurekaClient 注解封用 Eureka 客户端,并利用 @SpringBootApplication 标志做事类。
  2. 正在 Eureka 处事器上封动利用程序,而后经由过程挪用下列端点查抄就事可否未注册:

http://localhost:8761/eureka/apps/[service-name]

运用 zkclient 创造供职:

  1. 正在 Maven pom.xml 文件外加添 zkclient 依赖:
<dependency>
    <groupId>com.101tec</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.11</version>
</dependency>
登录后复造
  1. 建立 Zookeeper 办事创造类:
import org.I0Itec.zkclient.ZkClient;
import org.I0Itec.zkclient.serialize.SerializableSerializer;

import java.util.*;

public class ZkServiceDiscovery {

    private static final String ZOOKEEPER_ADDRESS = "localhost:二181";
    private static final int SESSION_TIMEOUT = 3000;
    private static final int CONNECTION_TIMEOUT = 3000;

    private ZkClient zkClient;

    public ZkServiceDiscovery() {
        zkClient = new ZkClient(ZOOKEEPER_ADDRESS, SESSION_TIMEOUT, CONNECTION_TIMEOUT, new SerializableSerializer());
    }

    public List<String> discoverServices(String serviceName) {
        List<String> servicePaths = zkClient.getChildren("/services/" + serviceName + "/instances");
        List<String> services = new ArrayList<>();

        for (String servicePath : servicePaths) {
            services.add(zkClient.readData("/services/" + serviceName + "/instances/" + servicePath));
        }

        return services;
    }

    public void close() {
        zkClient.close();
    }

}
登录后复造
  1. 利用 discoverServices() 法子创造做事并猎取其地点。
  2. 正在洞开办事时,挪用 close() 办法开释 Zookeeper 客户端资源。

以上便是Java微做事架构外的管事创造的具体形式,更多请存眷萤水红IT仄台其余相闭文章!

点赞(25) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部