![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式系统
文章平均质量分 59
奔跑的窝窝牛
低头看着键盘,这些字母怎能拼凑偶的忧桑。
展开
-
为什么使用消息队列-消息队列有什么优点和缺点
为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?为什么使用消息队列比较核心的有 3 个:解耦、异步、削峰。缺点有以下几个: 系统可用性降低 系统引入的外部依赖越多,越容易挂掉。本来你就是 A 系统调用 BCD 三个系统的接口就好了,ABCD 四个系统还好好的,没啥问题,你偏加个 MQ 进来,万一 MQ 挂了咋整?MQ 一挂,整套系统崩溃,你不就完了?如何保证消息队列的高可用,..原创 2021-05-10 10:43:30 · 163 阅读 · 0 评论 -
分布式定时任务调度框架
1. 目标把定时任务通过集群的方式进行管理调度,并采用分布式部署,保证系统的高可用,提高了容错。那么如何保证定时任务只在集群的某一个节点上执行,或者一个任务如何拆分为多个独立的任务项,由分布式的机器去分别执行, 众多的定时任务如何统一管理,现在有很多成熟的分布式定时任务框架,都能很好的实现上述的功能。2. 调度框架2.1 Quartz 介绍 Quartz集群中每个节点都是一个单独的Quartz应用,它又管理着其他的节点。这个集群需要每个节点单独的启动或停止;和我们的应用服务器集群不同,原创 2021-05-10 10:40:34 · 602 阅读 · 0 评论 -
mysql和postgresql不存在则插入操作
mysql:ON DUPLICATE KEY UPDATE(不存在则插入,存在则更新)mysql语法支持如果数据存在则更新,不存在则插入,首先判断数据存在还是不存在的那个字段要设置成unique索引。语法:INSERT INTO 表名(唯一索引列, 列2, 列3) VALUE(值1, 值2, 值3) ON DUPLICATE KEY UPDATE 列=值, 列=值REPLACE INTO (不存在则插入,存在先删除,后插入)REPLACE INTO 主要作用类似 INSERT .原创 2021-05-10 10:37:50 · 1817 阅读 · 1 评论 -
分布式锁实现的三种方式
基于数据库实现分布式锁;基于缓存(Redis等)实现分布式锁;基于Zookeeper实现分布式锁;一 基于数据库的实现方式字段上创建唯一索引,获取锁,使用insert into, 释放锁delete操作问题:性能,不具备可重入性,无锁失效机制,不具备锁阻塞特性select for update 悲观锁二 基于redis的实现方式1、选用Redis实现分布式锁原因:(1)Redis有很高的性能;(2)Redis命令对此支持较...原创 2021-05-10 10:36:51 · 97 阅读 · 0 评论 -
分布式事务实现方式
2pc2PC(Two-phase commit protocol),中文叫二阶段提交。二阶段提交是一种强一致性设计,2PC 引入一个事务协调者的角色来协调管理各参与者(也可称之为各本地资源)的提交和回滚,二阶段分别指的是准备(投票)和提交两个阶段。准备阶段协调者会给各参与者发送准备命令提交阶段同步等待所有资源的响应之后就进入第二阶段即提交阶段(注意提交阶段不一定是提交事务,也可能是回滚事务。实现方案java jta xa协议规范实现2pcAtomikos的实现阿...原创 2021-05-10 10:35:38 · 126 阅读 · 0 评论 -
elasticsearch 5.x版本安装插件
windows :所需资源 :下载Node.js,网址:https://nodejs.org/en/ 下载 elasticsearch-head https://github.com/mobz/elasticsearch-head安装nodejs包,随便安装那个盘安装gruntgrunt是一个很方便的构建工具,可以进行打包压缩、测试、原创 2020-09-30 10:42:34 · 151 阅读 · 0 评论 -
Kafka工作原理以及流程
Kafka Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据,具有高性能、持久化、多副本备份、横向扩展能力……… 一些基本的介绍这里就不展开了,网上有太多关于这些的介绍了,读者可以自行百度一下!基础架构及术语 话不多说,先看图,通过这张图我们来捋一捋相关的概念及之间的关系: 如果看到这张图你很懵逼,木有关系!我们先来分析相关概念 Producer:Producer即生产者,消息的产生者,是消息的入口。 kafka clust转载 2020-09-30 10:40:46 · 506 阅读 · 0 评论 -
zookeeper实现分布式锁
package com.cn.core;import java.io.IOException;import java.util.Collections;import java.util.List;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import j原创 2017-04-19 16:14:49 · 895 阅读 · 0 评论 -
实现搜索需求各个阶段
二、检索需求的满足与架构演进任何互联网需求,或多或少有检索需求,还是以58同城的帖子业务场景为例,帖子的标题,帖子的内容有很强的用户检索需求,在业务、流量、并发量逐步递增的各个阶段,应该如何实现检索需求呢? 原始阶段-LIKE数据在数据库中可能是这么存储的:t_tiezi(tid, title, content)满足标题、内容的检索需求可以通过LIK转载 2017-05-09 13:57:05 · 682 阅读 · 0 评论 -
Hive连接Hbase操作数据
Hive整合HBase原理Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。Hive与HBase整合的实现是利用两者本原创 2017-05-25 10:21:41 · 10737 阅读 · 0 评论 -
JAVA操作HBASE数据操作详解
Hbase对于建表,和RDBMS类似,HBase也有namespace的概念,可以指定表空间创建表,也可以直接创建表,进入default表空间。对于数据操作,HBase支持四类主要的数据操作,分别是:Put :增加一行,修改一行;Delete :删除一行,删除指定列族,删除指定column的多个版本,删除指定column的制定版本等;Get :获取指定行的所原创 2017-05-22 10:02:10 · 21478 阅读 · 8 评论 -
Hbase的Filter详解使用
参数基础有两个参数类在各类Filter中经常出现,统一介绍下:(1)比较运算符 CompareFilter.CompareOp比较运算符用于定义比较关系,可以有以下几类值供选择:EQUAL 相等GREATER 大于GREATER_OR_原创 2017-05-24 14:42:58 · 29734 阅读 · 1 评论 -
Hive设置连接用户名和密码
Hive-site.xml,缺省为NONE。此处改为CUSTOM hive.server2.authentication CUSTOM Expects one of [nosasl, none, ldap, kerberos, pam, custom]. Client authentication types. NONE: no原创 2017-05-22 17:08:09 · 54882 阅读 · 4 评论 -
分布式系统唯一ID生成方案
分布式系统唯一ID生成方案汇总系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1. 数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点:1)简单,代码方便,性能可以接受。2)数字ID天转载 2017-05-03 10:08:09 · 3636 阅读 · 0 评论 -
当数据库水平切分的是,如用uid分库,uname上的查询怎么办?
转载自:http://mp.weixin.qq.com/s/_HB7Iq9chDLk2z_m_btq9w【缘起】用户中心是几乎每一个公司必备的基础服务,用户注册、登录、信息查询与修改都离不开用户中心。 当数据量越来越大时,需要多用户中心进行水平切分。最常见的水平切分方式,按照uid取模分库:通过uid取模,将数据分布到多个数据库实例上去,转载 2017-05-02 14:45:39 · 848 阅读 · 0 评论 -
分布式事务之说说TCC事务
在当前如火如荼的互联网浪潮下,如何应对海量数据、高并发成为大家面临的普遍难题。广大IT公司从以往的集中式网站架构,纷纷转向分布式的网站架构,随之而来的就是进行数据库拆分和应用拆分,如何在跨数据库、跨应用保证数据操作和业务操作的一致性、原子性,又成为需要解决的新的问题。从分布式事务的需求来源来看:1、跨数据库数据库拆分(水平、垂直)带来的分布式事务->保证跨库操作的原子性基于单个JVM转载 2017-05-02 14:18:28 · 565 阅读 · 0 评论