- 博客(17)
- 收藏
- 关注
原创 简单聊聊工程质量中研发需要关心的点
要想让我们的系统能够平稳运行,我们需要在抓好人、工具、预案、目标这几个点,只有抓好这些点,我们才能真正构建高性能、高可用、可降级的业务系统。
2023-04-17 08:54:01
256
原创 雷军在金山的奋斗历程(我的金山我的青春)
因为前一段时间上下班在车上听了<<一往无前>>,让我对程序员出生的雷军有了更全面的认知例如勤奋、对商业的敏锐度、趋势的判断等,这才成就了今天的自己。说起雷军,我想大家都非常熟悉:小米科技创始人,带领团队仅用一年的时间就让公司的销售跨过了100亿的大门。挺进了世界500强,这一步华为走了23年,阿里走了18年,腾讯的马化腾用了19年,但是小米雷军仅用9年,成就了全球最年轻的500强企业,人称他为雷布斯。除这个雅称之外,他还有另一个称号“中国版巴菲特”,他投资了大大小小接近500多家
2022-03-30 18:27:31
3441
原创 MYSQL是如何保证数据不丢的?
可以了解mysql内部确保数据不丢失的原理,学习里面优秀的设计要点,然后我们再借鉴这些优秀的设计要点进行实践应用,加深理解。在mysql中有两种LOG,分别是redo log和binlog,只要保证持久化到磁盘,即使异常或服务器cash,它也能确保重启后可以恢复数据,那么今天来探讨MYSQL如何数据不丢失的,在探讨之前先简单了解一下binlog和redolog。...
2021-09-21 11:15:45
522
原创 理解redis,一篇就够
一、前言 在高并发的场景下,用传统的关系型数据库很难满足性能方面要求,越来越挑剔的用户也要求我们的系统不仅要关注功能特性,同时追求极致的产品体验,也就是所说的高性和高可用,那么不免要引入第三方缓存中间件NoSQL,比较熟知有:mongoDb、memercache等,还有今天的主题redis,这些中间件在互联网公司使用非常频繁,而我所在唯品会,这些缓存中间件大量使用,比如商品使用memercache,同时redis也在公司内部大量使用,而我当时在做开放平台的网关时,技术选型就是redis。 作为开源键
2021-09-14 18:28:01
217
原创 Redis新版本开始引入多线程,谈谈你的看法?
Redis作为一个基于内存的缓存系统,一直以高性能著称,因没有上下文切换以及无锁操作,即使在单线程处理情况下,读速度仍可达到11万次/s,写速度达到8.1万次/s。但是,单线程的设计也给Redis带来一些问题:只能使用CPU一个核;如果删除的键过大(比如Set类型中有上百万个对象),会导致服务端阻塞好几秒;QPS难再提高。针对上面问题,Redis在4.0版本以及6.0版本分别引入了Lazy Free以及多线程IO,逐步向多线程过渡,下面将会做详细介绍。单线程原理都说Redis是单线程的,那么单线
2021-09-05 21:17:34
131
原创 转发:饿了么4年 + 阿里2年:研发路上的思考和总结
我是在 2014 年入职饿了么,从前端和 PHP 一直做到后端架构和团队,从 2014 年到 2017 年陆续负责过公司客服、销售、代理商、支付、清结算、订单这些业务的产研与团队;2018 年从业务研发团队抽身,6 个人组起一个小组投身机器学习,试图结合实际的业务场景通过技术改造业务;2019 年回归到平台(中台)研发,负责交易、金融、营销三个中台的研发和团队工作。基于我在饿了么4年和阿里巴巴 2 年研发经历,从技术、业务、管理和架构层面分享一些我的思考。一、技术层面对开发同学而言,技术是立身之本,虽然
2021-08-30 17:26:06
506
原创 Saas发展史&常用架构
一、什么是Saas? 从字面中理解SaaS的全称是Software as a service, 即软件即服务,即由传统的开发卖软件升级到开发软件卖服务。百度百科对SAAS的定义是:SAAS平台是运营saas软件的平台,SaaS提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房等,租户开箱即用。SaaS 是一种软件布局模型,其应用专为交付而设计,便于用户通过互联网托管、部署及接入。 ToB Saas系统最近几年
2021-08-22 10:15:19
2053
原创 数据库分库分表策略,如何分库,如何分表?
在日常的工作中,关系型数据库本身比较容易成为系统的瓶颈点,虽然读写分离能分散数据库的读写压力,但并没有分散存储压力,当数据量达到千万甚至上亿时,单台数据库服务器的存储能力会成为系统的瓶颈,主要体现在以下几个方面:数据量太大,读写的性能会下降,即使有索引,索引也会变得很大,性能同样会降下。数据库文件会得很大,数据库备份和恢复需要耗时很长。数据库文件越大,极端情况下丢失数据的风险越高。 因此,当流量越来越大时,且单机容量达到上限时,此时需要考虑对其进行切分,切分的目的就在于减少单机数据库的负担,
2021-08-22 10:13:20
873
原创 微服务之服务路由容错杂谈
近年来随着互联网的快速崛起,为更好让技术与业务更好融合,快速解决用户和业务复杂需求,软件开发模式也得到日新月异的发展,应用架构由最初传统单体应用、SOA到现在的微服务分布式架构。从搜索指数来看,微服务的热度在进入 2017 年后突然爆发,国内各大会议和论坛的相关讨论也如雨后春笋般层出不穷,对于微服务到底是银弹还是焦油弹在网上也是各抒己见,各大一线互联网公司也纷纷将这一技术引入并在实际业务中落地,而开源微服务框架越来越多,比如阿里的Dubbo、唯品会OSP、微博Motan、腾讯的Tars,spring c
2021-08-18 14:35:04
263
原创 全面了解kafka
一、前言前几天看了一篇《打造全球最大规模Kafka集群,UBER的多区域灾备实践》的一篇博客,Uber用kafka实践,每天处理数亿级消息和几个PB的数据,kafka现在成了Uber的技术栈的基石,并基于构建了一复杂的生态系统,它实现了kafka的多区部署、多区消费消息和容灾,今天我不重点说kafka在UBer的具体实践,而是借用这个主题全面梳理一下kafka,重新复习一下。说到消息队列,耳熟能详有rabbitMQ、activeMq、rocketMq、redis的MQ等等。在工程化越来越复杂的今天,消息队
2021-08-17 20:13:55
196
原创 JAVA虚拟机垃圾回器简述
一、概述 在JAVA虚拟机中垃圾回器有好几种,那么在什么情况下使用哪一种,对应用程序有哪些影响,我们需要了解每种垃圾回收器的特性和使用方法,垃圾回收器主要是几下几种,分别是串行垃圾回收器,并行垃圾回收器、CMS垃圾回收器、G1垃圾回收器以及JDK14推出的ZGC垃圾回收器。二、串行垃圾回收器 串行垃圾回收器是JDK中最基本也是最古老的垃圾回收器,它使用单线程进行垃圾回收,每次回收时,串行回收器只有一个工作线程,对于性能较弱的计算来说,串行回收器效果更好,因为只有一个线程且是独占方..
2021-08-17 09:26:18
161
原创 JVM虚拟机如何判断对象存活&GC算法介绍
一、前言 JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区/元信息区。其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。而Java堆区和方法区则不一样、不一样!(怎么不一样说的朗朗上口),这部分内存的分配和回收是动态的,正是垃圾收集器所需关注的部分。垃圾收集器在对堆区和方法区进行回收前,首先要确定这些区域的对象哪些可以被回收,哪些暂时还
2021-08-17 09:24:33
255
原创 JAVA-G1垃圾回收器介绍
一、概述 G1垃圾回收器是在Java7 update 4之后引入的一个新的垃圾回收器。G1是一个分代的,增量的,并行与并发的标记-复制垃圾回收器。它的设计目标是为了适应现在不断扩大的内存和不断增加的处理器数量,进一步降低暂停时间(pause time),同时兼顾良好的吞吐量。G1回收器和CMS比起来,有以下不同:G1垃圾回收器是compacting的,因此其回收得到的空间是连续的。这避免了CMS回收器因为不连续空间所造成的问题。如需要更大的堆空间,更多的floating garbage。连续空间意味
2021-08-17 09:21:39
288
原创 java性能优化命令集合
#一、概述java虚拟机有一套自动管理内存,减少我们开发人员不少麻烦,但同时如果线上出现问题,比如死锁、FULL GC,我们应该如何去发现这些问题并解决问题呢,其实JDK,操作系统以及一些大厂提供了很多的工具,这篇主要讲常用的linux命令以及JDK自带命令。##二、linux常用命令 Linux平台式使用最为广泛的服务器平台之一,不少Java端程序都运行在类Linux平台下(入AIX、Solaris等)。不同的类linux操作系统之间的很多命令都非常相似,不少命令仅有一些细节上的差异。这篇文章主
2021-08-17 09:19:29
333
原创 java垃圾回收参数说明
1、指定垃圾收集器-XX:+UseSerialGC 指定使用串行垃圾收集器,新生代及老年代都是串行收集,在大堆或者多核cpu的环境中不大适合使用该种垃圾收集器-XX:+UseParallelGC,并行垃圾收集器,新生代使用并行收集,老年代使用串行收集-XX:+UseParallelOldGC,并行垃圾收器,新生代使用并行手机,老年代使用并行收集,在一些低版本的JVM该参数不支持或者不生效,这两种垃圾收集适合不在乎延时需要高吞吐的环境下使用,比如说一些批处理程序,-XX:+UseConcMarkSw
2021-08-17 09:14:02
700
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人