精华内容
下载资源
问答
  • 比如10.10.7.52(registry.harbor.com)是主harbor,打算重新搭建一个10.10.37.197(reigstry-bak.harbor.com)的harbor。 10.10.37.197上要做的事:下载harbor离线安装包,解压到/usr/local/;修改主机名为...

    比如10.10.7.52(registry.harbor.com)是主harbor,打算重新搭建一个10.10.37.197(reigstry-bak.harbor.com)的备harbor。

    10.10.37.197上要做的事:
    下载harbor离线安装包,解压到/usr/local/;
    修改主机名为registry-bak.harbor.com(hostnamectl set-hostname --static registry-bak.harbor.com);
    修改/usr/local/harbor/harbor.cfg的“hostname = registry-bak.harbor.com”;
    安装docker、docker-compose;
    修改/etc/sysconfig/docker,“OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'”去掉“--selinux-enabled”;
    启动harbor,cd /usr/local/harbor,执行./install.sh(重启harbor也可以用这个脚本,镜像和harbor相关配置不会丢失);
    客户端加上到registry-bak.harbor.com的解析后,浏览器访问试试,admin、Harbor12345。

    10.10.7.52上要做的事:
    因为由harbor搭建出来的docker容器没有指定使用独立的dns,所以由harbor建出来的容器都是使用的宿主的dns,如果宿主的dns没有到registry-bak.harbor.com的解析,这时候起来了容器,那所有容器也没有到registry-bak.harbor.com的解析;之后再给宿主的dns加上了到registry-bak.harbor.com的解析,而没有重启容器的话,容器也依然没有到registry-bak.harbor.com的解析。所以在registry.harbor.com(10.10.7.52)这个web上新建复制策略,目标地址写上“http://registry-bak.harbor.com”,会报错:“测试连接目标失败,请检查设置。failed: Temporary failure in name resolution。”
    所以,必须保证主harbor宿主有到备harbor域名的dns解析,同时如果dns生效之时容器已经启动了的,还需要重启一下所有容器,即重启harbor服务(./install.sh)。

    转载于:https://blog.51cto.com/10546390/2055400

    展开全文
  • 在面试过程中,大数据领域的数据仓库是必问内容,但发现很多面试者只是知道仓库分层,至于为什么分层,怎么分层,以及各层中存储的是什么数据,数据如何维护,为什么这么存储,好处和坏处是什么等进一步的问题却答不...
  • 必备电子书仓库

    2011-02-28 23:55:57
    [b]必备电子书仓库[/b]
    [b]必备电子书仓库[/b]
    展开全文
  • 文章目录Maven仓库Maven仓库的分类本地仓库远程仓库中央仓库私服小结 Maven仓库 上一篇讲了maven仓库的好处和maven仓库的布局。这次就来好好将一下maven仓库。讲一下maven仓库的分类、各自的作用及一些配置。 Maven...

    Maven仓库

    上一篇讲了maven仓库的好处和maven仓库的布局。这次就来好好将一下maven仓库。讲一下maven仓库的分类、各自的作用及一些配置。

    Maven仓库的分类

    了解maven仓库,是我们在使用maven仓库的必备知识。大致分为:本地仓库和远程仓库。理解起来很简单,本地仓库就是部署在我们本地电脑上的,远程仓库就是专门的服务器来部署。作用方面:本地仓库就是我们项目直接引用的一些构件都放在其中(其实就是一个文件夹)。远程仓库,就是面向与互联网的,大家都可以访问,也可以上传自己的构件,但是得通过认证,不然管理这些仓库的人肯定受不了。当然远程仓库又分为:中央仓库,私服。看图:
    在这里插入图片描述

    本地仓库

    maven项目是一般是不存在lib文件夹的,依赖构件都放在本地仓库中,进行统一管理。我们的项目需要使用依赖文件的时候,它就会通过坐标去仓库中寻找使用本地仓库的依赖。
    但是它究竟放在哪里呢?这里分为两种情况:
    第一种情况:我们没有进行配置maven的配置文件(也就是settings.xml 文件)它是我们计算机的用户目录下有一个 .m2\repository 的目录下。在这里插入图片描述
    看一下我们默认的本地仓库,这个我们在安装maven的时候就会自动创建。
    在这里插入图片描述
    第二种情况:我们当然不希望依赖放在C盘(系统盘),大多数情况下,我甚至都不往系统盘装任何软件,当然有时候在所难免。但是这些依赖还是可以进行操作的。首先打开maven的配置文件,找到了本地仓库的配置部分(localRespository)
    在这里插入图片描述从这里可以看出,默认的地址是 ${user.home}/.m2/repository 。{ }中内容的是指的我们电脑的本地变量。回归正题,我们需要自定义本地仓库的路径只需要在< localRepository > 中写上我们想要放在位置的路径即可。

    <localRepository>D:\apache-maven-3.6.1-bin\maven</localRepository>
    

    在这里插入图片描述

    远程仓库

    远程仓库分为两种:中央仓库,私服。什么是中央仓库呢?就是直接放在互联网上的,供大家都可以去下载使用。私服,就是我们自己在局域网内架设的一个服务器,只供我们自己来使用。理解起来也很简单吧,市面上有专门的maven仓库的搭建方式。

    中央仓库

    所谓的中央仓库,可以理解为就是放在互联网上的仓库。最出名的就是:https://mvnrepository.com/ 当然不止这一个。
    在这里插入图片描述
    查看maven的配置文件
    在这里插入图片描述
    由于原始的本地仓库是空的,Maven必须要知道至少一个可用的远程仓库,才能在执行Maven命令的时候下载需要的构件。(至少一个,表示可以配置多个哦!,配置多个当备份呗。)

    • < id > 表示当前中央仓库的ID,这个我们可以随便起,配置镜像的时候会用到(后续会讲)。但是需要注意的是要唯一。
    • < name > 就是我们中央仓库的名字,这个也可以随便起。
    • < url > 是我们中央仓库的IP地址,复制一下就好了。
    • < layout > 我们要根据仓库的布局方式进行配置,我个人认为就是告诉maven中央仓库的仓库布局方式,不然maven按照什么规则去找呢?具体值看仓库。
    • < snapshots > < enabled > 表示我们可以从中央仓库下载快照版本。后面会详细讲。

    私服

    私服就是架设在局域网的中央仓库。好处是:

    • 节省自己的外网带宽。
      举个例子:你跟女朋友在使用同一个网络,此时你在搭建你的项目,需要下载一堆依赖。而你的女朋友正在打游戏,网速大量被你占用,你女朋友卡的要死,绝对要哔哔你。这也就是以前网吧禁止看黄片的原因(小的时候在黑网吧上网,就遇到过)嘿嘿。
    • 加速Maven项目的构建。
      为啥加速Maven项目的构建了呢?大家都知道正常情况下,局域网比外网要快很多。依赖构件下载的快了,项目不就构建的快了。
    • 部署第三方构件。
      这个会涉及到版权问题,比如Orcal的数据库驱动是不开源的,你们公司买了以后,大家都需要用到,怎么办呢?不能放在中央仓库上,肯定也不会一个一个的来拷贝吧,最好的办法就是放在私服上。同时也方便公司内部的构件放在私服上。
    • 提高稳定性,增强控制。
      局域网肯定比外网稳定。而且,我的局域网,当然我来管理了。
    • 降低中央仓库的负荷。
      少一些人去直接访问中央仓库,负荷不就低了。

    常见的私服:Sonatype Nexus 、Jarvana 、 MVNbrowser 、MVNrepository 。具体架设私服的私服的方式就不在这里赘述了。网上教程一大把。自己可以配置玩玩。

    小结

    本篇重点是,搞清楚仓库的种类,本地仓库及中央仓库的基本配置。

    展开全文
  • 此外, Kafka还可以为partition配置副本机制, 一个主副本对外提供服务, 多个从副本提供冷功能(即只起备份作用, 不提供读写). (1) 从副本为什么不提供读写服务, 只做备份? 因为如果follower副本也提供写服务的话, ...

    为什么使用消息队列?

    解耦异步削峰

    (1) 解耦

    现有系统A, B, C, 系统B和C需要系统A的数据, 然后我们就修改系统A的代码, 给系统B, C发送数据. 这时系统D也需要系统A的数据, 我们又要修改系统A的代码, 给系统D发送数据. 如果这时系统B不需要系统A的数据了呢? 简直崩溃了, 新增或减少一个系统, 我们都要去修改系统A的代码, 而且我们还需要考虑调用的系统挂掉了怎么办, 是否要将数据存起来, 是否要重发等等, 这是非常不合理的一种设计, 我们需要引入消息队列.

    引入消息队列后, 系统A产生的数据直接发送到消息队列中, 哪个系统需要系统A的数据就直接去消息队列中消费, 这样系统A就和其他系统彻底解耦了.

    (2) 异步

    客户端调用A系统的一个接口处理某个功能, 该功能需要调用B, C, D系统进行处理, 如果A系统自身耗时为20ms, B, C, D系统耗时分别是300ms, 450ms, 200ms, 最终接口返回时总共耗时970ms, 这肯定是不可接受的, 我们需要引入消息队列.

    引入消息队列后, 系统A将消息发送到消息队列中就可以直接返回, 接口总共耗时很短, 用户体验非常棒.

    (3) 削峰

    在高并发场景下(比如秒杀活动)某一刻的并发量会非常高, 如果这些请求全部到达MySQL, 会导致MySQL崩溃, 这时我们需要引入消息队列, 先将请求积压到消息队列中, 让MySQL正常处理.

    消息队列有什么优缺点?

    (1) 优点

    解耦异步削峰

    (2) 缺点

    系统可用性降低,MQ一旦挂掉, 整个系统就崩溃了.系统复杂度提高,引入MQ后需要考虑一系列问题, 比如消息丢失, 重复消费, 消息消费的顺序等等.一致性问题,没有引入MQ之前有事务来保证一致性, 引入MQ后如果某一步执行失败, 这就导致数据不一致了.

    ActiveMQ、RabbitMQ、Kafka、RocketMQ都有什么优点和缺点?

    (1) ActiveMQ和RabbitMQ单击吞吐量是万级, Kafka和RocketMQ的单机吞吐量是10万级.

    (2) 四种MQ的时效性, 可用性, 消息可靠性都很高.

    (3) ActiveMQ的社区不太活跃, 其他三种MQ的社区比较活跃.

    (4) RabbitMQ是基于Erlang语言开发, 对Java开发者不太友好.

    (5) Kafka当topic数量达到1000时吞吐量会大幅度下降, 而RocketMQ影响不太(这是RocketMQ相对于Kafka的一大优势)

    (6) Kafka的功能简单, 吞吐量高, 天然适合大数据实时计算以及日志采集.

    如何保证消息队列的高可用?

    回答自己熟悉的消息队列, 如Kafka.

    Kafka是一个分布式的消息队列, 一个topic有多个partition, 每个partition分布在不同的节点上. 此外, Kafka还可以为partition配置副本机制, 一个主副本对外提供服务, 多个从副本提供冷备功能(即只起备份作用, 不提供读写).

    (1) 从副本为什么不提供读写服务, 只做备份?

    因为如果follower副本也提供写服务的话, 那么就需要在所有的副本之间相互同步. n个副本就需要 n x n 条通路来同步数据, 如果采用异步同步的话, 数据的一致性和有序性是很难保证的, 而采用同步方式进行数据同步的话, 那么写入延迟其实是放大n倍的, 反而适得其反.

    (2) 从服务为什么不提供读服务呢?

    这个除了因为同步延迟带来的数据不一致之外, 不同于其他的存储服务(如ES,MySQL), Kafka的读取本质上是一个有序的消息消费, 消费进度是依赖于一个叫做offset的偏移量, 这个偏移量是要保存起来的. 如果多个副本进行读负载均衡, 那么这个偏移量就不好确定了.

    总结一下, 从副本不提供读写服务的原因就是很难保证数据的一致性与有序性, 而且也没必要提供读写服务, Kafka是一个消息队列, 副本的作用是保证消息不丢失.

    partition主从副本数据同步

    生产者发布消息到某个分区时, 先通过ZooKeeper找到该分区的leader副本, 然后将消息只发送给leader副本, leader副本收到消息后将其写入本地磁盘. 接着每个follower副本都从leader副本上pull消息, follower副本收到消息后会向leader副本发送ACK(acknowledge). 一旦leader副本收到了 ISR (in-sync replicas) 中的所有副本的ACK, 该消息就被认为已经commit了, 然后leader副本向生产者发送ACK. 消费者读消息只会从leader副本中读取, 只有被commit过的消息才会暴露给消费者.

    ISR(in-sync replicas)是与leader副本保持同步状态的follower副本列表, 如果一段时间内(replica.lag.time.max.ms) leader副本没有收到follower副本的拉取请求, 就会被leader副本从ISR中移除. ISR中的副本数必须大于等于 min.insync.replicas, 否则producer会认为写入失败, 进行消息重发.

    主副本选举

    当leader副本挂掉后, 集群控制器(即Master节点)会从ISR中选出一个新的主副本(ISR中的第一个, 不行就依次类推 ).

    集群控制器选举

    集群中的第一个broker通过在Zookeeper的 /controller 路径下创建一个临时节点来成为控制器, 当其他broker启动时, 也会试图创建一个临时节点, 但是会收到“节点已存在”的异常, 这样便知道集群控制器已存在. 这些broker会监听Zookeeper的这个控制器临时节点, 当控制器发生故障时, 该临时节点会消失, 这些broker便会收到通知, 然后尝试去创建临时节点成为新的控制器.

    如何保证消息不被重复消费(如何保证消息消费时的幂等性)?

    (1) 导致消息重复消费的原因?

    分区重平衡

    消费者重启或宕机

    这两个原因都会导致消费者在消费消息后没有提交offset.

    (2) 解决办法

    这个问题只能通过业务手段来解决, 比如我们在消费前先查询数据库, 判断是否已消费(status = 1), 或消费后在Redis中做个记录, 下次消费前先从Redis中判断是否已消费.

    如果保证消息不丢失(如何保证消息的可靠性传输)?

    (1) 导致消息丢失的原因?

    kafka没有保存消息.

    消费者还没消费就提交了offset, 然后消费者重启或宕机, 分区重平衡.

    (2) 解决办法

    配置partition副本机制.

    default.replication.factor 每个分区的副本数必须大于1.min.insync.replicas 与主副本保存同步状态的从副本数必须大于等于1.Producer端的配置acks=all, 指数据写入min.insync.replicas个从副本后才算写入成功.Producer端的配置retries=MAX(一个很大的值, 表示无线重试的意思), 指数据一旦写入失败, 就无限重试.

    关闭自动提交offset, 改为手动提交.

    先消费, 消费成功后再手动提交offset.

    如何保证消息的顺序性?

    kafka只保证单个分区内的消息有序, 所以要想保证消息的顺序性, 只能一个topic, 一个partition, 一个consumer.

    如果在consumer端开多个线程来进行消费, 如何保证消息的顺序性?

    一个topic, 一个partition, 一个consumer, consumer内部单线程消费, 写N个内存queue, 然后开N个线程分别消费一个内存queue中的消息.

    消息队列快写满了怎么办?

    一般出现这种问题的原因就是消费端出了故障, 导致无法消费或消费极慢, 这时有两种解决办法, 根据不同的场景选择不同的解决办法.

    (1) 紧急扩容

    临时征用10倍的机器来部署consumer, 新建一个topic, partition是原来的10倍. 写一个临时分发数据的consumer程序, 将积压的数据不做处理, 直接分发给临时建好的topic. 以10倍的速度消费积压的消息, 消费完之后再恢复原来的部署.

    (2) 批量重导

    写一个临时分发数据的consumer程序, 将积压的数据直接丢弃. 等高峰期过后, 写个临时程序, 将丢失的那批数据重新导入消息队列中.

    如果让你自己写一个消息队列, 该如何进行架构设计?

    我们可以用Kafka的架构设计来回答这个问题.

    (1) 分布式

    这个消息队列必须分布式的, 这样通过水平扩展集群就可以增加消息队列的吞吐量与容量. 分布式的消息队列必须要有一个master节点来管理整个集群, 可以通过Zookeeper来实现master节点选举算法.

    (2) 可用性

    一个topic必须支持多个partition, 且partition数量可以增加, 每个partition分布在不同的节点上. partition内通过offset来保证消息的顺序. 同时为了保证可用性, 每个分区必须设置副本, 主副本提供读写服务, 从副本只作备份即可. 当主副本所在的节点宕机后, master节点会在从副本中选出一个作为主副本, 然后当宕机的节点修复后, master节点会将缺失的副本分配过去, 同步数据后, 集群恢复正常.

    (3) 高性能

    为了保证高吞吐量, 我们可以使用批量压缩, 顺序写, 零拷贝技术.

    (4) 解决消息丢失方案

    消息必须写入所有副本中才算写入成功.

    Kafka为什么速度那么快?

    我们都知道Kafka的核心特性之一就是高吞吐率, 但Kafka的数据是存储在磁盘上的, 一般认为在磁盘上读写数据性能很低, 那Kafka是如何做到高吞吐率的呢?

    批量压缩顺序写零拷贝 Kafka高吞吐率的秘诀在于, 它把所有的消息都进行批量压缩, 提升网络IO, 通过顺序写和零拷贝技术提升磁盘IO

    ·END·


    如果您喜欢本文,欢迎点击右上角,把文章分享到朋友圈~~

    作者:椰子Tyshawn

    来源:https://blog.csdn.net/litianxiang_kaola/article/details/104138183

    版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!

    展开全文
  • 上海到贵州油漆存放仓库危险品仓库,上海易安物流有限公司,有各式箱式货车、平板车、半封闭车,车箱长度分别为米——米不等。上海到贵州油漆存放仓库危险品仓库仓库设备齐全:小型仓库需有货架,流水线,拖车...
  • 自动化部署必备技能—搭建YUM仓库.docx
  • 自动化部署必备技能—搭建本地YUM仓库.docx
  • 在本地使用建立了一个仓库A,然后在远程建立了一个仓库B,现在需要把本地的A仓库和远程的B仓库建立连接,并且保持同步。如何将本地仓库与远程仓库建立连接呢?...第三步:提交所有文件gitcommit-m"这里是...
  • 此外, Kafka还可以为partition配置副本机制, 一个主副本对外提供服务, 多个从副本提供冷功能(即只起备份作用, 不提供读写). (1) 从副本为什么不提供读写服务, 只做备份? 因为如果follower副本也提供写服务的话, ...
  • 此外, Kafka还可以为partition配置副本机制, 一个主副本对外提供服务, 多个从副本提供冷功能(即只起备份作用, 不提供读写). (1) 从副本为什么不提供读写服务, 只做备份? 因为如果follower副本也提供写服务的话, ...
  • YUM仓库介绍1.1 YUM是什么1.2 YUM源是什么?1.3 YUM源工作原理2. YUM安装步骤3. YUM服务配置文件及命令介绍3.1 yum主配置文件yum.conf3.2 yum命令使用.4. 镜像同步公网yum源1. YUM仓库介绍自动化部署必备技能—搭建...
  • 用于github、gitee远程仓库的下拉和本地仓库上推 常用: git clone https://………. #远程仓库下拉到本地 git add . #添加所有文件至缓存 git add a.txt #只添加a.txt到缓存 git commit -m '注释信息' git push #...
  • 算法面试必备-----数据仓库常见面试题算法面试必备-----数据仓库常见面试题问题:简述数据仓库中的表的基本类型,以及为了保证引用完整性该以什么样的顺序对它们进行加载问题:事实表和维度表的概念及类型事实表的...
  • 爱数据学习社welcome数据仓库可以算是数据产品必须要了解的技术知识了, 在一年前的数据产品求职分析中,其中技能要求这一项中,数据仓库可是占了一席之地的。对于准备求职数据产品的同学来说,可能身边没有做数仓...
  • 要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源。网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败...
  • 要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源。网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败...
  • ) 等)写了一些代码,想进行版本控制,以将来不时之需。 自己的一些资料,可能需要时常更新,但又想保留历史版本(比如我自己,就有一份专门记录所有常用密码的txt文件) 对于这种需求,我们自然而然的会想到一些 ...
  • 数仓——为解决多系统的整合而生 用户变现 推荐 ECIF 用户管理系统 40个子系统 P2P ...举例说明会数据仓库和数据集市的区别 数据集市是基于主题的。主题下的所有表都是同一类型的表    

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,027
精华内容 410
关键字:

仓库备库