前言如何从0到1搭建一个可以外网访问的项目?我就用自己的服务器给大家举例,怎么从0到1搭建一个学生和新手可以用来面试的项目,老手也可以回忆一下自己逝去的青春。服务器在激活的时候会让你选系统,这个时候敖丙我个人建议,有点基础已经熟悉安装过程和环境配置的同学可以直接选择镜像,镜像市场里面有很多很适合的镜像,我选的就是带JDK8,Tomcat8,MySQL的镜像。没搞过的同学可以尝试着选个空白机,然后下好这些东西,一步...
2023-08-11 14:28:09 2173浏览 0点赞 0回复 0收藏
大家好,我是敖丙。在很早以前,一个网站还只对应着一个数据库,所有的数据都以一定规则存储在某台服务器上。假设这台存储数据的服务器宕机了并且数据还没有进行备份,那么结局你懂的人们意识到了要将数据或者流量分布在不同的节点上以防止突发情况——分布式技术诞生了。但尽管如此,分布式技术也同样会带来些许问题,比如多节点数据同步、以及节点权限等问题。后来人们思考,是否可以在分布式的思想基础上做到权限统一、共同...
2023-08-11 14:26:56 2664浏览 0点赞 0回复 0收藏
之前刚学习多线程时,由于各种锁的操作不当,经常不经意间程序写了代码就发生了死锁,不是在灰度测试的时候被测出来,就是在代码review的时候被提前发现。这种死锁的经历不知道大家有没有,不过怎么说都是一个面试高频题目,面试官是肯定希望你经历过的,没经历过那也得看看某八股文职业选手的文章装作经历过。那么什么是死锁呢?为什么会产生死锁呢?什么是死锁敖丙和小美是公司同事,今天他们参加了两个不同主题的会议。但是...
2023-08-11 14:26:21 1322浏览 0点赞 0回复 0收藏
做程序员的时候的时候觉得做运营肯定很轻松,转运营后我曾经每天都想着离职。用了一年才终于适应了运营这个角色,这一年的经历颠覆我对运营这个工作本身的认知,也改变了我对个人成长、职场发展、学习、自媒体等领域过去的一些看法。希望这个总结能给到对运营岗感兴趣的小伙伴一点参考,也能给其他岗位的小伙伴一些不同视角的思考。什么是运营,运营的基础工作是什么?运营的岗位分类有很多:产品运营、用户运营、市场运营、新...
2023-08-11 14:25:32 1649浏览 0点赞 0回复 0收藏
1.前言上一篇《你能和我聊聊Class文件么》中,我们对Class文件的各个部分做了简单的介绍,当时留了一个很重要的部分没讲,不是敖丙不想讲啊,而是这一部分实在太重要了,不独立成篇好好zhejinrong讲讲都对不起詹姆斯·高斯林。这最重要的部分当然就是字节码啦。先来个定义:Java字节码是一组可以由Java虚拟机(JVM)执行的高度优化的指令,它被记录在Class文件中,在虚拟机加载Class文件时执行。说大白话就是,字节码是Java虚拟机...
2023-08-11 14:24:37 1848浏览 0点赞 0回复 0收藏
前言俗话说:金三银四,到了这种季节,有一种叫做程序员的生物就开始活跃了起来。这俩天,同事出去面试,她回来就问我:为啥这些面试官老爱问Spring,特别是Bean的生命周期,到底啥是Bean的生命周期呀,跟我说说呗。那咱就来聊聊这个话题,本文主要分为两点进行阐述:1、什么是Bean的生命周期?2、Bean的生命周期是怎样的?先给大家看一下完整的bean生命周期,不懂没关系后面会讲。什么是Bean的生命周期我们知道,在Java中,万...
2023-08-11 14:21:58 1295浏览 0点赞 0回复 0收藏
在上文《面试杀手锏:Redis源码之SDS》中我们深入分析了SDS的实现,本次介绍的位图(BitMap)就是借助SDS实现的。本文在最后讲解了BitMap对腾讯面试题的解决方案,并基于BitMap实现了仿GitHub提交次数的日历图,希望各位看官看的开心😄1.位图简介如果我们需要记录某一用户在一年中每天是否有登录我们的系统这一需求该如何完成呢?如果使用KV存储,每个用户需要记录365个,当用户量上亿时,这所需要的存储空间是...
2023-08-08 11:15:27 2184浏览 0点赞 0回复 0收藏
3.4访问标记等到常量池的部分结束后,紧随其后的就是访问标记了。访问标记其实很好理解,就是类上的修饰符,如final、abstract等。这个部分用两个字节的空间来保存,其实这里十六进制值存储的也是约定好的枚举值,不同的枚举值对应不同的访问标记名:在上面这个例子1中,访问标记就是0021:0021对应的就是ACCPUBLIC以及ACCSUPER,意味着这个类是public修饰的类,而ACCSUPER则代...
2023-08-08 11:14:48 2123浏览 0点赞 0回复 0收藏
1.前言上次在《JAVA代码编译流程是怎样的?》一文中已经聊过了Java源码经过编译器的一系列转换最终生成标准的Class文件的过程,我们用一张图来简单地回顾一下:Java为了实现“一次编写,到处运行”的跨平台特性,选取了Class文件这一中间格式来保证代码能在不同平台运行。Class文件中记录了源代码中类的字段、方法指令等重要信息。Class文件可以在不同平台上的不同JVM中运行,它们最终生成的机器指令可能也是有差别的,但是,最...
2023-08-08 11:13:13 1337浏览 0点赞 0回复 0收藏
前言同事火急火燎的走了过来,说:敖丙快帮我看看这个错误,啥情况啊?我一看报错:FieldxxxServiceincom.xx.xx.service.impl.XxXServiceImplrequiredabeanoftype'com.xx.xx.service.XxxService'thatcouldnotbefound.我其实已经知道是啥情况了,但是怕他不知道,所以还是耐心的跟她解释了一下,她听完后说:能不能写下来啊,免得我下次还会忘。我这么有骨气的人,想都不用想,于是就有了下文:这个错误其实就是这个Bean在Spring...
2023-08-08 11:12:36 2197浏览 0点赞 0回复 0收藏
案例速览▷行业:互联网游戏▷挑战:在游戏场景下,安全、稳定和高性能是选择数据库的重要考量,以支持游戏平台和游戏开发者提供优质的游戏体验和用户服务。在满足稳定和性能的前提下,需技术手段降本增效帮助节约IT成本,并实现业务的无感切换和平滑迁移。▷解决方案与产品:RDS倚天ARM架构数据库▷成果:降本增效,基于RDSARM架构的数据库成本大幅下降,并保证性能和稳定性相当,达到客户降本增效的诉求;业务平滑迁移,在应...
2023-06-28 15:21:42 2528浏览 0点赞 0回复 0收藏
数据库的查询优化器是整个系统的"大脑",一条SQL语句执行是否高效在不同的优化决策下可能会产生几个数量级的性能差异,因此优化器也是数据库系统中最为核心的组件和竞争力之一。阿里云瑶池旗下的云原生数据库PolarDBMySQL版作为领先的云原生数据库,希望能够应对广泛用户场景、承接各类用户负载,助力企业数据业务持续在线、数据价值不断放大,因此对优化器能力的打磨是必须要做的工作之一。本系列将从PolarDBforMySQL的查询变...
2023-06-25 11:58:54 2442浏览 0点赞 0回复 0收藏
概述JoinReorder是数据库优化领域中最为经典备受关注的问题。JoinReorder的问题可以描述为给定一条多表Join的SQL,输出一个最优的Join顺序,使得查询性能最优。在不同的数据库实现中JoinReorder的具体算法各有不同,本文总结了各种流行数据库中JoinReorder的实现方式及其优劣势,最后引出云原生数据库PolarDB分布式版基于规则变换的JoinReorder实现算法及其背后的思考。阿里云瑶池旗下的云原生数据库PolarDB分布式版(PolarDBfor...
2023-06-25 11:58:13 3096浏览 0点赞 0回复 0收藏
数据库的查询优化器是整个系统的"大脑",一条SQL语句执行是否高效在不同的优化决策下可能会产生几个数量级的性能差异,因此优化器也是数据库系统中最为核心的组件和竞争力之一。阿里云瑶池旗下的云原生数据库PolarDBMySQL版作为领先的云原生数据库,希望能够应对广泛用户场景、承接各类用户负载,助力企业数据业务持续在线、数据价值不断放大,因此对优化器能力的打磨是必须要做的工作之一。本系列将从PolarDBforMySQL的查询变...
2023-06-25 11:57:37 2299浏览 0点赞 0回复 0收藏
数据库的查询优化器是整个系统的"大脑",一条SQL语句执行是否高效在不同的优化决策下可能会产生几个数量级的性能差异,因此优化器也是数据库系统中最为核心的组件和竞争力之一。阿里云瑶池旗下的云原生数据库PolarDBMySQL版作为领先的云原生数据库,希望能够应对广泛用户场景、承接各类用户负载,助力企业数据业务持续在线、数据价值不断放大,因此对优化器能力的打磨是必须要做的工作之一。本系列将从PolarDBforMySQL的查询变...
2023-06-25 11:57:02 2774浏览 0点赞 0回复 0收藏
缓存,消息队列,分库分表是高并发解决方案三剑客。缓存之所以能够让系统“更快”,本质上做到了如下两点:减小CPU消耗将原来需要实时计算的内容提前算好、把一些公用的数据进行复用,这可以减少CPU消耗,从而提升响应性能。减小IO消耗将原来对网络、磁盘等较慢介质的读写访问变为对内存等较快介质的访问,从而提升响应性能。对于应用系统来讲,我们经常将缓存划分为本地缓存和分布式缓存。本地缓存:应用中的缓存组件,缓存组...
2023-05-30 14:54:50 2997浏览 0点赞 0回复 0收藏
布隆过滤器是一个精巧而且经典的数据结构。你可能没想到:RocketMQ、Hbase、Cassandra、LevelDB、RocksDB这些知名项目中都有布隆过滤器的身影。对于后端程序员来讲,学习和理解布隆过滤器有很大的必要性。来吧,我们一起品味布隆过滤器的设计之美。1缓存穿透我们先来看一个商品服务查询详情的接口:publicProductqueryProductById(Longid){查询缓存ProductproductqueryFromCache(id);if(product!null){returnproduct;}从数据库...
2023-05-30 14:53:10 2799浏览 0点赞 0回复 0收藏
RocketMQ是大家耳熟能详的消息队列,开源项目rocketmqspring可以帮助开发者在SpringBoot项目中快速整合RocketMQ。这篇文章会介绍SpringBoot项目使用rocketmqspringSDK实现消息收发的操作流程,同时笔者会从开发者的角度解读SDK的设计逻辑。1SDK简介项目地址:https:github.comapacherocketmqspringrocketmqspring的本质是一个SpringBootstarter。SpringBoot基于“约定大于配置”(Conventionoverconfiguration)这一理...
2023-05-30 14:49:24 2544浏览 0点赞 0回复 0收藏
「重启程序」对我来讲,太熟悉了,我很纠结,因为它能帮我解决问题,但出于程序员对于程序健壮的强迫症,我又本能的抗拒。编程十年,慢慢的,我才发现:「重启程序」表面看是一个技术问题,但本质上是一个管理问题。1一路重启20102014年,我经历了一家彩票网站重构的整个过程,工作上我全情投入,学习技术如饥似渴,遇到了极多稀奇古怪的问题,取得了很大的进步。可是,公司的大小事故不断,研发人员经常使用重启来解决问题。第...
2023-05-29 16:44:01 1934浏览 0点赞 0回复 0收藏
谈到分库分表中间件时,我们自然而然的会想到ShardingSphereJDBC。这篇文章,我们聊聊ShardingSphereJDBC相关知识点,并实战演示一番。1ShardingSphere生态ApacheShardingSphere是一款分布式的数据库生态系统,它包含两大产品:ShardingSphereProxyShardingSphereJDBC▍一、ShardingSphereProxyShardingSphereProxy被定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。代理层介...
2023-05-29 16:41:42 3311浏览 0点赞 0回复 0收藏