
中间件
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
中间件业务在网易轻舟容器平台的性能调优实践
随着业务容器化的推进,经常有客户抱怨应用 QPS 无法和在物理机或者云主机上媲美,并且时常会出现 DNS 查询超时、短连接 TIME_OUT、网络丢包等问题,而在容器中进行调优与诊断的效果因为安装工具的复杂度大打折扣。本文基于网易轻舟中间件业务容器化实践,总结容器场景下的性能调优心得,供读者参考。1 性能调优的“望闻问切”在讨论容器化场景的性能调优之前,先谈一下性能调优中的“望闻问切”。对于性能问题,大部分人首先想到的是 CPU 利用率高,但这只是个现象,并不是症状。打个比方:感冒看医生时,病人.转载 2020-08-26 21:51:35 · 584 阅读 · 0 评论 -
吊打 Tomcat ,Undertow 性能很炸!!
在 Java Web 容器的世界里,Tomcat 和 Jetty 是大名鼎鼎的、用的最多的开源项目,也是大众熟知的。今天再介绍另外一款能和 Tomcat 媲美的神器:Undertow,据说性能方面还要吊打 Tomcat,如果你还不知道它,那你就 OUT 了。我们来看下 Spring Boot 默认支持的三种 Servlet 容器:Name Servlet Version Tomcat 9.0 4.0 Jetty 9.4 3.1 Undertow 2.0 4.0转载 2020-08-25 19:31:48 · 395 阅读 · 0 评论 -
Tomcat 架构原理到架构设计,写得非常好!
Tomcat 架构原理解析到架构设计借鉴Tomcat 发展这么多年,已经比较成熟稳定。在如今『追新求快』的时代,Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』,难道说如今就没有必要深入学习它了么?学习它我们又有什么收获呢?静下心来,细细品味经典的开源作品。提升我们的「内功」,具体来说就是学习大牛们如何设计、架构一个中间件系统,并且让这些经验为我所用。美好的事物往往是整洁而优雅的。但这并不等于简单,而是要将复杂的系统分解成一个个小模块,并且各个模块的职责划分也.转载 2020-08-15 11:07:55 · 265 阅读 · 0 评论 -
ZooKeeper 定位:能解决什么问题?不能解决什么问题?
ZooKeeper 很流行,有个基本的疑问: ZooKeeper 是用来做什么的? 之前没有ZK,为什么会诞生 ZK? OK,解答一下上面的疑问:(下面是凭直觉说的) ZooKeeper 是用于简化分布式应用开发的,对开发者屏蔽一些分布式应用开发过程中的底层细节 ZooKeeper 对外暴露简单的 API,用于支持分布式应用开发 ZooKeeper 在提供上述功能的同时,其还是一个 高性能、高可用、高可靠的分布式集群 上面说这么多,总结一下,ZK 能解决分布转载 2020-08-06 09:47:33 · 381 阅读 · 0 评论 -
软件巨头卧谈会
深夜时分,忙碌了一天的机房里逐渐安静下来,几个软件巨头nginx, Tomcat, Redis, Node.js又开始夜谈了。nginx伸了一个懒腰:哎哟,今天可累死我了,高峰期我居然维持了上万个连接,人类可真会压榨我啊,就给我这么一台破机器!Tomcat :得了吧老弟,我知道你用的epoll很厉害, 但是你只是“维持”了连接而已,通过这些连接发过来的数据请求,你一个都不管,都分给我们Tomcat集群了,我们才是真苦逼啊!nginx:谁说的?那些对静态文件的请求我不都处理了吗?都没往你那..转载 2020-06-08 21:10:12 · 306 阅读 · 1 评论 -
Nginx 为什么快到根本停不下来?
Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理分析 Nginx 为什么这么快!Nginx 的进程模型Nginx 服务器,正常运行过程中: 多进程:一个 Master 进程、多个 Worker 进程。 Master 进程:管理 Worker 进程。对外接口:接收外部的操作(信号);对内转发:根据外部的操作的不同,通过信号管理 Worker;监控:监控 Worker 进程的运行状态,Worker 进程异常终止后,自动重启 Worker ...转载 2020-06-06 10:52:07 · 310 阅读 · 0 评论 -
揭秘!Greenplum并行执行引擎到底是如何工作的?
本文转载自:Greenplum社区首先我们先来了解一下什么是执行器。简单来讲,执行器是处理一个由执行计划节点组成的树,并返回查询结果。那么什么是执行计划节点呢?从本质上讲,一个执行计划节点,实际上就是一个数据处理节点。从下图可看到,在数据输入后,执行节点会对数据进行数据处理,然后返回数据作为输出。这些执行节点会被组织成树的形式。下图是一个SELECT查询的执行计划树。通过优化器优化后,就会生成这样的树状结构,我们可以看到里面有四个执行节点,包括HashJoin节点,Hash节点,顺序扫描节.转载 2020-05-29 14:41:58 · 1043 阅读 · 0 评论 -
非常强悍的 RabbitMQ 总结,写得真好!
RabbitMQ是基于AMQP协议的,通过使用通用协议就可以做到在不同语言之间传递。AMQP协议核心概念 server:又称broker,接受客户端连接,实现AMQP实体服务。 connection:连接和具体broker网络连接。 channel:网络信道,几乎所有操作都在channel中进行,channel是消息读写的通道。客户端可以建立多个channel,每个channel表示一个会话任务。 message:消息,服务器和应用程序之间传递的数据,由pr.转载 2020-05-15 19:23:19 · 666 阅读 · 0 评论 -
云原生时代消息中间件的演进路线
引言本文以一张云进化历史图开场,来谈谈云原生时代消息中间件的演进路线,但本文绝对不是“开局一张图,内容全靠编”。从虚拟化技术诞生以来,IaaS/PaaS/SaaS 概念陆续被提了出来,各种容器技术层出不穷。到 2015 年, Cloud Native 概念应运而生,一时间,各种云厂商,云服务以及云应用都加上了“云原生”前缀。我们也一直在思考,传统的消息中间件需要做些什么才能加上云原生这个修饰词,这也是本文探讨的主题:传统的消息中间件如何持续进化为云原生的消息服务。云原生消息服务.转载 2020-05-15 10:18:09 · 545 阅读 · 1 评论 -
这波操作,会把你的中间件架构带到另一个Level
“这篇文章,给大家来聊一个生产级的中间件系统的架构设计实践,希望给对中间件系统感兴趣的同学一点启发。(1)Master-Slave架构这个中间件系统的本质是希望能够用分布式的方式来处理一些数据,但是具体的作用涉及到核心技术,所以这里不能直接说明。但是他的核心思想,就是把数据分发到很多台机器上来处理,然后需要有一台机器来控制N多台机器的分布式处理,大概如下图所示。那么既然是分...转载 2020-03-21 16:37:29 · 283 阅读 · 0 评论 -
如何保障消息中间件 100% 消息投递成功?如何保证消息幂等性?
一、前言我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等。引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用。如上图:(1)订单服务投递消息给MQ中间件(2)物流服务监听MQ中间件消息,从而进行消费我们这篇文章讨论一下,如何保障订单服务把消息成功投递给MQ中间件,以RabbitMQ举例。二、分析问题小伙伴们对此会有些...转载 2020-01-08 17:00:27 · 181 阅读 · 0 评论 -
分表分库中间件 sharding-jdbc
文章转载于:http://www.open-open.com/lib/view/open1455691160276.html 数据库分库分表从互联网时代开启至今,一直是热门话题。在NoSQL横行的今天,关系型数据库凭借其稳定、查询灵活、兼容等特性,仍被大多数公司作为首选数据库。因此,合理采用分库分表技术应对海量数据和高并发对数据库的冲击,是各大互联网公司不可避...转载 2019-11-29 17:33:22 · 297 阅读 · 0 评论 -
谈谈中间件开发,给想从事中间件开发的同学
基友「莫那鲁道」(本文作者),目前正在开发使用 Java 语言,开发基于 Raft 算法的 KV 分布式存储。地址是:https://github.com/stateIs0/lu-raft-kv最重要的是,他就是想凑点 STAR ,哈哈哈哈哈哈哈。前言本文主要是写给那些想从事中间件开发的同学看的 :)如果你没有这个打算,那么本文的学习路线非但不实用,还可能会影响你正常的工作...转载 2019-11-25 16:10:52 · 765 阅读 · 2 评论 -
首次公开:京东数科强一致、高性能分布式事务中间件 JDTX
来源:https://www.infoq.cn/article/BAXzcfjRTcgmKisa7JHm在分布式数据库、云原生数据库、NewSQL 等名词在数据库领域层出不穷的当今,变革——在这个相对稳定的领域已愈加不可避免。相比于完全革新,渐进式增强的方案在拥有厚重沉淀的行业则更受青睐。同所有分布式领域的解决方案相同,分而治之的透明化数据分片方案,是新一代数据库解决海量数据的核心理念。...转载 2019-10-25 14:37:44 · 688 阅读 · 0 评论 -
RabbitMQ和Kafka到底怎么选?
作者:haolujun来源:cnblogs.com/haolujun/p/9632835.html前言开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措。对于RabbitMQ和Kafka,到底应该选哪个?RabbitMQ架构RabbitMQ是一个分布式系统,这里面有几个抽象概念。 brok...转载 2019-10-23 17:14:16 · 200 阅读 · 0 评论 -
Flink or Spark?实时计算框架在K12场景的应用实践
如今,越来越多的业务场景要求 OLTP 系统能及时得到业务数据计算、分析后的结果,这就需要实时的流式计算如Flink等来保障。例如,在 TB 级别数据量的数据库中,通过 SQL 语句或相关 API直接对原始数据进行大规模关联、聚合操作,是无法做到在极短的时间内通过接口反馈到前端进行展示的。若想实现大规模数据的“即席查询”,就须用实时计算框架构建实时数仓来实现。本文通过一个教育行业的应用案例,剖...转载 2019-10-23 17:10:20 · 715 阅读 · 0 评论 -
这款多线程中间件,吊打 Redis!
今天给大家介绍的是KeyDB,KeyDB项目是从redis fork出来的分支。众所周知redis是一个单线程的kv内存存储系统,而KeyDB在100%兼容redis API的情况下将redis改造成多线程。上次也跟大家说了,redis多线程正式版将在今年底发布,大家拭目以待。线程模型KeyDB将redis原来的主线程拆分成了主线程和worker线程。每个worker线程都是io线...转载 2019-10-23 13:34:44 · 526 阅读 · 0 评论 -
几款流行监控系统简介
由于业务的多样性,平台和系统也变得异常的复杂。如何对其进行监控和维护是我们 IT 人需要面对的重要问题。就在这样一个纷繁复杂的环境下,监控系统粉墨登场了。今天,我们会对 IT 监控系统进行介绍,包括其功能,分类,分层;同时也会介绍几款流行的监控平台。监控系统的功能在 IT 运维过程中,常遇到这样的情况: 某个业务模块出现问题,运维人员并不知道,发现的时候问题已经很严重了。 ...转载 2019-10-23 11:34:01 · 575 阅读 · 0 评论 -
Kafka 基本原理(8000 字小结)
简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Kafka架构它的架构包括以下组件: 话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。 生产...转载 2019-10-23 11:16:27 · 165 阅读 · 0 评论 -
Spring Cloud构建微服务架构(七)消息总线(续:Kafka)
Spring Cloud Bus除了支持RabbitMQ的自动化配置之外,还支持现在被广泛应用的Kafka。在本文中,我们将搭建一个Kafka的本地环境,并通过它来尝试使用Spring Cloud Bus对Kafka的支持,实现消息总线的功能。由于本文会以之前Rabbit的实现作为基础来修改,所以先阅读《Spring Cloud构建微服务架构(七)消息总线》有助于理解本文。Kafka简介K...转载 2017-03-04 09:06:23 · 3152 阅读 · 0 评论 -
手把手带你用数据库中间件Mycat+SpringBoot完成分库分表
一、背景随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。当用户表达到千万级别,在做很多操作的时候都会很吃力,所以当数据增长到1000万以上就需要分库分表来缓解单库(表)的压力。 二、什么是分库分表[1]简单...转载 2018-11-30 12:52:52 · 3759 阅读 · 0 评论 -
消息队列常见的几种使用场景介绍!
一、简介消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。 二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景。1、异步处理...转载 2018-11-09 09:45:39 · 323 阅读 · 0 评论 -
如何用 Netty 设计一个百万级推送服务?
1. 背景1.1. 话题来源最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题。问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类:1,Netty是否可以做推送服务器?2,如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端?3,使用Netty开发推送服务遇到的各种技术问题。由于咨询...转载 2018-11-12 10:49:55 · 697 阅读 · 1 评论 -
这么说吧,Netty很简单,其实就是个Jar包,是作为通讯组件用的
极简教程,五分钟快速入门之netty,搭配后面netty实战以及netty源码分析0 ) 关键词:Netty、NIO、异步、通讯、1)本质:一个Jar包,一个NIO框架,是对 socket 网络编程的优秀包装2)作用:既然netty 是对 socket 网络编程的优秀包装.那么在没有Netty之前,jdk强迫你必须用socket来写服务器,实际上是很繁琐的,缺乏一个...转载 2018-11-19 08:47:55 · 1879 阅读 · 2 评论 -
超详细 Nginx 极简教程,傻瓜一看也会!
什么是Nginx?Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 什么是反向代理?反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一...转载 2018-11-18 12:15:45 · 287 阅读 · 0 评论 -
深入浅出Nginx
前言Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。架构图上图基本上说明了当下流行的技术架构,其中Nginx有点入口网关的味道。 反向代理服务器?经常听人说到一些术语,如反向代理,那么什么是反向代理,什么又是正向代理呢?正向代理:正向代理示意图反向代理:反向代理示意图...转载 2018-11-24 11:00:31 · 335 阅读 · 0 评论 -
【手写系列】写一个迷你版的Tomcat
前言Tomcat,这只3脚猫,大学的时候就认识了,直到现在工作中,也常会和它打交道。这是一只神奇的猫,今天让我来抽象你,实现你!Tomcat Write MyTomcatTomcat是非常流行的Web Server,它还是一个满足Servlet规范的容器。那么想一想,Tomcat和我们的Web应用是什么关系?从感性上来说,我们一般需要把Web应用打成WAR包部署到Tom...转载 2018-11-24 11:12:13 · 1285 阅读 · 0 评论 -
Kafka 压测:3 台廉价服务器竟支撑 200 万 TPS
这篇文章是关于LinkedIn如何用kafka作为一个中央发布-订阅日志,在应用程序,流处理,hadoop数据提取之间集成数据。无论如何,kafka日志一个好处就是廉价。百万级别的TPS都不是很大的事情。因为日志比起数据库或者K-V存储是更简单的东西。我们的生产环境kafka集群每天每秒处理上千万读写请求,并且只是构建在一个非常普通的硬件上。接下来让我们做一些压测,看看kafka究竟多么牛逼...转载 2019-02-02 14:43:32 · 1061 阅读 · 1 评论 -
Netty防止内存泄漏措施
谨以此文献给李林锋即将新生的爱女。1. 背景1.1 直播平台内存泄漏问题某直播平台,一些网红的直播间在业务高峰期,会有 10W+ 的粉丝接入,如果瞬间发生大量客户端连接掉线、或者一些客户端网络比较慢,发现基于 Netty 构建的服务端内存会飙升,发生内存泄漏(OOM),导致直播卡顿、或者客户端接收不到服务端推送的消息,用户体验受到很大影响。1.2 问题分析首先对 GC 数...转载 2019-03-06 21:10:22 · 2027 阅读 · 0 评论 -
数据库中间件详解 | 珍藏版
1数据库拆分过程及挑战 互联网当下的数据库拆分过程基本遵循的顺序是:垂直拆分、读写分离、分库分表(水平拆分)。每个拆分过程都能解决业务上的一些问题,但同时也面临了一些挑战。1.1 垂直拆分对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会选择将所有数据存放在一个数据库 中进行访问操作。举例来说,对于一个电商系统,其用...转载 2019-03-26 19:12:18 · 16404 阅读 · 4 评论 -
Mycat源码篇 : 起步,Mycat源码阅读调试环境搭建
在研究mycat源码之前必须先把环境搭建好。这篇文章的目标就是搭建mycat源码调试环境。环境主要包括:git jdk maven eclipse mysql这里假设你知道上面的知识点。我们搭建的环境所处于的操作系统是Windows7+。下面将一步一步讲解如何搭建源码调试环境:1. 环境搭建1.1 获取mycat源码mycat源码托管在github上面,为了以后实时获取源...转载 2017-07-21 08:32:58 · 1568 阅读 · 0 评论