自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (12)
  • 收藏
  • 关注

原创 关于Docker的一些不得不知道的事

Docker是基于LXC(Linux容器虚拟技术,Linux Container)的开源的应用容器引擎,属于轻量级的虚拟化技术。传统的虚拟化方式是在硬件层面实现虚拟化,需要在操作系统上虚拟化独立的操作系统层,并在虚拟化处理的操作系统层上运行应用,不仅要管理虚拟化的操作系统还需要管理应用。而Docker虚拟化技术是操作系统层面上的虚拟化,直接复用本地主机操作系统,并在虚拟化的操作系统上运行应用,不需要额外管理操作系统,只需要关注应用本身就可以了。在Docker中有三个核心概念,镜像(Image),仓库(Co

2020-05-23 12:20:25 155

转载 Apache 的架构师们遵循的 30 条设计原则

本文作者叫 Srinath,是一位科学家,软件架构师,也是一名在分布式系统上工作的程序员。他是 Apache Axis2 项目的联合创始人,也是 Apache Software 基金会的成员。他是WSO2流处理器(wso2.com/analytics)的联席架构师。Srinath 撰写了两本关于 MapReduce 和许多技术文章的书。他获得了博士学位。来自美国印第安纳大学。Srinath 通过不懈的努力最终总结出了30条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构...

2020-05-18 17:26:32 1748

原创 说说哪些NotePad++中,你一定不能错过的鲜为人知的特性

如果说我们日常生活工作中有什么一定要在电脑上处理的,那一定是文本编辑了。相信文本编辑时你一定用过NotePad++,但是你一定也会觉得NotePad++比文本编辑器,好不了多少。如果是这样的话,Notepad++那长长的工具栏你一定没有用过吧。

2020-05-13 11:37:58 344

原创 Linux常用命令整理

Linux常用命令整理1.pwd 命令用于查看当前工作目录路径。pwd2.目录切换命令cd3.查看目录信息命令ll4.创建文件夹命令mkdir5.文件删除命令rm6.查看机器的负载情况在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。这些数据可以让我们对系统资源使用有一个宏观的了解。命令的输出分别表示1分钟、5分钟、15分钟的平均负载情况。uptime7.查看服务器实时性能vmstat 1vmstat(8) 命令,每

2020-05-11 18:45:17 1696

原创 分布式数据库之分库分表总结

常见的数据库分库分表主要有基于基于应用层和基于分布式中间件两种方案。基于应用层的实现方案直接连接数据库,额外开销少,但是应用入侵,不变后续扩展。需要应用主动进行数据库和表的路由,实现起来比较麻烦,常见的第三方有sharding-JDBC、TDDL等。基于中间件的应用无入侵,对用户透明。常见的中间件有MyCat,Cobar,DDM等。...

2020-05-11 18:19:29 1999

原创 华为云分布式数据库中间件DDM

分布式数据库中间件(Distributed Database Middleware,简称DDM),专注于解决数据库分布式扩展问题,一个实现了Mysql协议栈的数据库代理服务器,通过代理服务器将底层数据库存储引擎以集群方式管理起来。DDM提供分库分表、读写分离、弹性扩容等能力,而且服务器集群管理对用户完全透明,用户通过DDM管理控制台进行数据库运维,使用JDBC等驱动服务或SQL客户端连接数据库,进行数据读写。一、DDM架构:二、功能介绍:水平拆分:在创建分布式数据库后,只需选择拆分...

2020-05-11 17:51:52 2413

原创 数据库集群

关于数据库集群和分布式数据库,说一下我的理解。在我看来数据库集群是一种应用架构模式,分布式数据库是一种软件设计模式。比如问数据库是不是分布式数据库,问的其实是这个数据库是否支持分布式数据库的特性。如果问数据库是不是集群,问的其实是数据存储服务是否使用多台数据库服务器。有一点差别,因为集群的时候是“是否使用多台数据库服务器”,这里并不区分数据库服务器是不是分布式数据库服务器。如果是可以称之为分布式数据库集群,如果不是可以称之为数据库集

2020-05-11 16:07:08 407

原创 NewSQL发展概述

在NewSql之前,我们接触了Sql,NoSql(Not only Sql),NewSql。NewSql 被定义为下一代数据的发展方向,他是对各种新的可扩展/高性能数据库的简称,兼具Nosql数据库的海量存储管理能力和关系数据库的ACID特性和SQL便利性。简单的来说:SQL+NoSQL=NewSQL。NewSQL系统虽然在的内部结构变化很大,但是它们有三个显着的共同特点,它们都支持关系数据模型;它们都使用SQL作为其主要的接口;满足分布式数据库特点。

2020-05-11 10:17:27 1740

原创 NoSQL数据库如何选型

NoSQL数据库在体系结构和功能上各不相同,整体来说,NoSQL数据库选型需要从数据模型和存储特性两方面综合考虑。目前在市场上有超过24个开源和商业NoSQL数据库,常见有MongoDB,Redis,Memcached,其中Redis、Memcached用作缓存提供数据共享服务方面比较成熟,MongoDB在存储文件方面比较合适(建议不用,主要是接口不一致,数据不一致,事务不一致,你可能会说NoSql不注重这款,可问题是我们业务注重这块啊,即便是最业务无关的日志功能,一旦遇到问题,数据不一致也很麻烦)

2020-05-11 09:03:45 2655

原创 分布式数据库简述

我一直主张不要过度纠结新技术,应该把重点放在解决业务问题上,让我们一直在解决问题的路上,而不是在追逐新技术的途中。就像本文,本意是总结分布式数据库,却意外的进入到NewSql时代,不得不说喜忧参半啊。在起初查询了很多资料,都没找到2013年之后分布式数据库的发展,这个是我的一个疑惑,想必也是诸位的疑惑。其实原因很简单,数据存储截止目前经历文件存储,关系数据库,Nosql,NewSql四个阶段。分布式数据库为生先死。

2020-05-10 20:48:26 3882

原创 RocketMQ4.7.0新特性

三月24日(March 04, 2020)Apache RocketMQ发布了4.7.0最新版本。这次的新版本中增加了一个新特性(同步复制更改为管道方式)。同时也做了一些优化,包括防止客户端提交过于频繁,添加MessageExt的获取BrokerName方法等。修复的bug包括修复MessageClientIDSetter注入问题,修复关于异步发送重试的问题等。本文对部分更新进行翻译,然后补充一下最新的源码。(没办法每次都看英文版太累了,本文摘录了一部分自己感兴趣的内容。)

2020-05-09 17:58:20 932

原创 分布式事务的新生:一个叛教者的见解

论文原本结构,个人感觉有些不符合中文阅读习惯,所以在保持原文翻译的基础,分阶段做了目录。这个版本是一个更新和缩写版的论文,在2007年使用同样的名字首次发表在CIDR(数据库研究创新会议)上,内容和原版基本相同。不同于第一版本,在这个版本中作者首次提出了TCC(Tentative Operations, Confirmation,and Cancellation)的概念。译文全文3万字左右,还是耐心看几遍吧,作者提出的一下假设,发表的观点,做出的推论细看其实很有价值。

2020-05-08 18:30:05 255

原创 分布式事务实施方案总结

一、术语介绍TX协议:应用或者应用服务器与事务管理器的接口XA协议:全局事务管理器与资源管理器的接口。两阶段提交协议(Two-phase Commit,2PC)BASE理论:BA指的是基本业务可用性,支持分区失败,S表示柔性状态,也就是允许短时间内不同步,E表示最终一致性,数据最终是一致的,但是实时是不一致的。CAP定理:对于共享数据系统,最多只能同时拥有CAP其中的两个幂等操作:重复调用多次...

2020-05-07 19:34:29 1830

原创 分布式事务概述

RocketMQ官网介绍中这样描述RocketMQ的事务消息“消息队列 RocketMQ 版提供类似 X/Open XA 的分布式事务功能,通过消息队列 RocketMQ版事务消息能达到分布式事务的最终一致”。这段描述给我带来的困惑一点都不比出门没带手机更让我难受的多。我的逻辑回路里面一个高可用的分布式服务是无法满足分布式事务的一致性。因为消息传递过程具有不可靠性,所以分布式服务要做到每个环节都满足事务的ACID,最终事务也满足ACID是不可能的。那么剩下的问题就是理解出现了分歧,本文的目的就是在于解决分布

2020-05-07 13:16:11 1168

原创 RocketMQ可视化管理控制台-使用指南

RocketMQ提供一个自带web项目rocketmq-console-***.war,对RocketMQ集群进行可视化管理。控制台提供运维管理,查询消息,查询消息轨迹,查看消费者状态,重置消费位点,死信队列,全球消息路由,查看订阅关系,资源报表,监控报警。

2020-05-06 15:19:32 2292

原创 RocketMQ安装部署

一、简介rocketMQ二、相关术语1.Nameserver 为整个MQ集群提供服务协调与治理,可集群部署。集群中Nameserver互相独立,彼此没有通信关系,每个节点独立记录维护完整的Topic、Broker的信息,及监控Broker的运行状态。2.Broker 为MQ集群提供消息中转、存储服务。Broker分为Master与Slave,一个Maste...

2020-05-06 11:20:13 2212

原创 RocketMQ生产者及消费者实现-官网实例

生产者有三种模式,同步,异步(提供重试机制),单向。消费者提供错误重试机制。

2020-05-05 19:04:25 3474

原创 RocketMQ常见问题--producer消息重试

RocketMQ生产者的消息重试是在异步模式下实现消息重发机制,这也是RocketMQ消息可靠性的一方面,话不多说标记一下源码。

2020-05-05 17:44:54 3014

原创 RocketMQ常见问题——顺序消费原理以及实现

RocketMQ提供局部顺序一致性的机制,Broker为每个Topic每个QueueID构建消息队列(ConsumerQueue),实现了单个队列中的消息严格有序。按照业务划分消息队列,然后将需要顺序消费的消息发往同一队列,消费者根据消息队列拉取消息进行消费,即可做到顺序消费。顺序消费原理1.生产者Producer端:生产端实现有序性,依赖于MessageQueue选择能力,Ro...

2020-05-05 17:28:30 2488

原创 RocketMQ常见问题-消息有序性

RocketMQ能做到顺序消费,但是单独依赖RocketMQ做不到消息有序性,保证消息有序性必须进行业务干预。通常来讲,顺序消费是指消息的消费顺序和消息的投递顺序保持一致,但是消息有序性是指消息参数的顺序与消息最终的使用顺序保持一致。我之前的观点是消息的生命周期包含消息产生源,消息发送,消息投递,消息消费,消息持久化(业务使用消息)。而实际上RocketMQ只负责了消息发送,消息投递,消息消费这三个阶段,在消息的整个生命周期中如果没有任何干预,当消息产生源产生无序的消息,消息队列(RocketMQ顺序

2020-05-05 16:44:58 2602

原创 RocketMQ消息存储--Index构建过程

RocketMQ中Broker在收到生产者发送的消息时,会将消息持久化到磁盘,这些消息以文件的形式存储在内存或者磁盘中,不能被直接用来消费,这个也很好理解,毕竟消息会有一个很大的体量,如果直接操作的话效率会很低。RocketMQ的Index提供一个全局索引,可以通过key和时间戳进行消息查询。

2020-05-04 16:57:08 1891

原创 RocketMQ消息存储--ConsumeQueue构建过程

通过源码追溯,我们发现Store包里的DefaultMessageStore是Consumer的构建入口(DefaultMessageStore做了很多工作并不仅限于构建ConsumerQueue)。DefaultMessageStore提供ConcurrentMap(private final ConcurrentMap<String/* topic */, Con...

2020-05-04 16:08:02 1228 1

原创 Rocketmq消息存储(顺序写,随机读)

RocketMQ消息存储高性能,底层依赖于nio提供的基于内核的I/O管理(ZeroCopy)。在RocketMQ中,文件的读取主要通过MappedByteBuffer进行操作,文件的中转主要通过FileChannel模型。文件基于内核操作,以及大部分的使用基于内存都是直接提高RocketMQ的关键点。对RocketMQ消息存储的理解,我是分两部分进行的,第一部分是梳理消息存储...

2020-05-04 09:24:35 4563

原创 Rocketmq消息存储(顺序写,随机读)--DefaultMessageStore的启动梳理

先写一半开个头,后面补吧。 消息存储是有ConsumerQueue和CommitLog配合完成。一个Topic里面有多个MessageQueue,每个MessageQueue对于一个ConsumerQueue.ConsumerQueue是一个逻辑队列里面记录者消息的物理存储地址,consumer根据消息的consumeQueue找到消息存储具体路径,从而读取里面信息Commit...

2020-05-03 20:22:54 1003 1

原创 ZeroCopy高性能零拷贝(DMA)

操作系统的核心是内核,独立于分内核应用程序,可以访问受保护的内存空间,也可以访问底层硬件设备。为了避免用户进程直接操作内核,保证内核安全,操作系统将虚拟内存划分为两部分,一部分是内核空间(Kernel-space),一部分是用户空间(User-space)。在传统文件读取流程中,数据信息需要经过用户空间之后才能在底层设备之间进行转换(比如磁盘与磁盘之间,网卡与网卡之间,磁盘与网卡,网...

2020-05-03 15:58:03 2688

原创 RocketMQ常见问题-服务高可用

MQ架构配置顺序写、随机读、零拷贝同步刷盘SYNC_FLUSH和异步刷盘ASUNC_FLUSH同步复制和异步复制,同步BrokerRoe配置发送端高可用双主双从架构:当Master不可用是,组内其他Master可用,但是机器资源不足的时候,需要手工将Slave转成Master消费端高可用Broker读写分离:Master提供读写,Slave支持读Consumer消费自动切换:当Ma...

2020-05-03 12:02:40 1620

原创 RocketMQ常见问题-RocketMQ消息堆积问题-TOPIC队列扩容

划个重点:RocketMQ是按照队列进行消息负载的,如果consumer中的一台机器由于机器硬件、系统、远程RPC或者JavaGC等原因导致该机器上的消息队列不能及时处理,整个消息队列的消息都会堆积。

2020-05-03 11:48:52 13104 2

原创 RocketMQ常见问题-RocketMQ消息堆积问题-consumer消费异常

工具:RocketMQ控制台现象描述业务量无明显高峰,RocketMQ服务器性能正常,consumer服务器性能正常,这种情况下RocketMQ服务告警。问题分析1.确认消费者GROUP状态,GROUP管理-选中GROUP-消费者状态查询,查看消费者GROUP状态是否高于预期2.消息轨迹跟踪,消息轨迹-创建查询-Message ID查询-输入对于的消息。如果消息阻塞会出现,消息投递给B...

2020-05-03 10:55:18 4212

原创 RocketMQ常见问题-RocketMQ消息堆积问题

RocketMQ消息堆积主要分为三个层次的问题: 其一是producer生产速率过快,什么场景呢,比如producer故障,比如DOS攻击,比如业务高峰(超过企业预估的,例如 12306订票,双十一下单,这些一开始的时候都有超过预期的情况)。 其二是Broker消息堆积,比如Broker的性能瓶颈,Broker同步策略导致消...

2020-05-03 09:57:58 10584

原创 RocketMQ常见问题-如何保证消息传递的可靠性

作为一个消息中间件,RocketMQ的消息可靠性就是指确保消息数据不丢失。具体而言就是从消息在生产者产生,经过服务端投递,一定能被消费者消费。消息生产者Producer消息发送有三种方式:同步,异步,单向(Oneway)1.同步发送 ,需要同时等待SendResult sendResult = producer.send(message);2.异步发送,异步线程发送出去...

2020-05-02 20:02:43 3514

原创 RocketMQ常见问题-消息重复消费和消息重复的问题

RocketMQ不解决消息重复问题,RocketMQ不解决消息重复问题,RocketMQ不解决消息重复问题,重要的事情说三遍。基本上说我很讨厌有人问这个问题,问这个问题首先你对消息的生命周期缺乏理解,其次RocketMQ的定位不是很清楚,RocketMQ单机写入TPS单实例约7万条/秒,单机部署3个Broker,可以跑到最高12万条/秒,消息大小10个字节。换句话说单机RocketMQ的每分钟...

2020-05-02 18:05:01 5401

Life-beyond-Distributed-Transactions.pdf

PAT HELLAND 本文是一个更新和缩写版的论文,在2007年使用同样的名字首次发表在CIDR(数据库研究创新会议)上。

2020-05-08

netty socketio 在线聊天程序

netty socketio 在线聊天程序 源码可以运行。可以用来开发需客服模块,在线聊天室,广告推送等功能

2017-12-19

pushlet 简单实例 最快熟悉pushlet 运行原理一目了然

pushlet 简单实例 最快熟悉pushlet 运行原理一目了然 简单描述

2013-07-22

pushlet+ajax 网页版聊天软件 服务器推送技术

pushlet+ajax 网页版聊天软件 服务器推送技术 点击姓名就可以实现聊天 里面包含js版本的和ext版本的 已加入到项目中了

2013-07-22

dwz用户手册 最新公布

dwz用户手册 最新公布

2013-03-26

struts2.3.12+spring3.2+hibernate4.1.9 web网站框架

前几天更换了最新版本的ssh,发现这次变化还是挺大的,费了很大劲才整理好,这是我整理的struts2.3.12+spring3.2+hibernate4.1.9 web网站框架,希望大家用的时候可以省点事吧,里面有用spring代理写的接口调用。

2013-03-17

颜色提取器

网页开发必要的工具

2012-08-10

oa系统源码

软件源码,,可以直接使用的成熟源代码软件源码,,可以直接使用的成熟源代码

2012-03-11

U9_SOA_战略与价值_(合作伙伴版

用友公司战略文档,用来学习SOA技术很重要的文档

2012-02-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除