ZVVQ代理分享网

Java 框架如何应对微服务架构引入的分布式问题?

作者:zvvq博客网
导读java 框架通过服务发现(如 consul、eureka、zookeeper)、服务网格(如 istio、linkerd)、分布式配置管理(如 spring cloud config、consul kv、zookeeper)和分布式数据库(如 mysql cluster、 mongodb )等

java 架构根据服务发现(如 consul、eureka、zookeeper)、服务网格(如 istio、linkerd)、分布式配置管理(如 spring cloud config、consul kv、zookeeper)和分布式数据库(如 mysql cluster、mongodb)等机制来面对分布式架构引入的分布式难题。比如,consul 用以服务发现,spring cloud config 用以分布式配置管理。

Java 架构怎么看待分布式架构引入的分布式难题

分布式架构的兴起增添了分布式架构的考验,Java 架构通过一些体制来应对这些问题。

服务发现

Consul: Consul 提供帮助发觉、存储和配置管理。 Eureka: Eureka 给予分布式服务发现并故障恢复。 ZooKeeper: ZooKeeper 是一个分布式融洽服务,适合于服务发现。服务网格

Istio: Istio 提供了一个服务网格,用以管理微服务的通讯、安全性、监控等。 Linkerd: Linkerd 也是一个服务网格,致力于服务中间的高效、靠谱通讯。分布式配置管理

Spring Cloud Config: Spring Cloud Config 给予分布式配置管理和版本控制。 Consul KV: Consul KV 是 Consul 中用于存储及管理键值对的工具。 Apache ZooKeeper: ZooKeeper 可用于存储和管理分布式配备。分布式数据库

分布式关系型数据库: 比如 MySQL Cluster、PostgreSQL Cluster、Oracle RAC。 分布式 NoSQL 数据库: 比如 MongoDB、Cassandra、Redis。实战案例

应用 Consul 开展服务发现

importcom.ecwid.consul.v1.ConsulClient;

importcom.ecwid.consul.v1.QueryParams;

importcom.ecwid.consul.v1.Response;

importcom.ecwid.consul.v1.health.model.HealthService;

publicclassConsulServiceDiscovery{

publicstaticvoidmain(String[]args)throwsException{

ConsulClient consulClient=newConsulClient();

//查看名叫 "my-service" 服务

QueryParamsqueryParams=newQueryParams("my-service");

Response>response= consulClient.getHealthServices("my-service",queryParams);

//获得服务实例目录

List services = response.getValue();

// 遍历服务实例

for (HealthService service : services) {

System.out.println(service.getService().getAddress());

System.out.println(service.getService().getPort());

}

}

}

应用 Spring Cloud Config 开展配置管理

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication

@EnableConfigServer

public class ConfigServerApplication {

public static void main(String[] args) {

SpringApplication.run(ConfigServerApplication.class, args);

}

}

以上就是Java 架构怎么看待分布式架构引入的分布式难题?的详细内容,大量请关注其他类似文章!

    展开全文