节点服务器

【RPC】一步一步实现基于netty+zookeeper的RPC框架(一)

試著忘記壹切 提交于 2019-11-29 05:00:51
随着分布式架构运用的越来越多,RPC框架成为了我们不得不掌握的知识,这里一步一步来手写一个简单的RPC框架,以博文作为记录及自我监督。 首先是技术选型,这边我选用的是当前比较流行的Netty+Zookeeper来实现,通过zookeeper的特性来实现服务注册与发现,通信则使用netty框架。 这里贴出github代码地址,想直接看代码的可以直接下载运行: https://github.com/whiteBX/wrpc 这里先来讲服务注册发现原理: 利用zookeeper的创建临时节点和watcher机制,可以做到在一个服务下注册多个服务器地址,并且在节点发生变动时通过watcher动态更新服务器列表,来达到在新增/修改/删除时自动注册发现/删除/更新服务器连接信息 .这里说一点,zookeeper的增删改操作会交由leader去处理,所以这里不用担心并发问题. zookeeper相关代码如下: public class ZKClient { /** * 获取zookeeper连接 * * @param connectString * @param sessionTimeout * @return */ public ZooKeeper newConnection ( String connectString , int sessionTimeout ) { ZooKeeper

SQL Server关于AlwaysOn的理解

我与影子孤独终老i 提交于 2019-11-29 04:41:27
(一)SQL Server-AlwaysOn 技术:SQL Server AlwaysOn 即“全面的高可用性和灾难恢复解决方案” 1、数据库级可用性-只读副本:SQL Server 2012-4个,SQL Server 2014-8个 a、每个节点都安装了本地的 SQL Server,可以不使用共享存储,但是数据库在每个节点上的磁盘文件夹必须是一致的。 b、主节点可读可写,其它辅助节点只可读。 c、全部节点都加入一个 Windows Fail-over Cluster 中。 可以为AlwaysOn可用性组配置一个侦听器(虚拟计算机)。客户端如果访问这个侦听器则可以实现read/write;客户端如果访问指定的辅助节点,可能实现read/write(如果该节点是主节点),或者只能read-only。 负载分离: a、可以将一部分的read only请求发送到辅助副本: 1)第一种:修改应用程序,在客户端实现。例如,指定将read/write都指向AlwaysOn可用性组的侦听器(不赞成指向某个节点,因为无法确保某个节点可以write),将部分read only请求指向辅助副本。 2)第二种:为AlwaysOn可用性组配置只读路由: 脚本如下: ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER01' WITH

zookeeper学习之原理

时间秒杀一切 提交于 2019-11-29 02:43:24
一、zookeeper 是什么 Zookeeper是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等。这一切的基础,都是Zookeeper提供了一个类似于Linux文件系统的树形结构(可认为是轻量级的内存文件系统,但只适合存少量信息,完全不适合存储大量文件或者大文件),同时提供了对于每个节点的监控与通知机制。既然是一个文件系统,就不得不提Zookeeper是如何保证数据的一致性的。 二、zookeeper 集群架构 Zookeeper集群是一个基于主从复制的高可用集群,通常 Master服务器作为主服务器提供写服务,其他的 Slave 服务器通过异步复制的方式获取 Master 服务器最新的数据,并提供读服务,在 ZooKeeper 中没有选择传统的 Master/Slave 概念,而是引入了Leader、Follower 和 Observer 三种角色,每个角色承担如下: Leader 一个Zookeeper集群同一时间只会有一个实际工作的Leader,它会发起并维护与各Follwer及Observer间的心跳。所有的写操作必须要通过Leader完成再由Leader将写操作广播给其它服务器。 Follower 一个Zookeeper集群可能同时存在多个Follower,它会响应Leader的心跳。Follower可直接处理并返回客户端的读请求

Zookeeper 分布式协调服务介绍

巧了我就是萌 提交于 2019-11-29 01:11:36
公众号原文: Zookeeper 分布式协调服务介绍 博客原文: Zookeeper 分布式协调服务介绍 分布式系统 分布式系统的简单定义:分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 分布式系统的特征: 分布性:系统中的计算机在空间上随意分布和随时变动 对等性:系统中的计算机是对等的,没有主从之分 并发性:并发性操作是非常常见的行为 缺乏全局时钟:系统中的计算机具有明显的分布性,且缺乏一个全局的时钟序列控制,所以很难比较两个事件的先后 故障总是会发生:任何在设计阶段考虑到的异常情况,一定会在系统实际运行中发生,并且还会遇到很多在设计时未考虑到的异常故障 随着分布式架构的出现,越来越多的分布式应用会面临数据一致性问题。 选择Zookeeper Zookeeper是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、master选举、分布式锁和分布式队列等功能。 Zookeeper致力于提供一个高性能、高可用,具有严格的顺序访问控制能力的分布式协调服务;其主要的设计目标是简单的数据模型、可以构建集群、顺序访问、高性能。Zookeeper已经成为很多大型分布式项目譬如Hadoop、HBase、Storm、Solr等中的核心组件,用于分布式协调。

分布式协调服务zookeeper总结

那年仲夏 提交于 2019-11-29 01:09:12
1.zookeeper简介 1.1简介 Zookeeper是一个分布式协调服务,换言之,就是为用户的分布式应用程序提供协调服务 - zookeeper是为别的分布式程序服务的 - Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务) - Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务 - 虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能(管理数据和监听数据): 管理(存储,读取)用户程序提交的数据; 并为用户程序提供数据节点监听服务; 1.2 Zookeeper集群的角色: Leader 和 follower Zookeeper在配置文件中并没有指定master和slave,启动之后通过内部的选举机制选举出leader和follower,而且只有一个leader,其他则为follower。zookeeper集群中只要有半数以上节点存活,集群就能提供服务。 2.zookeeper集群机制 半数机制:集群中半数以上机器存活,集群可用。 zookeeper适合装在奇数台机器上!!! 2.zookeeper安装与配置 2.1zookeeper安装 安装到3台虚拟机上(需要提前安装好JDK) 将zookeeper压缩包上传至/apps/package目录并解压 tar

分布式存储系统的一些基本理论

烂漫一生 提交于 2019-11-29 00:25:20
无论是云计算、大数据还是互联网公司的各种应用,其后台基础设施的主要目标都是构建低成本、高性能、可扩展、易用的分布式存储系统。 大规模分布式存储系统的定义如下:分布式存储系统是大量普通PC服务器通过Internet互联,对外作为一个整体提供存储服务。 几个特点: (1)可扩展:分布式存储系统可以扩展到几百台甚至上千台的集群规模,而且,随着集群规模的增长,系统整体性能表现为线性增长 (2)低成本:自动容错、自动负载均衡机制使其可以构建在普通PC机之上。另外,线性扩展能力也使得增加、减少机器非常方便,可以实现自动运维。 (3)高性能:针对整个集群还是单台服务器,都要求分布式存储系统具备高性能。 (4)易用:分布式存储喜提需要能够提供易用的对外接口,另外,也要求具备完善的监控、运维工具。 分布式存储数据需求比较复杂,大体可以分为三类: (1)非结构化数据 (2)结构化数据 (3)半结构化数据 不同的分布式存储系统适合处理不同类型的数据,将分布式存储系统分为四类: (1)分布式文件系统:互联网应用需要存储大量的图片,视频等非结构化数据对象,这类数据以对象的形式组织,对象之间没有关联,这样的数据一般称为Blob数据(Binary Large Object二进制大对象) 分布式文件系统存储三种类型的数据:Blob对象,定长块,大文件 (2)分布式键值系统:存储关系检点的半结构化数据

GlusterFs卷类型分析及创建、使用(结合kubernetes集群分析)

纵然是瞬间 提交于 2019-11-28 22:05:18
引言 本文通过对卷类型的分析对比,来帮助读者选取生产环境最符合服务的挂载存储,命令可结合《 glusterfs详解及kubernetes 搭建heketi-glusterfs 》进行实验,下面进入正题 几种卷类型 基础卷:布式卷(distribute)、条带卷(stripe)、复制卷(replica)、纠错卷(Dispersed ) 复合卷:分布式条带卷(distribute stripe)、分布式复制卷(distribute replica)、条带复制卷(stripe replica)、分布式条带复制卷(distribute stripe) 一、基础卷 以下创建挂载卷,均可通过以下命令进行查看、启用、停止、删除 #查看已创建挂载卷 gluster volume info #启动挂载卷 gluster volume start gv0 #删除前,先停止挂载卷 gluster volume stop gv0 #删除挂载卷 gluster volume delete gv0 1. 布式卷(distribute voulme) 分布式模式,既DHT,是GlusterFS的默认模式,在创建卷时,默认选项是创建分布式卷。在该模式下,并没有对文件进行分块处理,而是通过hash算法分布到所有brick server上,只是扩大了磁盘空间,类似window中的跨区卷 distribute

OpenStack构架知识梳理

橙三吉。 提交于 2019-11-28 19:46:18
OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。 OpenStackd开源项目由社区维护,包括OpenStack计算(代号为Nova),OpenStack对象存储(代号为Swift),并OpenStack镜像服务(代号Glance)的集合。 OpenStack提供了一个操作平台,或工具包,用于编排云。 下面列出 Openstack的详细构架图 Openstack的网络拓扑结构图 整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。(这四个节点也可以安装在一台机器上,单机部署) 其中: 控制节点 负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等 计算节点 负责虚拟机运行 网络节点 负责对外网络与内网络之间的通信 存储节点 负责对虚拟机的额外存储管理等等 控制节点架构: 控制节点包括以下服务 管理支持服务 基础管理服务 扩展管理服务 1)管理支持服务包含MySQL与Qpid两个服务 MySQL:数据库作为基础/扩展服务产生的数据存放的地方 Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务 2

REST 风格的 Web 服务入门

半腔热情 提交于 2019-11-28 19:05:53
要学习本教程,您需要具备以下软件和资源。 软件或资源 要求的版本 NetBeans IDE Java EE 下载包 Java 开发工具包 (JDK) 版本 6 或 7 符合 Java EE 规范的应用服务器 Oracle WebLogic Server 11g-12c , 或者 GlassFish Server Open Source Edition 3.x 或 4.x (除非在 Tomcat 中安装了 EJB 支持插件,否则不适用于 Tomcat) jdbc/sample 数据库(位于 Java DB (Derby) 数据库服务器或 MySQL 数据库服务器上) 在 Java DB (Derby) 上,jdbc/sample 数据库是由 NetBeans IDE 生成的 (如果将 IDE 与 GlassFish 应用服务器一起安装)。 通过 IDE 在 MySQL 服务器上创建样例数据库后,IDE 将在 MySQL 上填充该样例数据库。 GlassFish Server 可以随 NetBeans IDE 的 Web 和 Java EE 分发一起安装。或者,还可以访问 GlassFish Server 下载页 。 重要说明: Java EE 6 和 Java EE 7 项目需要使用 GlassFish Server 或 Oracle WebLogic Server 12c。 简介

6.主从复制

断了今生、忘了曾经 提交于 2019-11-28 18:42:56
作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-08-26 20:53:04 星期一 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程中的编写的文章 如您在阅读过程中发现文章错误,可添加我的微信 tangy8080 进行反馈.感谢您的支持。 文章主题 了解Redis主从复制的过程 主从复制则侧重解决数据的多机热备,主从复制是实现负载均衡和故障恢复的基础 前置条件 [无] 正文 概述 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到 其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis副本。复制功能是高可用Redis的基础,哨兵和集群都是在复制的基础上实现高可用的。 参与复制的Redis实例划分为主节点(master)和从节点(slave)。默认 情况下,Redis都是主节点。每个从节点只能有一个主节点,而主节点可以同时具有多个从节点。复制的数据流是单向的,只能由主节点复制到从节点 主从复制的配置 二进制方式安装下的配置 在配置文件中加入slaveof{masterHost}{masterPort}随Redis启动生效。 在redis-server启动命令后加入--slaveof{masterHost}{masterPort}生效。