
分布式
执_行_力
行走在路上
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot整合Dubbo
Dubbo简介Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分业务的架构,使用这种方式可以使各个业务之间解耦合(或者最大限度地松耦合)。简单来说Dubbo:一款分布式服务框架 高性能和透明化的RPC远程服务调用方案 SOA服务治理方案Dubbo架构这里写图片描述Provider: 暴露服务的服务提供方。Consumer: 调用远程服务的服务消费方。Registry: 服务注册与发现的注册中心。Monitor: 统计服务的调用次数和调用时间的监控中心。.转载 2020-07-05 16:32:21 · 3756 阅读 · 1 评论 -
Dubbo使用入门
一、SOA和RPC介绍1、SOA随着互联网的发展,应用规模不断扩大,应用之间的交互不可避免,这时将核心业务抽取出来,作为独立的服务,用于提高业务复用及整合,逐渐形成了分布式服务架构。当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)[ Service Oriented Architecture]是关键。2、RPCRPC【Remote Procedur转载 2020-07-05 15:50:59 · 1525 阅读 · 0 评论 -
RPC接口超时分析
在使用dubbo时,通常会遇到timeout这个属性,timeout属性的作用是:给某个服务调用设置超时时间,如果服务在设置的时间内未返回结果,则会抛出调用超时异常:TimeoutException,在使用的过程中,我们有时会对provider和consumer两个配置都会设置timeout值,那么服务调用过程中会以哪个为准?橘子同学今天主要针对这个问题进行分析和扩展。三种设置方式以provider配置为例:#### 方法级别<dubbo:service interface="oran转载 2020-07-05 11:31:31 · 9509 阅读 · 1 评论 -
SpringBoot+Dubbo构建微服务
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。一、先来一张图说起 Dubbo,相信大家都不会陌生!阿里巴巴公司开源的一个高性能优秀的服务框架,可以使得应用可通过高性能的 RPC 实现服务的输出和输入功能,同时可以和 Spring 框架无缝集成。Dubbo 架构图节点角色说明:Provider:暴露服务的服务提供方 Consumer:调用远程服务的服务消费方 Reg..转载 2020-07-05 09:27:37 · 3850 阅读 · 2 评论 -
Dubbo问题总结
一、Dubbo是什么?Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。二、为什么要用Dubbo?因为是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考验。内部使用了 Netty、Zookeeper,保证了高性能高可用性。1、使用Dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的转载 2020-07-04 09:03:22 · 798 阅读 · 0 评论 -
一文读懂git
在日常工作中,经常会用到Git操作。但是对于新人来讲,刚上来对Git很陌生,操作起来也很懵逼。本篇文章主要针对刚开始接触Git的新人,理解Git的基本原理,掌握常用的一些命令。一、Git工作流程以上包括一些简单而常用的命令,但是先不关心这些,先来了解下面这4个专有名词。 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 工作区程序员进行开发改动的地方,是你当前看..转载 2020-06-28 14:34:41 · 497 阅读 · 0 评论 -
Dubbo负载均衡策略
Random LoadBalance随机,按权重设置随机概率。 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。权重加倍RoundRobin LoadBalance轮循,按公约后的权重设置轮循比率。 存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。解决办法 :结合权重,把第二台机(性能低的)的权重设置低一点LeastActiv..转载 2020-06-17 20:41:21 · 230 阅读 · 0 评论 -
ActiveMQ几种模式总结
Queue(点到点)模式在点对点的传输方式中,消息数据被持久化,每条消息都能被消费,没有监听QUEUE地址也能被消费,数据不会丢失,一对一的发布接受策略,保证数据完整。创建MAVEN项目点击下一步,填写grupId为me.czp,artifactId为example-mq,name为exampleMq,点完成然后在Package Explorer看到example-mq项目,如下:创建生产者 package mq.p2p; import java.util..转载 2020-06-17 10:36:56 · 1748 阅读 · 0 评论 -
ActiveMQ高级原理
ActiveMQ传输协议概述activemq传输协议的官方文档:http://activemq.apache.org/configuring-version-5-transports.htmlActiveMQ支持的client-broker通讯协议有:TVP、NIO、UDP、SSL、Http(s)、VM。协议的配置文件为:%activeMQ安装目录%/conf/activemq.xml<transportConnectors> <transportConnector..转载 2020-06-17 09:20:56 · 542 阅读 · 1 评论 -
ActiveMQ的部署和使用
1 JMS与MQ1.1 JMSJMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,中文称Java消息服务。JMS是一种与厂商无关的 API,用来访问消息收发系统消息;就像JDBC(Java Database Connectivity)可以用来访问许多不同关系数据库一样,JMS则提供同样与厂商无关的访问方法,以访问消息收发服务。JMS.转载 2020-06-17 08:53:21 · 628 阅读 · 0 评论 -
Quartz任务调度框架入门
1. 介绍 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源的任务调度框架,是完全由java开发的一个开源的任务日程管理系统,“任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。 Quartz用一个小Java库发布文件(.jar文件),这个库文件包含了所有Quartz核心功能。这些功能的主要...转载 2020-04-27 15:36:55 · 254 阅读 · 0 评论 -
Docker入门
1、引言1.1 Docker是什么Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 使用 Google 公司推出的 Go 语言 进行开发实现。docker是linux容器的一种封装,提供简单易用的容器...转载 2020-04-17 09:11:22 · 276 阅读 · 0 评论 -
ElasticSearch倒排索引简析
内容概要倒排索引是什么?为什么需要倒排索引? 倒排索引是怎么工作的?1. 倒排索引是什么?假设有一个交友网站,信息表如下:美女1:“我要找在上海做 PHP 的哥哥。”需要匹配 性别、城市、语言列。美女2:“我要找北京的爱旅游、爱美食的 JAVA 哥哥。”更复杂了是吧,实际场景中,会有更复杂的排列组合。对于这类的搜索,关系型数据库的索引就很难应付了,适合使用全...转载 2020-03-02 17:33:38 · 216 阅读 · 0 评论 -
RocketMQ分布式消息中间件理论介绍
RocketMQ 简介RocketMQ 是阿里巴巴在 2012 年开源的第三代分布式消息中间件 2018年9月,阿里巴巴将 RocketMQ 捐赠给 Apache 软件基金会作为开源项目 历年双11,RocketMQ 都承载着阿里巴巴生产系统100%的消息流转,以2017年双11为例, RocketMQ 完成了1.2万亿消息精准低延迟投递,交易峰值高达17万笔/秒。 目前有 100 多家...转载 2020-01-06 16:31:24 · 298 阅读 · 0 评论 -
一文搞懂nginx
“Nginx 因为它的稳定性、丰富的模块库、灵活的配置和较低的资源消耗而闻名 。目前应该是几乎所有项目建设必备。今天通过这篇攻略让你快速通关 Nginx。Nginx 简介Nginx 是一个免费、开源、高性能、轻量级的 HTTP 和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。Nginx 由内核和一系列模块组...转载 2019-12-31 15:20:42 · 424 阅读 · 0 评论 -
RabbitMQ和kafka到底怎么选
开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措。对于RabbitMQ和Kafka,到底应该选哪个?RabbitMQ架构RabbitMQ是一个分布式系统,这里面有几个抽象概念。 broker:每个节点运行的服务程序,功能为维护该节点的队列的增删以及转发队列操作请求。 master queue:...转载 2019-12-30 14:32:49 · 429 阅读 · 0 评论 -
kafka速度为什么那么快
来源:cnblogs.com/binyue/p/10308754.html前阵子,师长给大家系统梳理过Kafka相关知识点,如下几篇: RabbitMQ和Kafka到底怎么选? 17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列 大白话+13张图解 Kafka Kafka 基本原理(8000...转载 2019-12-30 14:20:44 · 179 阅读 · 0 评论 -
阿里云redis开发规范
本文主要介绍在使用阿里云Redis的开发规范,从下面几个方面进行说明。 键值设计 命令使用 客户端使用 相关工具 通过本文的介绍可以减少使用Redis过程带来的问题。一、键值设计1、key名设计可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id ugc:video:1 简洁性...转载 2019-12-30 14:03:32 · 145 阅读 · 0 评论 -
分布式系统的关注点----先db还是先缓存
先写DB还是缓存?一个程序可以没有缓存,但是一定要有数据库。这是大家的普遍观点,所以数据库的重要性在你的潜意识里总是被放在了第一位。先DB再缓存如果不细想的话你可能会觉得,数据库操作失败了,自然缓存也不用操作了;数据库操作成功了,再操作缓存,没毛病。但是数据库操作成功,缓存操作的失败的情况该怎么解?(主要在用到redis,memcached这种进程外缓存的时候...转载 2019-12-30 13:56:26 · 237 阅读 · 0 评论 -
4种数据库缓存最终一致性方案的优缺点对比
背景缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景。而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到好处的一致性方案。缓存是什么存储的速度是有区别的。缓存就是把低速存储的结果,临时保存在高速存储的技术。如图所示,金字塔更上面的存储,可以作为下面存储的缓存。我们本次的讨论,主要针对数据库缓存场景,将以redis...转载 2019-12-30 10:38:32 · 537 阅读 · 0 评论 -
如何设计一个安全的对外接口
前言最近有个项目需要对外提供一个接口,提供公网域名进行访问,而且接口和交易订单有关,所以安全性很重要;这里整理了一下常用的一些安全措施以及具体如何去实现。安全措施个人觉得安全措施大体来看主要在两个方面,一方面就是如何保证数据在传输过程中的安全性,另一个方面是数据已经到达服务器端,服务器端如何识别数据,如何不被攻击;下面具体看看都有哪些安全措施。1. 数据加密我们知道数据在传输过...转载 2019-12-30 10:20:13 · 194 阅读 · 0 评论 -
Redis是如何实现点赞和取消点赞的
本文基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。点赞、取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存。至于多久从 Redis 取一次数据存到数据库中,根据项目的实际情况定吧,...转载 2019-12-30 10:09:14 · 547 阅读 · 0 评论 -
微服务为什么一定要zookeeper
微服务中 Zookeeper 的应用及原理 一、背景 二、Zookeeper 的特性 1. 树状目录结构 2. 持久节点 (Persistent) 3. 持久有序节点 (Persistent_sequential) 4. 临时节点 (Ephemeral) 5. 临时有序节点 (Ephemeral_sequen...转载 2019-12-30 09:24:12 · 552 阅读 · 0 评论 -
设计一个本地缓存,需要考虑哪些点
# 前言最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存;一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能;当然如果拿来和专门的缓存框架如ehcache来对比可能稍有差距;本文我们将来整理一下实现一个本地缓存都应该需要考虑哪些东西。# 考虑点考虑点主要在数据用何种方式存储,能存储多少数据,多余的...转载 2019-12-26 09:21:33 · 477 阅读 · 0 评论 -
为什么微服务一定要有网关
1什么是服务网关服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去;2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。2为什么需要服务网关上述所说的横切功能(以权限校验为例)可以写在三个位...转载 2019-12-25 20:09:02 · 220 阅读 · 0 评论 -
如何设计缓存系统:缓存击穿、缓存雪崩、缓存穿透的案例分析
前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案...转载 2019-12-25 15:26:09 · 191 阅读 · 0 评论 -
搭建redis集群
什么是Redis集群简介Redis是一个快速高效的NoSQL型数据库,由于其基于内存存储、单线程、多路IO复用的特性,其QPS可以达到惊人的100000+(官方数据),但是即使有这么高的速度,在中国这么大的网民基数环境下,也存在着性能瓶颈。首先抛开服务器故障不谈,Redis集群首先可以使Redis性能得到线性提高,这是毋庸置疑的,其次Redis集群除了解决了效率问题,还可以解决服务器宕...转载 2019-12-25 10:33:22 · 157 阅读 · 0 评论 -
redis的高延迟
Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。但是 Redis 也会发生延迟时,这是就需要我们对其产生原因有深刻的了解,以便于快速排查问题,解决 Redis的延迟问题一条命令执行过程在本文场景下,延迟 (latency) 是指从客户端发送命令到客户端接收到命令返回值的时间间隔。所以我们先来看一下 Redis 一条命令执行的步...转载 2019-12-24 17:14:21 · 510 阅读 · 0 评论 -
阿里巴巴为什么能抗住90秒100亿?
1、概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2、基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍。1)什么是分布式?系统中的多个模块在不同服务器上部署,即可称为分布式系统,如T...转载 2019-12-22 09:30:50 · 178 阅读 · 0 评论 -
Redis知识点总结
Redis是什么面试官:你先来说下redis是什么吧我:(这不就是总结下redis的定义和特点嘛)Redis是C语言开发的一个开源的(遵从BSD协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种NoSQL(not-only sql,泛指非关系型数据库)的数据库。我顿了一下,接着说:Redis作为一个内存数据库。 性能优秀,数据在内存...转载 2019-12-18 15:49:24 · 563 阅读 · 1 评论 -
消息队列两种模式:点对点与发布订阅
1、定义 1.1、点对点:Queue,不可重复消费 1.2、发布/订阅:Topic,可以重复消费 2、区别 2.1、点对点模式 2.2、发布订阅模式 3、流行模型比较 3.1、RabbitMQ 3.2、Kafka Java消息服务(Java Message Service,J...转载 2019-12-16 17:35:37 · 1851 阅读 · 0 评论 -
解密 Redis 助力双 11 背后电商秒杀系统
背景 秒杀的特征 秒杀系统 背景秒杀活动是绝大部分电商选择的低价促销、推广品牌的方式。不仅可以给平台带来用户量,还可以提高平台知名度。一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的用户体验,提升平台的口碑,从而提升秒杀活动的最大价值。本文讨论云数据库 Redis 版缓存设计高并发的秒杀系统。秒杀的特征秒杀活动对稀缺或者特价的商品进行定...转载 2019-12-16 16:52:35 · 187 阅读 · 0 评论 -
Netty的底层框架原理
在分布式系统被广泛应用的今天,服务有可能分布在网络中的各个节点中。因此,服务之间的调用对分布式系统来说,就显得尤为重要。对于高性能的 RPC 框架,Netty 作为异步通信框架,几乎成为必备品。例如,Dubbo 框架中通信组件,还有 RocketMQ 中生产者和消费者的通信,都使用了 Netty。今天,我们来看看 Netty 的基本架构和原理。Netty的特点与 NIO...转载 2019-12-11 21:32:40 · 3600 阅读 · 0 评论 -
大白话图解kafka
前言应大部分的小伙伴的要求,在Yarn之前先来一个kafka的小插曲,轻松愉快。一、Kafka基础消息系统的作用应该大部份小伙伴都清楚,用机油装箱举个例子所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设...转载 2019-12-11 20:43:46 · 161 阅读 · 0 评论 -
秒杀系统常用的削峰方法
概述在面试被问到系统设计这块时候,秒杀系统经常是一个热门考点。今天我们就讨论一下其中的重要一点:如何进行秒杀系统的流量销锋?如果你看过秒杀系统的流量监控图的话,你会发现它是一条直线,就在秒杀开始那一秒是一条很直很直的线,这是因为秒杀请求在时间上高度集中于某一特定的时间点。这样一来,就会导致一个特别高的流量峰值,它对资源的消耗是瞬时的。但是对秒杀这个场景来说,最终能够抢到商品的人数是...转载 2019-12-11 20:20:20 · 3969 阅读 · 0 评论 -
如何访问redis中的海量数据
目录 前言 事故产生 分析原因 解决方案 总结 前言有时候我们需要知道线上的redis的使用情况,尤其需要知道一些前缀的key值,那我们怎么去查看呢?事故产生因为我们的用户token缓存是采用了【user_token:userid】格式的key,保存用户的token的值。我们运维为了帮助开发小伙伴们查一下线上现在有多少登录用户,直接...转载 2019-12-10 08:51:39 · 159 阅读 · 0 评论 -
全文搜索引擎ElasticSearch入门教程
全文搜索属于最常见的需求,开源的Elasticsearch(以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST ...转载 2019-12-05 21:53:30 · 136 阅读 · 0 评论 -
redis常见问题总结
1、什么是 Redis?Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:(1)Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。(2)Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,z...转载 2019-12-05 09:00:30 · 189 阅读 · 0 评论 -
高并发系统下的限流方案
缓存缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪。使用缓存不单单能够提升系统访问速度、提高并发访问量,也是保护数据库、保护系统的有效方式。大型网站一般主要是“读”,缓存的使用很容易被想到。在大型“写”系统中,缓存也常常扮演者非常重要的角色。比如累积一些数据批量写入,内存里面的缓存队列(生产消费),以及HBase写数据的机制等等也都是通过缓存提升系统的吞吐...转载 2019-12-04 14:51:38 · 306 阅读 · 0 评论 -
redis单线程、高并发的3大原因详解
Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。下面重点...转载 2019-12-04 14:36:37 · 205 阅读 · 0 评论