标签:机器 实现 进程 net 数据 结果 环境 访问 高效
在“网络是不可靠的”这一前提下,分布式系统开发需要解决如下四个问题:
客户端如何访问众多服务?
?解决方案:服务聚合,使用API网关
服务于服务之间如何通信?
?解决方案:
??同步通讯:HTTP(Apache http client)、 RPC(Dubbo、Apache Thrift、gRPC)
??异步通讯:消息队列(Kafka Rabbitmq Rockermq)
众多服务,如何进行管理(实现高可用、高并发、高性能)?
?解决方案:服务治理,采用服务注册与发现,包括
??基于客户端的服务注册与发现:Apache Zookeeper
??基于服务端的服务注册于发现:Netflix Eureka
服务挂了怎么办?
?解决方案:重试机制、服务熔断、服务降级、服务限流
目前流行的微服务架构解决方案:
??ZooKeeper是一个开放源代码的分布式协调服务,由知名互联网公司雅虎创建,是Google Chubby的开源实现。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。
??分布式锁:在同一台JVM上使用多线程异步的方式实现对临界资源的访问,而在分布式系统中为了防止多个进程之间相互干扰,需要使用分布式协调技术。
??分布式协调技术:主要用来解决分布式环境当中多个进程之间的同步控制,保证各个进程有序的访问某些临界资源,防止造成“脏数据“。
??分布式协调技术的核心就是实现分布式锁。
??ZooKeeper是分布式协调服务,Zookeeper的本质就是分布式锁的实现框架。
??Zookeeper典型应用场景包括:数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁、分布式队列。
标签:机器 实现 进程 net 数据 结果 环境 访问 高效
原文地址:https://www.cnblogs.com/DeepInThought/p/11066919.html