分布式架构
文章平均质量分 83
Moutai码哥
广漂一枚,认真做好技术,等混不下去就回家卖酒,哈哈...
展开
-
基于容器云提交spark job任务
spark提交Kind=Job类型的任务,首先需要申请具有Job任务提交权限的rbac,然后编写对应的yaml文件,通过spark-submit命令提交任务到集群执行。原创 2023-03-04 19:21:41 · 1775 阅读 · 0 评论 -
一份上K8s应用调优的JVM记录
下载:https://github.com/etcd-io/etcd/releases/tag/下载amd安装包:etcd-v3.x-linux-amd64.tar.gz1.2 集群部署https://etcd.io/docs/v3.4/op-guide/clustering/修改三台服务器的hosts:192.168.0.208 k8s-01192.168.0.53 k8s-02192.168.0.135 k8s-03后台部署运行:nohup ./etcd --name etcd_01原创 2021-11-03 23:08:02 · 778 阅读 · 0 评论 -
基于kubernetes构建spark集群(RC模式)
基于kubernetes部署spark的两种方式方式一:使用kubernetes作为集群管理器(Cluster Manager),类似与mesos和yarn,使用方式可搜索github查看running-on-kubernetes。但这个部署方式,一是还不成熟(目前Deprecated),不推荐在生产环境使用.方式二:standalone的方式,即便是不用集群也能很方便的调用sbin下的脚本来部署,而使用k8s有几点好处,一是提高机器使用率(一般服务器资源白天使用率较高,晚上空闲,刚好能拿来跑数据);原创 2021-09-07 22:02:00 · 811 阅读 · 0 评论 -
基于kubeadm搭建高可用(多master)kubernetes v1.19集群-高可用篇
1、架构规划需要增加Load balancer,使得node节点的访问流量可以负载到master类型节点。keeplive:配置虚拟IP,检查当前节点状态;haproxy:类似于niginx,负载均衡(虚拟IP会漂移到其中一个master节点),可以平均分配流量到master1,master2;haproxy与nginx区别:nginx是master-workers多进程,每个进程单线程,多核CPU能充分利用;haproxy是多线程,单进程就能实现超高性能,虽然haproxy也能多进程,但是网上资原创 2021-07-17 22:26:25 · 1134 阅读 · 0 评论 -
基于二进制方式搭建K8s集群-部署CNI网络和Dashboard
8、部署CNI网络8.1、node节点部署CNI(1)下载地址 https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz #并将文件拷贝到虚拟机/opt目录;(2) 文件准备 #创建文件夹 mkdir /opt/cni/bin #解压文件 tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /原创 2021-07-17 22:13:36 · 1100 阅读 · 1 评论 -
docker常用命令与部署方式
1.0 Docker 使用(1)登录本地仓库docker login 仓库地址 -username xx -password(2) 搜索镜像docker images| grep 镜像名称(3)拉取镜像docker pull 镜像名称(4) 推送镜像docker push 镜像名称(4) 从当前目录Dockerfile文件构建镜像docker build -t 镜像名称:Tag . docker build -t acimagehub.com.cn/projectCode_dev原创 2021-06-13 09:41:20 · 650 阅读 · 0 评论 -
在Alluxio上运行Apache Hive
The Apache Hive ™ 数据仓库软件使用SQL,方便读取、写入和管理驻留在分布式存储中的大型数据集。结构可以投影到已经存储的数据上。提供了一个命令行工具和JDBC驱动程序来将用户连接到Hive。我们都知道,Hive作为数据仓库工具,传统文件数据处理大都是搭配Hadoop使用。此处将描述如何搭配Alluxio内存加速使用,让你的批处理任务速度飞起来。本节将使用apache-hive-3.1.2与alluxio2.3|2.4结合,验证数仓功能使用。1.Hive部署1.1.前期准备先下载Hi原创 2021-05-02 12:20:46 · 591 阅读 · 0 评论 -
Hadoop的部署与Minio区别
我们都知道,Hadoop是一个由Apache基金会所开发的基于分布式系统基础架构。使用用户可以在不了解分布式底层细节的情况下,进行分布式程序开发。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),不但包括分部署文件系统,而且还包括MapReduce计算,其中一个组件是HDFS。##Hadoop集群部署1.0 创建文件夹以haddop-3.2.1版本为例,先进行解压,进入到hadoop-3.2.1目录下创建文件夹;hadoo原创 2021-05-01 23:12:46 · 4942 阅读 · 0 评论 -
Kafka-一文读懂架构、源码、调优与面试
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据,Kafka结合了三个关键功能:发布(写入)和订阅(读取)事件流,包括从其他系统连续导入/导出数据;持久可靠地存储事件流;当事件发生或追溯时处理事件流。所有这些功能都是以分布式、高度可扩展、弹性、容错和安全的方式提供的。Kafka可以部署在裸机硬件、虚拟机和容器上,也可以部署在本地和云中。您可以在自我管理Kafka环境和使用各种原创 2021-04-03 13:57:01 · 295 阅读 · 0 评论 -
RocketMQ-一文读懂架构、源码、调优与面试
Apache Rocketmq是一个分布式消息和流平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性,本文将从架构设计、源码解读、使用经验、调优调优,解剖MQ的特征。1.1、MQ架构(Broker-分片)支持多Master,可实现同步或者异步双写;Broker Master和Broker Slave是通过jdk原生的nio(SocketChannel)通信实现数据同步,Producer与Broker,Consumer与Broker通过Netty进行通信,NameServer与其他通过Nett原创 2021-03-28 16:23:33 · 475 阅读 · 1 评论 -
【数据平台】Elasticsearch-调优实践
Elasticsearch调优垃圾回收实现目标:需要实现是小而多次的垃圾回收,而不是一次长时间的回收,从而保证应用在稳定的性能水平运行。1.1 JVM调优1.1.1 使用jstat命令:jstat -gcutil pid 2000 1000gcutils:表示监控垃圾回收器的工作;2000:毫秒表示的采样周期;1000:是采样的数量;显示结果:S0 S1 E O P YGC YGCT FGC FGCT GCT调优分析(先年轻代,后老年代)当S0、S2或者E列显示为1原创 2021-03-08 23:44:19 · 880 阅读 · 1 评论 -
【商城】canal数据库数据实时同步利器-代码实战干货
场景说明,因电商业务高并发与实时性要求 ,需要实现多库多表数据实时同步到Elasticsearch,并实现其他消息通知功能。实现方式主要是基于业务 trigger 获取增量变更。业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。生产使用Canal版本为1.1.4,MySQL版本为8.x。基于日志增量订阅和消费的业务包括数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处理1、项目说明整原创 2021-02-01 22:56:09 · 363 阅读 · 2 评论 -
【数据平台】之Cassandra大数据利器-大规模数据迁移sstableloader
过去,在Cassandra中批量加载数据一直很困难。尽管Cassandra从一开始就具有BinaryMemtable接口,但是BinaryMemtable难以使用,并且与普通客户端写入相比,吞吐量有了较小的提高。Cassandra 0.8.1引入了解决此问题的新工具: sstableloader使用 sstableloader有关最新信息,请参见 DataStax社区文档。sstableloader 是一种稳定的数据文件处理工具,将已经生成好的数据流式传输到整个群集。它不是简单地将sstables复原创 2021-01-19 22:22:23 · 964 阅读 · 1 评论 -
【数据平台】之Alluxio内存加速S3文件系统数据利器
Alluxio 是大数据领域数据内存加速利器,是世界上第一个面向基于云的数据分析和人工智能的开源的数据编排技术。 它为数据驱动型应用和存储系统构建提供了桥梁, 将数据从存储层移动到距离数据驱动型应用更近的位置,从而使得数据能够更容易被访问。 这还使得应用程序能够通过一个公共接口连接到许多存储系统。 Alluxio内存至上的层次化架构使得数据的访问速度能比现有方案快几个数量级。在现有大数据生态系统中,Alluxio 位于数据驱动框架或应用(如 Apache Spark、Presto、Tensorflow、A原创 2021-01-17 22:20:59 · 1334 阅读 · 0 评论 -
【数据平台】之Kafka+Minio数据埋点大数据利器
商城埋点数据,即客户在商城的购买行为的各种浏览数据,是对客户购买行为分析的重要资产。在大数据领域,可以通过收集客户行为数据,分析客户行为规律,进而指导商城各种营销活动制定。例如淘宝和京东展示的各种维度分析报表,可展现客户购买偏好,浏览商品偏好,地域性偏好等;另一个重要应用便是商城“商品推荐”,商城商品推荐便时对客户浏览和购买行为综合分析的结果,在亚马逊“商品推荐”能为企业商城来带40%左右的营收。基于此,对客户行为数据保存就显得至关重要。流程图1、通过kafka实时接收商城端行为(埋点)数据;2、通原创 2021-01-17 15:59:39 · 2158 阅读 · 2 评论 -
【数据平台】之Cassandra大数据利器-代码实战干货I
网上不少采用SpringBoot方式集成cassandra,但这些方式并非官方原生的API直接调用,spring boot体系进行了二次封装,或多或少存在一定的性能损耗,接下来本文将以Cassandra 3.6.x版本为例,阐述如何在生产环境使用官方原生API进行Spring编程。1、POM文件依赖<dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassand原创 2021-01-17 12:35:19 · 482 阅读 · 0 评论 -
【商城】Minio+ImgProxy商城图片一站式处理
方法原创 2021-01-16 17:24:31 · 3343 阅读 · 1 评论 -
【商城】canal数据库数据实时同步利器
此处将以Alibaba canal([https://github.com/alibaba/canal])为例,说明Canal的使用,Canal作为数据库数据异步实时同步利器,为分库分表条件下数据一致性维护启到重要作用。流程图Canal可以实时异步监听多Master数据库数据变化,并异步将数据同步到给其他应用,这些应用不仅可以使ES集群,也可以是其他相关应用。配置以canal 1.1.4版本为例,支持mysql最新版本8.x,解压后分别配置如下配置canal.properties文件:(1)c原创 2021-01-16 14:16:29 · 371 阅读 · 0 评论 -
【商城】redis大厂实战应用场景(一览众山小)
redis数据类型redis数据类型有5种,分别是string、list、set、hash、zset,他们在各自领域里面都有哪些实践“应用场景”呢,请继续看完下面内容。string(字符串)也是我们最常用的数据类型,通常用于将数据转换后存储到到Redis缓存,常用的方法有set和get方法,这里就不做过多介绍。计数器INCR article:readcount:{文章id}Web集群session共享Spring session + redis实现session共享分布式系统全局序列号I原创 2020-05-23 17:46:43 · 2026 阅读 · 0 评论 -
【商城】redis分布式缓存安全应用(穿透问题)
缓存穿透什么是缓存穿透?缓存里面不存在数据,数据库里面也不存在的数据。新的请求(例如黑客恶意攻击:https://item.jd.com/6729892714444444.html查询一个不存在商品)进来会不断查询数据库,严重可能会导致数据库服务停止。Null值返回解决方案:如果数据库查询不到数据,缓存Null值的对象返回。布隆过滤器显然返回Null值方案存在问题,如果查询编码不存在数据,之后又新增了此编号的数据,将导致此数据永远查不到。布隆过滤器(性能问题不用担心,可以自行查阅资料),例如将商原创 2020-05-14 17:20:08 · 255 阅读 · 0 评论 -
【商城】redis分布式缓存更新应用(击穿问题)
缓存击穿 什么是缓存击穿?数据库里面数据存在,缓存数据因某种原因不存在,导致大量请求到数据库获取数据现象。这种现象有可能会导致数据库connections数耗尽,严重会导致数据库服务停止。分布式锁解决方案 防止请求穿透到数据库,可以使用分布式锁方式实现,例如查询商品数据; public Product getProductById(Long productId){ log.debug("查询商品信息id:{}", productId); //1、从本地缓存获取原创 2020-05-14 16:55:52 · 288 阅读 · 0 评论 -
分布式缓存一致性问题方案
方案名称 技术特点 优点 缺点 适用 场景说明 数据实时同步更新 强一致性,更新数据库同时更新缓存,使用缓存工具和AOP实现 数据一致性强,不会出现缓存雪崩问题 代码耦合,运行期耦合 ,影响正常业务 ,增加一致网络开销 银行 适合写操作频繁的细粒度缓存数据,数据一致性要求比较高场景,如:银行业务,证券交易;不适合写操作较少粗粒度数据; 数据准实时更新 准一致性,更新数据库后,异步更新缓存,使用AOP进行封装基于多线程或者MQ实现原创 2020-05-11 12:31:07 · 584 阅读 · 0 评论 -
【商城】redis分布式多级缓存应用(瓶颈之殇)
缓存发发发你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以原创 2020-05-11 09:17:18 · 740 阅读 · 0 评论 -
状态机复制 (State Machine Replication)
分区容错如何保证? 在分布式系统设计中,需要遵循CAP理论,如果我们要让一个服务具有容错能力,那么最常用最直接的办法就是让一个服务的多个副本同时运行在不同的节点上。但是,当一个服务的多个副本都在运行的时候,我们如何保证它们的状态都是同步...原创 2019-05-03 14:21:45 · 4796 阅读 · 0 评论 -
Nginx反向代理和负载均衡部署
1. 安装1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包;2) 解压后复制到部署目录。 2. 启动和停止NginxNginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。1)翻译 2017-07-21 14:17:21 · 507 阅读 · 0 评论