多数据中心的百万级消息服务实战

背景利用RabbitMQ集群横向扩展能力,均衡流量压力,让消息集群的秒级服务能力达到百万,Google曾做过此类实验;有货在某些推送场景下也做了类似尝试,在此对此前实践经验以及踩得坑做些总结工作。RabbitMQ概述RabbitMQ是基于AMQP协议实现的消息中间件的一种,常用于在分布式系统中存储转发消息,表现为易用、可扩展、高可用等特点,最初活跃在金融系统...
📅 2023-08-08 阅读全文 →

Redis 分布式锁如何自动续期

来源:blog.csdn.net/upstream480/article/details/121578638Redis 实现分布式锁指定一个 key 作为锁标记,存入 Redis 中,指定一个 唯一的用户标识作为 value。当 key 不存在时才能设置值,确保同一时间只有一个客户端进程获得锁,满足互斥性特性。设置一个过期时间,防止因系统异常导致没能删除这个...
📅 2023-08-08 阅读全文 →

换掉VMware?轻量级虚拟机,横空出世!

说起虚拟机工具大家最熟悉的自然是 VMware,功能很多很强大,最让我认可的地方就是可以非常方便的修改虚拟机的配置,让虚拟机达到自己想要的性能~~可是 VMware 好用是真的好用,但就是要付费呀!还不便宜,每次续费的时候我多多少少都有点心疼~~Multipass最近有读者给我推荐了一款虚拟机工具:Multipass,非常轻量级的虚拟机命令管理工具。运行环境...
📅 2023-08-08 阅读全文 →

案例:来自Uber的Go语言GC优化实践

Uber 是世界领先的生活出行服务提供商,也是 Go 语言的早期 adopter,根据 Uber 工程博客的内容,大致可以判断出 Go 语言在 Uber 内部扮演了十分重要的角色。Uber 内部的 Go 语言工程实践也是硕果累累,有大量 Go 实现的内部工具被 Uber 开源到 GitHub 上,诸如被 Gopher 圈熟知的&...
📅 2023-08-08 阅读全文 →

@Autowire和@Resource注解使用的正确姿势,别再用错的了!!

来源:juejin.cn/post/6844904064212271117介绍今天使用Idea写代码的时候,看到之前的项目中显示有warning的提示,去看了下,是如下代码?@Autowireprivate JdbcTemplate jdbcTemplate;提示的警告信息Field injection is not recommende...
📅 2023-08-08 阅读全文 →

Controller 是单例还是多例?怎么保证并发的安全

答案:controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。我们下面来简单的验证下:package com.riemann.springbootdemo.controller;import org.springframework.context.annotation.Scope;...
📅 2023-08-08 阅读全文 →

快速提升性能的SQL语句,建议收藏

来源:cnblogs.com/SimpleWu/p/9929043.html本文会提到 52 条 SQL 语句性能优化策略。1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。2、应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,创建表时 NULL 是...
📅 2023-08-08 阅读全文 →

基于 Prometheus、InfluxDB 与 Grafana 打造监控平台

在本文中,我将把几个常用的监控部分给梳理一下。前面我们提到过,在性能监控图谱中,有操作系统、应用服务器、中间件、队列、缓存、数据库、网络、前端、负载均衡、Web 服务器、存储、代码等很多需要监控的点。显然这些监控点不能在一个专栏中全部覆盖并一一细化,我只能找最常用的几个,做些逻辑思路的说明,同时也把具体的实现描述出来。如果你遇到了其他的组件,也需要一一实现这...
📅 2023-08-08 阅读全文 →

手写Redis服务端,从设计者的角度聊一聊Redis本身

【文章来源】https://sourl.cn/mqFYeU零,起因我为什么要造redis这个轮子? 1 破除对redis神秘感。 2 “基础服务中台”的同事们在开会讨论redis云,以及redis代理。 3 开一个redis资源并不是容易事,为什么不可以不可以写成java直接推送到未来云上,简单方便。以这个思路我开始使用业余时间研究了redis的tcp通讯原...
📅 2023-08-08 阅读全文 →

爬虫或恶意攻击,如何动态屏蔽IP地址?

背景为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。架构实现 IP 黑名单的功能有很多途径:1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求;2、在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者 lua 插件 配置 IP 黑名单;3、...
📅 2023-08-08 阅读全文 →

微服务之间的最佳调用方式

在微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关键问题。服务调用有两种方式,一种是RPC方式,另一种是事件驱动(Event-driven)方式,也就是发消息方式。消息方式是松耦合方式,比紧耦合的RPC方式要优越,但RPC方式如果用在适合的场景也有它的一席之地。我们总在谈耦合,那么耦合到底意味着什么呢?耦合的种类...
📅 2023-08-08 阅读全文 →

还在担心写的一手烂SQL,送你4款工具

作者:爱马仕_人员链接:https://www.jianshu.com/p/ad466a249d94对于正在运行的mysql,性能如何,参数设置的是否合理,账号设置的是否存在安全隐患,你是否了然于胸呢?俗话说工欲善其事,必先利其器,定期对你的MYSQL数据库进行一个体检,是保证数据库安全运行的重要手段,因为,好的工具是使你的工作效率倍增!今天和大家分享几个m...
📅 2023-08-08 阅读全文 →

接口级故障的应对方法

作者:短暂瞬间链接:https://www.jianshu.com/p/3f02e09a243a什么是接口级故障?异地多活方案主要是应对影响大但发生概率较小的系统级故障,而发生概率更高但故障影响较小的故障就是接口级的故障。接口级故障的典型表现:业务出现问题,但不是系统宕机或网络中断,比如响应慢、访问超时、访问异常、无法连接数据库等。接口级故障原因主要原因:系...
📅 2023-08-08 阅读全文 →

一般实现分布式锁都有哪些方式?

作者:kevin0016链接:https://www.jianshu.com/p/9d3b1927e627面试题:一般实现分布式锁都有哪些方式?使用 redis 如何设计分布式锁?使用 zk 来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?面试官心理分析其实一般问问题,都是这么问的,先问问你 zk,然后其实是要过度到 zk 关联的一些问题里去,...
📅 2023-08-08 阅读全文 →

中美程序员的区别对比

原文链接:https://www.zhihu.com/question/497793332/answer/2216734220我是在美国工作过两年,回国经历了逆文化冲击,现在勉强算是适应了国内互联网公司的节奏。随便聊聊,没有崇洋媚外的意图,只是刚好最近被剥削得很不爽,趁机吐槽一下。 1.年龄 美国公司:同事里20多到70多岁的都有,众数是...
📅 2023-08-08 阅读全文 →

HTTP Host 头攻击

来源:https://blog.csdn.net/angry_program1. HTTP Host头攻击从HTTP / 1.1开始,HTTP Host标头是必需的请求标头。它指定客户端要访问的域名。例如,当用户访问https://example.net/web-security时,其浏览器将组成一个包含Host标头的请求,如下所示:GET /we...
📅 2023-08-08 阅读全文 →

一个sql的执行过程详解

作者:猿来是八阿哥链接:https://www.jianshu.com/p/e2926d6a808f一个sql的执行过程一、 组成部分PDO_MYSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MySQL dat...
📅 2023-08-08 阅读全文 →

消息积压在消息队列里怎么办

作者:一条路上的咸鱼链接:https://www.jianshu.com/p/07b2169bef491.大量消息在mq里积压了几个小时了还没解决场景:几千万条数据在MQ里积压了七八个小时,从下午4点多,积压到了晚上很晚,10点多,11点多。线上故障了,这个时候要不然就是修复consumer的问题,让他恢复消费速度,然后傻傻的等待几个小时消费完毕。这个肯定不...
📅 2023-08-08 阅读全文 →

三种分布式锁详解!

作者:zhong0316链接:https://www.jianshu.com/p/a64df8dcfadeJava中的锁主要包括synchronized锁和JUC包中的锁,这些锁都是针对单个JVM实例上的锁,对于分布式环境如果我们需要加锁就显得无能为力。在单个JVM实例上,锁的竞争者通常是一些不同的线程,而在分布式环境中,锁的竞争者通常是一些不同的线程或者进...
📅 2023-08-08 阅读全文 →

Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?

面试题为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?面试官心理分析其实面试官主要是想看看:第一,你知不知道你们系统里为什么要用消息队列这个东西?不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,...
📅 2023-08-08 阅读全文 →

增加了一行代码,让我们提高了3000%的性能

文章来源:【公众号:infoQ】概 述我们公司运维着 15 个 Web 应用,主要的工作就是按需交付基于数据驱动的 Web 应用程序,用于支撑实时决策的制定。这些应用的预期是在高负载下依然保持高可用。其中的主 Web 应用是一个历史遗留的大型多服务系统。系统中的大部分服务都有超过 15 年的历史并且经过了好几代人的重构。试想一下,负责编写系统代码的人现在可能...
📅 2023-08-08 阅读全文 →

一个“扛住100亿次请求”的春晚红包系统

文章来源:https://sourl.cn/wRp68e前 言偶然看到了《扛住100亿次请求——如何做一个“有把握”的春晚红包系统》一文,看完以后,感慨良多,收益很多。正所谓他山之石,可以攻玉,虽然此文发表于2015年,我看到时已经过去良久,但是其中的思想仍然可以为很多后端设计借鉴。同时作为一名微信后端工程师,看完以后又会思考,学习了这样的文章以后,是否能给...
📅 2023-08-08 阅读全文 →

怎么设计一个合适的延时队列?

【文章来源】https://sourl.cn/pcgvTp延时队列技术调研项目背景延迟队列,它是一种带有延迟功能的消息队列,目前工作中有几处需延时处理的应用场景。可选技术参考kafka考虑前提:由于项目代码与业务方交互大多采用 kafka,所以想是否能自己集成一个 kafka 延迟队列,直接提供延迟功能,更方便使用。大致思路:借鉴 rocketMQ 延迟队列...
📅 2023-08-08 阅读全文 →

聊聊技术人的“绩效考核”

来自:酷 壳,作者:陈皓(左耳朵耗子)链接:https://coolshell.cn/articles/17972.html“前些天,有几个网友找我谈绩效考核的事,都是在绩效上被差评的朋友。在大致了解情况后,我发现他们感到沮丧和郁闷的原因,不全是自己没有做好事情。他们对于自己没有做好公司交给的事,一方面,持一些疑义,因为我很明显地感到他们和公司对一件是否做好...
📅 2023-08-08 阅读全文 →

暴力拒绝白嫖,著名开源项目作者删库跑路!神秘Bug影响超2万个项目,亚马逊云也躺枪

【文章来源】【公众号:新智元】“从GitHub上删除自己的代码是违反他们的服务条款的?WTF? 这是一种绑架行为。” 这两天,一些开发者感觉有点懵……  一觉醒来发现,自己程序跑出来的全都是「乱码」。  说起来,这些开发者的共同点就是都使用了开源库「colors」和「faker」。 而且这两个库相当...
📅 2023-08-08 阅读全文 →

Nginx从安装到高可用,一篇搞定!

一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yum install gcc-c++(2)安装PCRE库,用于解析正则表达式yum install -y pcre pcre-...
📅 2023-08-08 阅读全文 →

谈谈架构的本质和架构分类

一. 什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存...
📅 2023-08-08 阅读全文 →

Linus:Linux太烂,我要删了它,你们用Windows XP吧!

一般技术大神可能都有点神经质,总是让人迅雷不及掩耳,无法理解一些事情。这不前两天,就是是1月25号, Linux之父 Linus Torvalds 好像又有点情绪失控。不过这次他没有骂人,他悄悄地向GitHub仓库提交了一个README文件,地址为:https://github.com/torvalds/linux/tree/8bcab0346d4fcf21...
📅 2023-08-08 阅读全文 →

深入理解分布式缓存设计

来源:https://zhuanlan.zhihu.com/p/55303228前言在高并发的分布式的系统中,缓存是必不可少的一部分。没有缓存对系统的加速和阻挡大量的请求直接落到系统的底层,系统是很难撑住高并发的冲击,所以分布式系统中缓存的设计是很重要的一环。下面就来聊聊分布式系统中关于缓存的设计以及过程中遇到的一些问题。缓存的收益与成本使用缓存我们得到以下...
📅 2023-08-08 阅读全文 →

苹果 CEO 库克“喜当爹”,被女子索赔31.6亿分手费!

来源:扩展迷EXTFANS谁也没想到,新的一年刚过去一个月,竟然就吃到了苹果老大的“大瓜”。据 CNN 1月25日晚间报道,库克受到了来自一位45岁女性的威胁,后者自称库克的妻子,且还为库克孕育了双胞胎。苹果公司则表示,在1月25日已向法庭申请针对该女子的限制令,并已获得批准。根据苹果公司向圣克拉拉县高等法院提交的法庭文件显示,该女性名为 Julia Lee...
📅 2023-08-08 阅读全文 →