集群技术

Dubbo 入门-细说分布式与集群

走远了吗. 提交于 2020-03-08 00:29:57
什么是Dubbo Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 什么是RPC RPC全称(Remote Procedure Call)远程过程调用 过程指的是某个代码片段的执行,远程调用则意味着我们可以在其他进程,甚至其他机器上去调用这段代码,当然也能获取到其执行后的返回值,按照这个定义,我们请求某个http地址得到相应数据其实也算一次RPC,但是这样的方式太过麻烦,(数据要先打包成http请求格式,在调用相关的请求库,拿到的结果也是文本格式的需要在进行转换),执行效率,和开发效率相比RPC则低一些; 我们需要一种更简单的方式来完成分布式开发中的RPC环节,这也是Dubbo的核心所在,有多简单呢? 调用远程服务器上的某个服务时就像是调用本地的某个方法一样简单,就像下面这样 为什么需要rpc RPC是用来实现分布式构架的基石,分布式构架将同一个系统中的不同模块拆分到不同的子系统中,而子系统又分布在不同的服务器上,这时就需要RPC在来完成子系统之间的相互访问; 可以这么说分布式少不了RPC,RPC也要在分布式系统中才能发挥其核心价值; rpc的实现原理 毫无以为底层肯定是要通过socket来进行网络通讯的,但是如何能够直接调用另一个机器上的方法呢? 服务消费方(client

Keepalived

社会主义新天地 提交于 2020-03-07 18:38:54
文章目录 1.1、Keepalived简介 1.2、Keepalived是什么? 1.3、VRRP协议与工作原理 1.4、Keepalvied的工作原理 1.5、Keepalived体系结构 1.1、Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管。 它与HeartBeat Rose HA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的、功能完善的高可用软件,它提供了HA 软件所需的基本功能,比如:心跳检测、资源接管,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。HeartBeat功能强大,但是部署和使用相对比较麻烦。 与HeartBeat相比,Keepalived主要是通过虚拟路由冗余来实现高可用功能,虽然它没有HeartBeat功能强大,但是Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可完成。 1.2、Keepalived是什么? Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态

【巨杉数据库SequoiaDB】巨杉 Tech | 几分钟实现巨杉数据库容器化部署

孤人 提交于 2020-03-06 18:02:13
随着业务负载的不断加重,容器化、虚拟化也成为各类在线应用必须要具备的能力。对于分布式数据库,容器化也是提升快速部署、提高运维效率的一个很好的路径。 我们重新优化了 Docker部署的方式,帮助大家更快的上手SequoiaDB集群,本文就将介绍基于 Docker 的SequoiaDB分布式集群快速部署。 1.集群配置 我们将在六个容器中部署一个多节点,高度可用的 SequoiaDB 集群,如下所示: (本文以 SequoiaDB v3.2.3 版本为例) 该集群包括一个协调器节点、一个目录节点、三个数据组,每个数据组有三个副本数据节点和一个 MySQL 实例节点。 环境 ​​​​​​​ OS : Ubuntu 18 Docker Version : 18.09.7 Docker Compose Version: 1.25.3 Database Version : SequoiaDB 3.2.3 MySql Client: Sequoiasql-mysql Cluster Deployment : 1 coordinator, 1 catalog, 3 data nodes, and 1 MySQL instance 2.1 Docker安装 2.1.1 Docker 对于在不同平台上的 Docker 安装,用户可以参阅 Docker 安装指南。 sudo apt-get

TiDB简介

怎甘沉沦 提交于 2020-03-06 17:23:21
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL ( SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。下面是对有关资料的整理还有一些扩展内容以链接的方式展示,有兴趣可以点击了解一下。 一、TiDb简介 TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP(Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。TiDB 具备如下核心特点: 1. 高度兼容 MySQL 大多数情况下

10分钟搭建Kubernetes容器集群平台(kubeadm)

拜拜、爱过 提交于 2020-03-05 23:29:37
官方提供Kubernetes部署3种方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。 官方文档: https://kubernetes.io/docs/setup/minikube/ kubeadm kubeadm可帮助你快速部署一套kubernetes集群。kubeadm设计目的为新用户开始尝试kubernetes提供一种简单的方法。目前是Beta版。 官方文档: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/ https://kubernetes.io/docs/setup/independent/install-kubeadm/ 二进制包 从官方下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。目前企业生产环境中主要使用该方式。 下载地址: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#v1113 1. 安装要求 操作系统 Ubuntu 16.04+ Debian 9 CentOS 7 RHEL 7 Fedora 25/26 (best-effort) 其他

MySQL集群MGR架构for单主模式

那年仲夏 提交于 2020-03-05 18:19:51
本文转载自: https://www.93bok.com MGR简介 MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案。MySQL组复制提供了高可用、高扩展、高可靠的MySQL集群服务。 1)高一致性 基于原生复制及paxos协议的组复制技术,并以插件的方式提供,提供一致数据安全保证; 2)高容错性 只要不是大多数节点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争用冲突时,不会出现错误,按照先到者优先原则进行处理,并且内置了自动化脑裂防护机制; 3)高扩展性 节点的新增和移除都是自动的,新节点加入后,会自动从其他节点上同步状态,直到新节点和其他节点保持一致,如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息; 4)高灵活性 有单主模式和多主模式,单主模式下,会自动选主,所有更新操作都在主上进行;多主模式下,所有server都可以同时处理更新操作。 MGR是MySQL数据库未来发展的一个重要方向。 MGR基础结构要求 1、引擎必须为innodb,因为需事务支持在commit时对各节点进行冲突检查 2、每个表必须有主键,在进行事务冲突检测时需要利用主键值对比 3、必须开启binlog且为row格式 4、必须打开GTID特性,且主从状态信息存于表中 (--master-info

MyCat数据库的基础配置及使用

痴心易碎 提交于 2020-03-04 10:20:18
一、为什么需要分布式数据据库 随着计算机和信息技术的迅猛发展,行业应用系统的规模迅速扩大,行业应用所产生的数据量呈爆炸式增长,动辄达到数百TB甚至数百PB的规模,已远远超出传统计算技术和信息系统的处理能力,集中式数据库面对大规模数据处理逐渐表现出其局限性。因此,人们希望寻找一种能快速处理数据和及时响应用户访问的方法,也希望对数据进行集中分析、管理和维护。这已经成为迫切需求。 分布式数据库是在集中式数据库的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库是指数据在物理上分布而在逻辑上集中管理的数据库系统。物理上分布是指数据分布在物理位置不同并由网络连接的节点或站点上;逻辑上集中是指各数据库节点之间的逻辑上是一个整体,并由统一的数据库管理系统管理。不同的节点分布可以跨不同的机房、城市甚至国家。 二、分布式数据库的特点 分布式数据库具有透明性、数据冗余性、易于扩展性、自治性等特点,还具有经济、性能优越、响应速度更快、灵活的体系结构、易于集成现有系统等特点。 分布式数据库尽管有着天生的高贵血统,但它依赖调整网络,对事务的处理远没有传统数据库成熟,在很长一段时间内分布式数据存储将与传统数据存储共存。 三、MyCat数据库中间件简介 MyCat是一个彻底开源的面向企业应用开发的大数据库集群,支持事务、ACID,是可以替代MySQL的加强版数据库

微服务架构介绍

 ̄綄美尐妖づ 提交于 2020-03-02 08:50:50
摘自: https://www.cnblogs.com/mrhelloworld/p/12388859.html 技术架构演变         随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。       单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。 缺点:随着应用功能的增多,代码量越来越大,越来越难维护,那怎么解决代码一体化的问题? 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 缺点:垂直架构中相同逻辑代码需要不断的复制,不能复用。每个垂直模块都相当于一个独立的系统。 分布式服务架构 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。 缺点:服务越来越多,需要管理每个服务的地址,调用关系错综复杂,难以理清依赖关系,服务状态难以管理,无法根据服务情况动态管理。 流动计算架构

Docker Swarm新版本发布对Kubernetes的意义

别等时光非礼了梦想. 提交于 2020-03-02 07:50:57
相比于普通的软件的开发速度,容器编排领域的发展速度相当惊人。基于容器的初创公司呈爆发式增长,这个领域的竞争也愈加激烈。这是一个好的开始,但是技术的选择却成为一个难题。在这样的情况下,我们目前关注了Docker和Swarm。 在Apprenda,我们的目标就是提交一个有创意的,稳定的,可以在长时间内比较好维护的编排技术。一个健康的社区有三个关键点。在对技术,社区和不同容器编排工具解决方案进行漫长的商业评估之后,我们选择了Kubernetes。然而,随着其它容器集群管理选项的增加,要重点了解相比于Kubernetes他们分别可以提供什么样的功能进行对比。 Docker即将发布1.12版本,这次的发布直接跟Kubernetes进行竞争。这次的新版本都是在名为SwarmKit的编排系统的基础上建立起来的。Docker Swarm目前增加了一些有趣的新功能,也属于Docker的一部分。比如,Docker CLI增加了一个将Swarm集群实例化的新功能。将Swarm实例化其实也就是创建一个Swarm Manager和CA证书的意思。值得注意的是,这个CA证书可以在不需要外部系统的情况下为Swarm Manager和所有Swarm集群生成证书,同时所有节点之间的交流由TLS来保证安全。这也就意味着不会再有不安全的Swarm集群了。对于创建和使用Swarm的开发者来说,安全已经完全是透明的了。

Postgresql备份和恢复

ⅰ亾dé卋堺 提交于 2020-03-02 03:50:56
和任何包含珍贵数据的东西一样,PostgreSQL 数据库也应该经常备份。尽管这个过程相当简单, 但是我们还是应该理解做这件事所用的一些技巧和假设。 备份 PostgreSQL 数据有三种完全不同的方法: SQL 转储 文件系统级别备份 在线备份 每种备份都有自己的优点和缺点。 SQL 转储 SQL 转储的方法采用的主意是创建一个文本文件,这个文本里面都是 SQL 命令,当把这个文件回馈给服务器时,将重建与转储时状态一样的数据库。 PostgreSQL 为这个用途提供了应用工具 pg_dump。这条命令的基本用法是: pg_dump dbname > outfile 正如你所见,pg_dump 把结果输出到标准输出。 我们下面就可以看到这样做有什么好处。 pg_dump 是一个普通的 PostgreSQL 客户端应用(尽管是个相当聪明的东西。)这就意味着你可以从任何可以访问该数据库的远端主机上面进行备份工作。 但是请记住 pg_dump 不会以任何特殊权限运行。具体说来, 就是它必须要有你想备份的表的读权限,因此,实际上你几乎总是要成为数据库超级用户。 要声明 pg_dump 应该以哪个用户身份进行联接,使用命令行选项 -h host 和 -p port。 缺省主机是本地主机或你的环境变量PGHOST声明的值。 类似,缺省端口是环境变量PGPORT或(如果它不存在的话