节点服务器

【转】Redis常见面试题

狂风中的少年 提交于 2019-12-05 16:26:10
介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。 传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。 Github 源码:https://github.com/antirez/redis Redis 官网:https://redis.io/ Redis支持的数据类型? String字符串: 格式: set key value string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个键最大能存储512MB。 Hash(哈希) 格式: hmset name key1 value1 key2 value2 Redis hash 是一个键值(key=>value)对集合。 Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 List(列表) Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 格式:

zookeeper

↘锁芯ラ 提交于 2019-12-05 14:29:39
Zookeeper是什么 官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。 上面的解释有点抽象,简单来说zookeeper=文件系统+监听通知机制。 1、 文件系统 Zookeeper维护一个类似文件系统的数据结构: 每个子目录项如 NameService 都被称作为 znode(目录节点),和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。 有四种类型的znode: PERSISTENT-持久化目录节点 客户端与zookeeper断开连接后,该节点依旧存在 PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点 客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号 EPHEMERAL-临时目录节点 客户端与zookeeper断开连接后,该节点被删除 EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点 客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号 2、 监听通知机制

程序员修神之路--kubernetes是微服务发展的必然产物

爱⌒轻易说出口 提交于 2019-12-05 13:55:28
菜菜哥,我昨天又请假出去面试了 战况如何呀? 多数面试题回答的还行,但是最后让我介绍微服务和kubernetes的时候,挂了 话说微服务和kubernetes内容确实挺多的 那你给我大体介绍一下呗 可以呀,不过要请和coffee哦 ◆◆ kubernetes介绍 ◆◆ 在很多项目的发展初期,都是小型或者大型的单体项目,部署在单台或者多台服务器上,以单个进程的方式来运行。这些项目随着需求的递增,发布周期逐渐增长,迭代速度明显下降。传统的发布方式是:开发人员将项目打包发给运维人员,运维人员进行部署、资源分配等操作。 随着软件行业架构方式的改变,这些大型的单体应用按照业务或者其他维度逐渐被分解为可独立运行的组件,我们称之为微服务。微服务彼此之间被独立开发、部署、升级、扩容,真正实现了大型应用的解耦工作。关于微服务的介绍,大家可以去撸一下菜菜之前的文章: https://mp.weixin.qq.com/s/b7Bd8giwWVNF1CtkaDaVpw https://mp.weixin.qq.com/s/BixgyGFrlwZ7wpgDdrmU_g 软件开发行业就是这样奇葩,每一个问题被解决之后总是伴随着另外的问题出现,就像程序员改bug,为什么总有改不完的bug,真的很令人头大!!! 微服务虽然解决了一些问题,但是随着微服务数量的增多,配置、管理、扩容、高可用等要求的实现变的越来越困难

redis三种模式

女生的网名这么多〃 提交于 2019-12-05 11:39:29
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。普遍用于目前主流的分布式架构系统中,关于redis的详细介绍,见另一篇文章: redis的安装与介绍 ​blog.csdn.net redis的多机数据库实现,主要分为以下三种: Redis哨兵(Sentinel) Redis复制(主从) Redis集群 一、Redis的主从复制 通过执行slaveof命令或设置slaveof选项,让一个服务器去复制另一个服务器的数据。被复制的服务器称为:Master主服务;对主服务器进行复制的服务器称为:Slave从服务器。主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步给从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数据。一个主数据库可以拥有多个从数据库,而一个从数据库只能拥有一个主数据库。 主从复制问题:当master down,需要手动将一台slave使用slaveof no one提升为master要实现自动,就需要redis哨兵。 实现原理步骤: 从服务器向主服务器发送SYNC命令 主服务器收到SYNC命令后,执行BGSAVE命令,在后台生成RDB文件,使用缓冲区记录从现在开始执行的所有的写命令。 当主服务器的BGSAVE命令执行完毕后

分布式问题分析

人走茶凉 提交于 2019-12-05 11:24:56
分布式问题分析 https://www.cnblogs.com/zhang-qc/p/8688052.html 原作者的blog问题写的非常好 先分布式 才能cloud native 参考: https://github.com/CyC2018/Interview-Notebook/blob/master/notes/ 业务中的分布式: 分布式 存储 :将数据分片到多个节点上,不仅可以提高性能(可扩展性),同时也可以使用多个节点对同一份数据进行备份(高可用性) 分布式 计算 :将一个大的计算任务分解成小任务分配到多个节点上去执行,再汇总每个小任务的执行结果得到最终结果。MapReduce 是分布式计算最好的例子。 分布式事务: 指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。 产生的原因: 数据库分库分表; SOA 架构,比如一个电商网站将订单业务和库存业务分离出来放到不同的节点上。 解决办法: 1. 两阶段提交协议(很好地解决分布式事务问题) 2. 消息中间件(本质上是一个暂存转发消息的一个中间件) 处理模型:(1)点对点;(2)发布/订阅 负载均衡的算法与实现: 算法有轮询(Round Robin)、加权轮询、最少连接(将请求发送给当前最少连接数的服务器)、加权最小连接、随机算法 上面的没有加权的适合服务器性能差不多场景 Zookeeper 分布式锁  

A Hybrid Blockchain Ledger for Supply Chain Visibility

烈酒焚心 提交于 2019-12-05 10:40:46
Abstract 通过提高贸易伙伴的可见度来优化实物分销可直接影响产品成本。然而,当前的供应链信息系统通常缺乏经济有效地将地面实况信息近乎实时地传递给所有利益相关者,最重要的是在运输过程中向供应商和客户传递的能力。本文提出了一种通过点对点架构解决这一差距的解决方案,该架构可以支持在供应链的物流分配阶段对可见性和及时交付信息的不断增长的需求。所提出的解决方案的附加特征包括传递给贸易伙伴的信息的可扩展性,隐私性和有效性。该解决方案使小型,中型和大型企业能够通过私有区块链子分类账以动态和以货物为中心的方式进行交互,该子分类帐将每批货物的托管链转移数字化。此私人分类帐中的信息由公共事件分类帐增强,该分类帐近乎实时地反映货件的移动。第三方监视器通过将事件形式的物理接近度发布到公共分类帐,从而验证货物的地理位置。 INTRODUCTION 全球供应链(SC)是供应商,制造商,仓储商,运营商和客户之间交互和权衡的复杂而动态的组合,以便在合适的时间和正确的条件下提供正确的产品[1]。典型的SC包括八个主要流程:客户关系管理,客户服务管理,需求管理,订单履行,制造管理,供应商关系管理,产品开发和退货管理[2]。支持这些流程中的权衡决策以便最大化利润而不仅仅是为了最小化成本的数据分布在全球SC中,系统和基础数据的所有权根据所做出的决策类型而变化。在过去的二十年中,企业解决方案已经开发出来

阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建

徘徊边缘 提交于 2019-12-05 08:43:23
本篇将在 阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建 的基础上搭建,多添加了一个 datanode 节点 。 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里云ECS服务器:master, slave1, slave2 操作系统: CentOS 7.3 Hadoop: hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz HBase: hbase-1.2.6-bin.tar.gz ZooKeeper: zookeeper-3.4.14.tar.gz 1.2 各节点角色分配 master: NameNode、SecondaryNameNode、HMaster、QuorumPeerMain slave1: DataNode、HMaster(候补节点)、HRegionServer、QuorumPeerMain slave2: DataNode、HRegionServer、QuorumPeerMain 2 HBase 下载 下载 hbase-1.2.6-bin.tar.gz 并在合适的位置解压缩,笔者这里解压缩的路径为: /usr/local 将解压得到的目录改名为 hbase 1 cd /usr/local 2 mv hbase-1.2.6/ hbase/ 3 添加 HBase 环境变量 在"

Redis面试50题

空扰寡人 提交于 2019-12-05 07:37:31
1、什么是Redis? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。 2、Redis相比memcached有哪些优势? (1) memcached所有的值均是简单的字符串,redis作为其替代者, 支持更为丰富的数据类型 (2) redis的速度比memcached快很多 (3) redis可以持久化其数据 3、Redis支持哪几种数据类型

Zookeeper系列(一)

空扰寡人 提交于 2019-12-05 05:28:50
一、ZooKeeper的背景 1.1 认识ZooKeeper ZooKeeper---译名为“动物园管理员”。动物园里当然有好多的动物,游客可以根据动物园提供的向导图到不同的场馆观赏各种类型的动物,而不是像走在原始丛林里,心惊胆颤的被动 物所观赏。为了让各种不同的动物呆在它们应该呆的地方,而不是相互串门,或是相互厮杀,就需要动物园管理员按照动物的各种习性加以分类和管理,这样我们才能更加放心安全的观赏动物。 回到企业级应用系统中,随着信息化水平的不断提高,企业级系统变得越来越庞大臃肿,性能急剧下降,客户抱怨频频。拆分系统是目前我们可选择的解决系统可伸缩性和性能问题的唯一行之有效的方法。但是拆分系统同时也带来了系统的复杂性——各子系统不是孤立存在的,它们彼此之间需要协作和交互,这就是我们常说的分布式系统0。各个子系统就好比动物园里的动物,为了使各个子系统能正常为用户提供统一的服务,必须需要一种机制来进行协调——这就是ZooKeeper(动物园管理员)。 1.2 为什么使用ZooKeeper 我们知道要写一个分布式应用是非常困难的,主要原因就是局部故障。一个消息通过网络在两个节点之间传递时,网络如果发生故障,发送方并不知道接收方是否接收到了这个消息。他可能在网络故障迁就收到了此消息,也坑没有收到,又或者可能接收方的进程死了。发送方了解情况的唯一方法就是再次连接发送方,并向他进行询问

Redis从入门到精通

梦想的初衷 提交于 2019-12-05 05:23:05
常用的 SQL 数据库的数据都是存在磁盘中的,虽然在数据库底层也做了对应的缓存来减少数据库的 IO 压力。 由于数据库的缓存一般是针对查询的内容,而且粒度也比较小,一般只有表中的数据没有发生变动的时候,数据库的缓存才会产生作用。 但这并不能减少业务逻辑对数据库的增删改操作的 IO 压力,因此缓存技术应运而生,该技术实现了对热点数据的高速缓存,可以大大缓解后端数据库的压力。 主流应用架构 客户端在对数据库发起请求时,先到缓存层查看是否有所需的数据,如果缓存层存有客户端所需的数据,则直接从缓存层返回,否则进行穿透查询,对数据库进行查询。 如果在数据库中查询到该数据,则将该数据回写到缓存层,以便下次客户端再次查询能够直接从缓存层获取数据。 缓存中间件 Memcache 和 Redis 的区别 Memcache 的代码层类似 Hash,特点如下: 支持简单数据类型 不支持数据持久化存储 不支持主从 不支持分片 Redis 特点如下: 数据类型丰富 支持数据磁盘持久化存储 支持主从 支持分片 为什么 Redis 能这么快 Redis 的效率很高,官方给出的数据是 100000+QPS,这是因为: Redis 完全基于内存,绝大部分请求是纯粹的内存操作,执行效率高。 Redis 使用单进程单线程模型的(K,V)数据库,将数据存储在内存中,存取均不会受到硬盘 IO 的限制,因此其执行速度极快。