- 博客(518)
- 资源 (15)
- 收藏
- 关注
原创 Map & ConcurrentHashMap
某卖课公司的老师发我的提纲,与其花钱听课,不如自己整理一下。 HashMap底层存储原理详解 hashmap底层是以数组方式进行存储。将key-value对作为数组中的一个元素进行存储。 key-value都是Map.Entry中的属性。其中将key的值进行hash之后进行存储,即每一个key都是计算hash值,然后再存储。每一个Hash值对应一个数组下标,数组下标是根据hash值和数组长度计算得来。 由于不能的key有可能hash值相同,即该位置的数组中的元
2021-03-03 14:14:47 584
转载 亿级(无限级)并发,没那么难-科普文
肉眼品世界2020-04-04肉眼品世界导读:小编曾经看到高并发几个字也是欣喜若狂,如今变得淡定了,到底多高并发就是高并发了,TPS,QPS是指什么?亿级,千亿级并发真的那么难实现吗?互联网高并发架构设计的原则是什么,看遍了大厂小厂无数架构,是否可以发现都大同小异,万变不离其宗?好,我们就一起来揭秘吧;市面上很少有这么完善和透彻的,觉得不错就点赞转发吧 更多优质内容请关注微信公众号“...
2021-02-25 11:33:18 3335
原创 关于重构
对于影响面比较小的重构,比如代码优化等,可以穿插在业务功能开发中完成。而大规模重构,意指内部对整个系统进行架构、甚至核心代码的重写,但是外部功能不发生改变。此时面临两大挑战:保证业务功能保持不变-无功能遗漏,并且无功能改变。 新老系统是否需要并行运行一段时间,如果需要,如何做。通常存在三种重构方式:一次完成——定义最终状态的结构,然后将代码一次完成。 分而治之——将一大团乱七八糟的代码分为两段,然后重复这样的操作,直至完成…… 压制(Strangling)—压制类无论那种方式...
2021-02-09 15:01:36 195
转载 聊聊 Java8 以后各个版本的新特性
作者:ZY5A59juejin.im/post/5d5950806fb9a06b0a277412某天在网上闲逛,突然看到有篇介绍 Java 11 新特性的文章,顿时心里一惊,毕竟我对于 Java 的版本认识还停留在 Java 8 上,而日常使用的语法和 API 还停留在 Java 7 上。于是抽时间看了看 Java 8 以后各个版本的特性,做了一个总结。文章概览JDKJDK 全称 Java Development Kit,是 Java 开发环境。我们通常所说的 JDK 指的是 J.
2021-02-08 17:21:23 1293 1
原创 mysql高并发插入慢
数据库配置修改数据库安装时,没有修改任何配置,全部为默认配置,网上查询解决方案:1、sync_binlog和innodb_flush_log_at_trx_commit两个参数,这两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数于是修改这两个参数值,注意这样设置重启后将会失效!!!! set global sync_binlog=500; set global innodb_flush_log_at_trx_commit=2; 2、i...
2021-02-05 18:06:57 872
转载 新浪微博如何应对极端峰值下的弹性扩容挑战?
新浪微博在 2015 年春晚便通过 Docker 实现了私有云平台的弹性调度能力,随着公有云技术的成熟,我们发现原有私有云比较困难的问题在公有云上能够比较容易的解决,例如突发峰值情况下弹性资源的成本,小业务快速试错等场景。在 2016 年,微博完成了利用 Docker 构建混合云架构,本文将分享安全、网络、资源管理、调度管理、跨云服务发现等方面的一些实践经验。新浪微博庞大的数据背后是持续不断的技术挑战微博的数据量,在国内的社交媒体中排行位居前列。如下图:百亿级 PV、千亿级数据、万台以上
2021-02-04 18:22:10 574
转载 阿里巴巴“三板斧”管理到底是什么?
阿里巴巴从最初的以马老师为首的18罗汉创始员工,发展至今拥有4万员工;从杭州的湖畔花园起家,到去美国纽约证券交易所上市敲钟。阿里巴巴如何走到现在?它背后的管理机制是怎样的?我们到底向它学什么?● 阿里巴巴管理总纲● 阿里巴巴九板斧● 中层能力三板斧一、HRBP与商业结构“HRBP在阿里,HRBP(人力资源业务合作伙伴)是非常重要的岗位,员工和外界往往称之为“政委”。这个名称来源于两部电视剧:《历史的天空》和《亮剑》。只有当政委懂业务时,才能和业务团队组好班子,打好战略。岁末年
2021-02-02 10:31:00 2664
原创 101个MySQL的调优技巧
MySQL 服务器硬件和操作系统调节:1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多.2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢.3. 使用电池供电的RAM(注:RAM即随机存储器).4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列) – 最好是RAID10或更高.5. 避免RAID5(注:一种存储性能、数据安全和存储成本兼
2021-02-01 16:46:44 152
原创 两地三中心
1、概念两地三中心:是指同城双中心加异地灾备一种商用容灾备份解决方案; 两地是指同城、异地; 三中心是指生产中心、同城容灾中心、异地容灾中心。(生产中心、同城灾备中心、异地灾备中心) 双活数据中心“双活”或“多活”数据中心,区别于传统数据中心和灾备中心的模式,前者多个或两个数据中心都处于运行当中,运行相同的应用,具备同样的数据,能够提供跨中心业务负载均衡运行能力,实现持续的应用可用性和灾难备份能力,所以称为“双活”和“多活...
2021-02-01 16:07:24 5298
转载 paxos
这是一篇讲解很详细的文章不那么理论化https://wenku.baidu.com/view/21e21e1c04a1b0717fd5ddf4.html
2021-01-07 13:49:52 274
转载 饿了么监控系统 EMonitor 与美团点评 CAT 的对比
背景介绍饿了么监控系统EMonitor:是一款服务于饿了么所有技术部门的一站式监控系统,覆盖了系统监控、容器监控、网络监控、中间件监控、业务监控、接入层监控以及前端监控的数据存储与查询。每日处理总数据量近PB,每日写入指标数据量百T,每日指标查询量几千万,配置图表个数上万,看板个数上千。CAT:是基于Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务本文通过对比分析下2者所做的事情为契机讨论监控系统或许该有的面貌,以及浅谈下监控系统发展的各个阶段CAT做的事情(开源版)
2021-01-07 13:46:02 518
原创 java经典题目
1.列举出 10个JAVA语言的优势a:免费,开源,跨平台(平台独立性),简单易用,功能完善,面向对象,健壮性,多线程,结构中立,企业应用的成熟平台, 无线应用2.列举出JAVA中10个面向对象编程的术语a:包,类,接口,对象,属性,方法,构造器,继承,封装,多态,抽象,范型3.列举出JAVA中6个比较常用的包Java.lang;java.util;java
2021-01-07 13:45:31 678
原创 对称/非对称加解密
对称加解密:需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。因此加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。常用算法在对称加密算法中常用的算法有:DES、3D.
2020-07-07 11:43:07 525
原创 作为架构师,如何画好架构图
架构图本文章用于搜集较为成熟和具有参考价值的架构图模型、文章以及最佳实践。C4 模型C4 模型中的 C4,代表上下文(Context)、容器(Container)、组件(Component)和代码(Code),即一系列分层的图表,可以用这些图表来描述不同缩放级别的软件架构,每种图表都适用于不同的受众。具体可参考:https://c4model.com/。相关的简单介绍:用于软件架构的 C4 模型The C4 Model for Softwar...
2020-07-01 15:05:16 260
转载 新一代 CI 持续集成工具 flow.ci 正式开源
官方网站:https://flow.ci开源地址:https://github.com/flowci以此,你可以将功能完整的 flow.ci 持续集成服务部署到内网使用。在使用过程中有任何 bug 反馈或功能建议,可直接在 github 提 issues,或者通过 pull request 贡献代码。关于 flow.ci 新特性支持 Docker 一键部署,分分钟创建一套CI系统flow.ci 在 Docker Hub 上提供了最新的镜像,用户可以方便地获取 Docker 镜像,快速.
2020-07-01 14:45:43 618
原创 架构图最佳实践
架构图本文章用于搜集较为成熟和具有参考价值的架构图模型、文章以及最佳实践。C4 模型C4 模型中的 C4,代表上下文(Context)、容器(Container)、组件(Component)和代码(Code),即一系列分层的图表,可以用这些图表来描述不同缩放级别的软件架构,每种图表都适用于不同的受众。具体可参考:https://c4model.com/。相关的简单介绍:用于软件架构的 C4 模型The C4 Model for Softwar...
2020-07-01 14:42:08 229
原创 异地多活
1、 是不是需要:核心系统才考虑多活,非核心不需要。2、 实时一致性:多活机房物理距离尽量比较短 减少需要同步的数据 保证最终一致性,不保证实时一致性3、实现方案: 避免直接使用用中间件的方案如mysql、redis等,虽然有现成方案,但是也有先天不足,不建议直接使用。 可以参考其原理,根据业务场景,另起炉灶,这样有问题(如同步出错/延迟)可以进行干预4、100%可用性放弃这种想法,...
2020-06-28 15:17:40 143
原创 分布式架构原理解析
1. 分布式术语1.1. 异常服务器宕机内存错误、服务器停电等都会导致服务器宕机,此时节点无法正常工作,称为不可用。服务器宕机会导致节点失去所有内存信息,因此需要将内存信息保存到持久化介质上。网络异常有一种特殊的网络异常称为——网络分区 ,即集群的所有节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信。磁盘故障磁盘故障是一种发生概率很高的异常。使用冗余机制,将数据存储到多台服务器。1.2. 超时在分布式系统中,一个请求除了成功和失败两种状态,还存在着
2020-06-16 17:21:45 1425
转载 跳表(SkipList)数据结构介绍
使用场景跳表(Skiplist)是一个特殊的链表,相比一般的链表,有更高的查找效率,可比拟二叉查找树,平均期望的查找、插入、删除时间复杂度都是O(logn),许多知名的开源软件(库)中的数据结构均采用了跳表这种数据结构。Redis中的有序集合zset LevelDB、RocksDB、HBase中Memtable ApacheLucene中的TermDictionary、Posting List跳表结构描述跳表可视为水平排列(Level)、垂直排列(Tower)的位置(Position,对E
2020-06-08 14:59:37 1190
转载 饿了么异地多活技术实现(四)- 实时双向复制工具(DRC)
DRC介绍饿了么的 Data Replicate Center(DRC)项目用于数据双向复制和数据订阅,使用场景如下图:要点说明:跨机房的 Mysql 数据复制完全通过 DRC 来完成 还有很多业务团队通过 DRC 来实现数据订阅目前饿了么100%的跨机房数据复制,90%的数据订阅都通过DRC完成,每天有大量的数据流经DRC。复制延迟保持在1s以下,从来没有发生过数据丢失和错乱的情况。DRC的设计目标包括:实时双向数据复制,延时 < 1s ,并能够解决双向修改时的数据.
2020-06-08 11:57:27 850
转载 饿了么异地多活技术实现(三)GZS&DAL
饿了么技术团队花了1年多的时间,实现了业务的整体异地多活,能够灵活的在多个异地机房之间调度用户,实现了自由扩容和多机房容灾的目标。本文介绍这个项目的中五大核心基础组件中的DAL与GZS,关于项目整体介绍以及其它组件的实现细节可以参考本系列的其它文章。GZS (Global Zone Service:全局状态协调器)背景多活改造的一个核心是多活流量路由,来源主要包括三个方面:从ezone外部发起的请求。比如用户下订单,商户添加菜品等等。这个部分的请求由API Router路由到正确的ez.
2020-06-08 11:49:17 579
转载 饿了么异地多活技术实现(二)API-Router的设计与实现
背景:饿了么随着业务量的增长,单个数据中心的容量无法支撑全部流量,同时传统机房冷备份方式的缺陷,促使饿了么异地多活应运而生;而作为多活重要组件之一的API-Router,扮演着客户端入口流量到后端机房路由的重要角色,当一个机房出现故障甚至宕机,可以实现机房快速切换。设计目标:1、入口流量可以根据sharding key规则路由到对应的机房(准确的说是ezone);2、配合机房切换规则,能实现流量的转移;3、尽可能的实现高性能、高可用、高并发,保护后端服务、削峰填谷;前两点,主要.
2020-06-08 11:02:38 452
转载 ng的upstream模块
upstream模块 (100%)nginx模块一般被分成三大类:handler、filter和upstream。前面的章节中,读者已经了解了handler、filter。利用这两类模块,可以使nginx轻松完成任何单机工作。而本章介绍的upstream模块,将使nginx跨越单机的限制,完成网络数据的接收、处理和转发。数据转发功能,为nginx提供了跨越单机的横向处理能力,使nginx摆脱只能为终端节点提供单一功能的限制,而使它具备了网路应用级别的拆分、封装和整合的战略功能。在云模型大行其道的今天
2020-06-08 11:00:19 1339
原创 我读过的最好的epoll讲解--转自”知乎“
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,但是服务器还没有把数据传回来),这时候该怎么办?阻塞:阻塞是个什么概念呢?比如某个时候你在等快递...
2020-06-08 10:57:34 211
原创 反向代理和正向代理
基本概念拾起来(1)正向代理和代理服务器正向代理即通常所说的代理,用于代表内部网络用户向Internet上的服务器(或称外部服务器,通常为Web服务器)发出连接请求,并接收响应结果,执行该代理功能的服务器称为代理服务器。使用代理服务器访问外部网络时,客户端必须在局域网设置中指明代理服务器的地址以及要代理的服务的端口号。(2)反向代理和代理服务器反向代理的方向与正向代理相反,指代表外部网络用户向内部服务器发出请求,即接收来自Internet上用户的连接请求,并将这些请求转发给内部网络上的服务器
2020-06-08 10:53:35 146
转载 DRC实践
DRC简介DRC(Data Replication Center)是我在阿里听过的一个概念,它的业务域是支持异构数据库实时同步,数据记录变更订阅服务。为跨域实时同步、实时增量分发、异地双活、分库分表等场景提供产品级的解决方案。支持异地多活、大数据实时抽取、搜索实时更新数据、数据表结构重构、多视图数据存储、大屏实时刷新等。DRC在阿里服务了数万个实时通道,已经成为阿里的基础设施,重要性不言而喻。DRC需要保障数据库的事务一致性,包括DDL(表结构变更)也可以进行同步或过滤。而DBA天生就在这个坑里,绝对
2020-06-08 10:49:42 2213 1
转载 饿了么异地多活技术实现(一)总体介绍
https://zhuanlan.zhihu.com/p/32587960背景:饿了么随着业务量的增长,单个数据中心的容量无法支撑全部流量,同时传统机房冷备份方式的缺陷,促使饿了么异地多活应运而生;而作为多活重要组件之一的API-Router,扮演着客户端入口流量到后端机房路由的重要角色,当一个机房出现故障甚至宕机,可以实现机房快速切换。设计目标:1、入口流量可以根据sharding key规则路由到对应的机房(准确的说是ezone);2、配合机房切换规则,能实现流量的转移;3.
2020-06-08 10:47:56 913
原创 Eureka 和 ZooKeeper 有哪些区别
区别不多,主要是理念不一样根据互联网架构的CAP原则,最多满足2个,或者AP、CP或者AC。Eureka选择了AP作为出发点,而zk选择了CP作为出发点。其他区别细节基本都是围绕这两点展开。...
2019-07-29 10:49:40 238
原创 Windows10家庭版安装Docker Desktop(非Docker Toolbox)
首先需要虚拟化:https://www.ithome.com/html/win10/374942.htm安装参照如下链接:https://www.jianshu.com/p/1329954aa329
2019-07-26 18:43:45 987
原创 互联网平台几个业务考核参数
DAU(Daily Active User)日活跃用户数量。常用于反映网站、互联网应用或网络游戏的运营情况。 MAU(monthly active users)月活跃用户人数。是在线游戏的一个用户数量统计名词,数量越大意味着玩这款游戏的人越多。 PCU(Peak concurrent users )最高同时在线玩家人数。 DNU日新增用户 WAU是周活跃用户数量 ACU (Average...
2019-03-14 12:57:52 1364
原创 PAXOS算法的理解
1.分布式系统定义分布式系统是这样一种系统,它的各个组件分布在联网的若干台计算机上,通过传递消息进行相互通信和协同工作。特点并发性:在没有协同的情况下,组件各自行事。没有全局时钟:目前的时间同步精度不够。故障无处不在:总是会发生各种各样的故障。2.Paxos算法解决的问题是分布式系统如何对一个问题达成共识。3.Paxos算法中的角色
2018-01-25 14:31:13 412
转载 分布式一致性算法--Paxos
Paxos算法是莱斯利·兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的一致性算法。Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。在工程实践意义上来说,就是可以通过Paxos实现多副本一致性,分布式锁,名字管理,序列号分配等。比如,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证
2018-01-25 14:10:44 385
原创 区块链技术会不会塌方
撇开比特币不说,很久以前看过一段时间区块链,其理论基础都是基于各种算法、协议等等。会不会某天由于某个算法未知的缺陷,导致整个体系的崩溃?
2018-01-25 10:54:43 404 3
Manning.Java.Persistence.with.Hibernate.Nov.2006
2007-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人