关于dubbo-zookeeper:分布式电商项目九DubboZookeeper项目重构
SOA思维SOA思维介绍面向服务的架构(SOA)是一个组件模型,它将应用程序的不同性能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协定分割起来。接口是采纳中立的形式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的零碎中的服务能够以一种对立和通用的形式进行交互。 RPC介绍(调用模式的统称)RPC介绍RPC(Remote Procedure Call)近程过程调用,简略的了解是一个节点申请另一个节点提供的服务本地过程调用:如果须要将本地student对象的age+1,能够实现一个addAge()办法,将student对象传入,对年龄进行更新之后返回即可,本地办法调用的函数体通过函数指针来指定。近程过程调用:addAge办法在其余的服务器中,如果须要调用则必须通过近程的形式告诉其余服务器帮我实现业务调用. 总结: 利用第三方的服务器,帮我实现业务调用的过程.了解: 分布式环境中 业务调用简直都是RPC的. 微服务什么是微服务阐明: 为了升高代码的耦合性,将我的项目进行了拆分.依照功能模块拆分为若干个我的项目.该我的项目称之为服务.(分布式思维).如果采纳微服务的构造,要求服务器如果呈现了故障应该实现自动化的故障的迁徙(高可用HA)现有服务剖析阐明:因为nginx负载平衡/反向代理都须要人为的配置,并且呈现了问题不能及时的实现故障的迁徙,所以须要降级为微服务的架构的设计. 微服务架构设计实现步骤: 服务提供者启动时,.将本人的信息注册到注册核心中.注册核心承受到了用户的申请之后,更新服务列表信息.当消费者启动时,首先会链接注册核心,获取服务列表数据.注册核心将本人的服务列表信息同步给客户端(消费者)消费者接管到服务列表数据之后,将信息保留到本人的本地.不便下次调用当消费者接管到用户的申请时,依据本人服务列表的信息进行负载平衡的操作,抉择其中一个服务的提供者,依据IP:PORT 进行RPC调用.当服务提供者宕机时,注册核心会有心跳检测机制,如果查看宕机,则更新本地的服务列表数据,并且全网播送告诉所有的消费者更新服务列表.ZookeeperZookeeper介绍ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的性能包含:配置保护、域名服务、分布式同步、组服务等。ZooKeeper的指标就是封装好简单易出错的要害服务,将简略易用的接口和性能高效、性能稳固的零碎提供给用户。ZooKeeper蕴含一个简略的原语集,提供Java和C的接口。ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3srcrecipes。其中散布锁和队列有Java和C两个版本,选举只有Java版本。 总结:Zookeeper负责服务的协调调度.当客户端发动申请时,返回正确的服务器地址. Zookeeper下载网址: http://zookeeper.apache.org/releases.html. ZK装置先装置JDK(jdk1.8)1.上传安装文件解压目录: tar -xvf zookeeper-3.4.8.tar.gz2.批改配置文件在zk根目录下创立文件夹data/log mkdir data log 3.跳入conf目录中批改配置文件复制配置文件并且批改名称 cp zoo_sample.cfg zoo.cfg 4.启动zk跳转到bin目录中 zk启动敞开命令如下. sh zkServer.sh start 或者 ./zkServer.sh startsh zkServer.sh stopsh zkServer.sh status Zookeeper集群装置1.筹备文件夹在zookeeper根目录中创立新的文件夹zkCluster.创立zk1/zk2/zk3文件夹.在每个文件夹里创立data/log文件夹. mkdir {zk1,zk2,zk3}/{data,log} 2.在每个文件夹里创立data/log文件夹.mkdir {zk1,zk2,zk3}/{data,log} 3.别离在zk1/zk2/zk3中的data文件夹中创立新的文件myid.其中的内容顺次为1/2/3,与zk节点号对应. 4.在config目录中将zoo_sample.cfg 复制为zoo1.cfg之后批改配置文件.将zoo_sample.cfg 复制为zoo1.cfg之后批改配置文件. 5.批改zoo1.cfg 配置实现后将zoo1.cfg复制2份.之后须要批改对应的文件夹目录.和不同的端口即可. 6.ZK集群测试通过上面的命令启动zk集群. sh zkServer.sh start zoo1.cfgsh zkServer.sh stop zoo1.cfgsh zkServer.sh status zoo1.cfg查看主从关系,从机状况阐明查看主从关系,主机状况阐明 对于zookeeper集群阐明Zookeeper集群中leader负责监控集群状态,follower次要负责客户端链接获取服务列表信息.同时参加投票. 为什么集群个别都是奇数个?公式: 存活的节点 > N/2 ...