最新文章
-
一个巧妙的负载均衡算法 :翘动你的大脑(转载)
原文出处:等你归去来现在的负载均衡技术,可以说是满大街都是,但是我们基本都停留在了使用的阶段上,并没有真正深入去了解其核心。如果真的出现了问题,可能就很难知道是什么原因导致了,只能去google,百度了。因此,了解一些核心的东西,还是不错的。负载均衡大概流程就是,随时收集各服务器信息或者各服务器主动上报信息,由配置主心进行保存,计算出权重,然后根据相应算法进行服务机器选择。(当然了,这不是本文的重......
-
Java String 对 null 对象的容错处理(转载)
原文出处:肖汉松前言最近在读《ThinkinginJava》,看到这样一段话:Primitivesthatarefieldsinaclassareautomaticallyinitializedtozero,asnotedintheEverythingIsanObjectchapter.Buttheobjectreferencesareinitializedtonull,andifyoutryto......
-
一份从 0 到 1 的 Java 项目实践清单(转载)
原文出处:等你归去来虽说工作就是简单的事情重复做,但不是所有简单的事你都能有机会做的。我们平日工作里,大部分时候都是在做修修补补的工作,而这也是非常重要的。做好修补工作,做好优化工作,足够让你升职加薪!但是如果有机会,去尝试些自己平日里少做的事,我觉得是一件值得庆幸的事。前段时间,接了个新项目。只有一些idea在业务需求方脑海里,然后就开始需求讨论,然后就开始做事了。项目不复杂,但是由于是用JAV......
-
JVM 堆内存和非堆内存(转载)
原文出处:xstarcd堆和非堆内存按照官方的说法:“Java虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在Java虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heapmemory)”。JVM主要管理两种类型的内存:堆和非堆。HeapmemoryCodeCacheEdenSpaceSurvivorSpaceTenuredGenn......
-
高性能线程间队列 DISRUPTOR 简介(转载)
原文出处:foreverdisruptor简介背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。与Kafka(ApacheKafka)、RabbitMQ(RabbitMQ)用于服务间的消息队列不同,disruptor一般用于线程间消息的传递。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关......
-
大型网站系统与 Java 中间件实践(转载)
原文出处:wanglizhi第一章分布式系统介绍分布式系统的定义:组件分布在网络计算机上,组件间仅仅通过消息传递来通信并协调行动。分布式系统的意义:升级单机处理能力的性价比越来越低单机处理能力存在瓶颈处于稳定性和可用性的考虑摩尔定律:当价格不变时,每隔18个月,集成电路上可容纳的晶体管数目会增加一倍,性能也将提升一倍。线程与进程的执行模式冯诺依曼结构:输入设备、输入设备、运算器、控制器、存储器。基......
-
Intellij IDEA 一些不为人知的技巧(转载)
今天又听了Jetbrains首席布道师Hadi的分享的IntellijIDEA使用技巧,说又是是因为之前在QCon听过一遍,但是这次Hadi带来的分享又超出了预期(很多布道师到处讲的东西都差不多),从他的这次分享中学到了不少的东西。这篇文章的主要目的是将我觉得非常有用的东西给记录下来,一方面是对自己感受的一个整理,一方面也给其他喜欢文字而不喜欢视频的同学一个参考(推荐大家看ATIT的视频,Hadi......
-
关于分布式系统中事务相关简单探索
数据的原子性对于一个系统而言,重要性不言而喻。这里拿普遍的购物付款举个栗子: 你在淘宝上买了一件商品,结账的时候,其实淘宝会帮你处理两件事情: 1、从你的余额扣款。 2、添加你的购物订单。如......
-
Fiddler抓安卓/Iphone数据包教程
最近在做公司app的开发相关工作。所以一些情况下,需要诊断手机端发送和接收到的数据包。fiddler是一个不错抓包工具选择,之前一直也有在用它来做一些本地请求的转发,本地计算机网络请求监控一类的操作。它是一个强大的工具,这里只做一个简单的抓包记录。除了fiddler以外,也推荐charles,同样是一个神器。这就开始:1、在fiddler主界面选择Tools-->options.2、找到ht......
-
Mysql 基础架构分析
MySQL从概念上可以分为四层。从上到下分别为:接入层、服务层、存储引擎层、系统文件层。接入层:不同语言的客户端通过mysql的协议与mysql服务器进行连接通信,接入层进行权限验证、连接池管理、线程管理等。服务层:包括sql解析器、sql优化器、数据缓冲、缓存等。存储引擎层:mysql中存储引擎是基于表的。系统文件层:保存数据、索引、日志等。贴个图:
-
一些关于数据库事务的基本原则总结
事务:事务是一组原子性sql查询语句,被当作一个工作单元。若mysql对改事务单元内的所有sql语句都正常的执行完,则事务操作视为成功,所有的sql语句才对数据生效,若sql中任意不能执行或出错则事务操作失败,所有对数据的操作则无效(通过回滚恢复数据)。事务有四个属性:1、原子性:事务被认为不可分的一个工作单元,要么全部正常执行,要么全部不执行。2、一致性:事务操作对数据库总是从一种一致性的状态转......
-
NemoDao - 简单模仿mybatis实现一个持久层框架
嗯,这几天用稍稍闲散的时间模仿着mybatis写了一个简单的持久层框架。目前只有一些简单的操作,不过足以用来学习一些mybatis简单的原理了。这个项目的源码托管在github,地址为:https://github.com/NemoMeng/NemoDao可以先分析下我们在使用mybatis中做的一些工作:1、配置处理。2、写mapper。3、写dao接口,在需要的地方调用dao接口。这么着写这个......
-
JAVA-动态代理实现AOP原理简单探索
假设这样一个场景: 当我们在调用某些方法的时候,需要在调用方法前后,记录执行日志。 简单的做法肯定是在原业务方法的前后作修改,添加记录日志的代码。不过这肯定存在一些问题,比如,当你要记录日志的方法很多,或者偶尔需要修改记录日志的方法,等等。所以需要考虑在不对原有的业务方法产生影响的情况下,加入日志记录。 &n......
-
Websocket 探索
1、说到websocket,就不得不提一下他的前辈http了:熟悉http的童鞋应该都知道,HTTP是不支持持久连接的(长连接,循环连接的不算)。html5是指一系列新的api,Http协议本身只有1.0和1.1(其实http跟html好像也没啥关系哈),html5其实相当于是旧的htmlapi的一种补充。而WebSocket是HTML5出的东西。HTTP有所谓的keep-alive之说,也就是把......
-
Unable to find a single main class from the following candidates[com.nemo.util.UuidUtil]
有个项目是用springboot搭建的,在配置打包的时候出现了这个问题:Unabletofindasinglemainclassfromthefollowingcandidates[com.nemo.util.UuidUtil]查看错误,显然声称是UuidUtil的锅。然而其实并不然。解决方案是在打包插件中,添加启动class的配置即可。<plugin><groupId>o......
文章总数:781
本月热门
-
Android 自建maven库
-
java正则表达式过滤html标签
-
pip 安装greenlet,提示:clang: error: invalid version number in 'MACOSX_DEPLOYMENT_TARGET=11.1'
-
Python print如何一行覆盖输出?
-
nexus 搭建python私服:私有pip组件库
-
如何开发一个自己的Python组件?
-
Map
-
常用类API String类
-
提升android webview加速速度小技巧
-
Mac 下安装virtualenv: WARNING: The script virtualenv is installed in '/Users//Library/Python/3.7/bin' which is not on PATH
-
Python:批量获取并保存手机号的归属地和运营商
-
Java & Python 里的泛型
-
Java/Python3/Go语法简单对比
-
Markdown 语法简单练习