Category: Java Architecture

[转]并行任务,线程池,工作窃取算法 0

[转]并行任务,线程池,工作窃取算法

记得在上个月,微博上有一则热议的新闻:小学数学老师布置作业,要求“数一亿粒米” 网友大多数是以吐槽的态度去看待这件事,也有人指出能用估算的方法,这是一道考察发散思维的题目。 一开始我也觉得这个题目很荒唐,似乎是不可能完成的任务。但这个细细想来值得玩味,我在思考一个问题:如果从计算机的角度去看,如何才能最快速地数一亿粒米呢?

[转]程序员如何 Get 分布式锁的正确姿势 0

[转]程序员如何 Get 分布式锁的正确姿势

在很多互联网产品应用中,有些场景需要加锁处理,比如秒杀、全局递增ID、楼层生成等等,大部分的解决方案是基于DB实现的,Redis也是较为常见的方案之一。 Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。

0

[转]聊聊分布式锁

1. 1.背景 对于锁大家肯定不会陌生,在Java中synchronized关键字和ReentrantLock可重入锁在我们的代码中是经常见的,一般我们用其在多线程环境中控制对资源的并发访问,但是随着分布式的快速发展,本地的加锁往往不能满足我们的需要,在我们的分布式环境中上面加锁的方法就会失去作用。于是人们为了在分布式环境中也能实现本地锁的效果,也是纷纷各出其招,今天让我们来聊一聊一般分布式锁实现的套路。

[转]史上最全的select加锁分析(Mysql) 0

[转]史上最全的select加锁分析(Mysql)

1. 引言 大家在面试中有没遇到面试官问你下面六句Sql的区别呢

  如果你能清楚的说出,这六句sql在不同的事务隔离级别下,是否加锁,加的是共享锁还是排它锁,是否存在间隙锁,那这篇文章就没有看的意义了。

0

[转]高可用简史

分布式是如何进入数据库领域的? 我曾经访问过一个有“营业时间”的网站,它只在某些时间段才“开放”。我因此感到困惑,还有点沮丧。计算机可以运行一整天,为什么这个网站就不可以呢?可能我已经习惯了互联网那种令人难以置信的可用性保证。 然而,在互联网出现之前,全天候可用性的概念还“不成气候”。可用性虽然令人期待,但还没有到非要不可的程度。我们只在有需要时才使用电脑,它们不会为了一个极小可能出现的请求而等待。随着互联网的出现和发展,之前不太常见的本地凌晨 3 点请求变成了全球性的主要营业时间点,确保计算机能够处理这些请求就变得非常重要。

0

[转]手把手教你从0到1写一个简单的缓存框架

目前市面上已经有很多开源的缓存框架,比如 Redis、Memcached、Ehcache 等,那为什么还要自己动手写缓存?本文将带领大家从 0 到 1 写一个简单的缓存框架,目的是让大家对缓存的类型、缓存的标准、缓存的实现以及原理方面有一个系统的了解,做到知其然,知其所以然。

[转]系统化全方位监控告警总结 0

[转]系统化全方位监控告警总结

Q1花了较大的篇幅,系统化讲述了监控与告警体系的建立,本文稍作总结。如果恰巧你正在搭建自动化监控与告警平台,或许,细读这一系列文章就够了。 一《监控告警,集群信息管理先行》 什么是集群信息管理 使用配置文件进行集群信息管理 使用服务进行集群信息管理 使用配置中心进行集群信息管理 二《监控告警,员工信息管理,分级告警策略》 使用配置文件进行员工信息管理 使用服务进行员工信息管理 常见分级告警策略:告警收敛,分时告警,逐层上报,黑白跳动 三《多维度立体化监控》 什么是多维度立体化监控 立体化监控有哪些维度 操作系统+进程+端口 http状态码 服务存活性 接口处理时间 http接口 log监控 用户视角 如何快速实施“1.操作系统+进程+端口”的监控 如何快速实施“2.http状态码”的监控 如何快速实施“3.服务存活性”的监控 如何快速实施“4.接口处理时间”的监控 四《一分钟搞定“http接口”监控框架》 常见http监控玩法 常见http监控的弊端 通用可扩展http监控平台架构 简版http监控框架架构 100行伪代码搞定http监控 五《一分钟搞定“log”监控框架》 什么是日志监控 日志分级,错误日志监控,正常日志监控 日志与目录规范...

[转]数据库不要用外键约束 0

[转]数据库不要用外键约束

1. 引言 其实这个话题是老生常谈,很多人在工作中确实也不会使用外键。包括在阿里的JAVA规范中也有下面这一条 【强制】不得使用外键与级联,一切外键概念必须在应用层解决。  但是呢,询问他们原因,大多是这么回答的 每次做DELETE 或者UPDATE都必须考虑外键约束,会导致开发的时候很痛苦,测试数据极为不方便。 坦白说,这么说也是对的。但是呢,不够全面,所以开一文来详细说明。

0

[转]Spring Cloud底层原理

毫无疑问,Spring Cloud 是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。 不过大多数讲解还停留在对 Spring Cloud 功能使用的层面,其底层的很多原理,很多人可能并不知晓。 因此本文将通过大量的手绘图,给大家谈谈 Spring Cloud 微服务架构的底层原理。 实际上,Spring Cloud 是一个全家桶式的技术栈,它包含了很多组件。本文先从最核心的几个组件,也就是 Eureka、Ribbon、Feign、Hystrix、Zuul 入手,来剖析其底层的工作原理。