IO,NIO,AIO和高性能模型

简介首先,传统的 java.io包,它基于流模型实现,提供了我们最熟知的一些 IO 功能,比如 File 抽象、输入输出流等。交互方式是同步、阻塞的方式,也就是说,在读取输入流或者写入输出流时,在读、写动作完成之前,线程会一直阻塞在那里,它们之间的调用是可靠的线性顺序。java.io包的好处是代码比较简单、直观,缺点则是 IO 效率和扩展性存在局限性,容易成为应用性能的瓶颈。很多时候,人们也...
分类: 其他 发布时间: 02-01 17:27 阅读次数: 0

写代码实现堆溢出、栈溢出、永久代溢出、直接内存溢出

文章目录常见溢出一、堆溢出二、栈溢出1、栈空间不足——StackOverflowError实例2、栈空间不足——OutOfMemberError实例三、永久代溢出1、永久代溢出——常量池溢出2、永久代溢出——方法区溢出四、直接内存溢出原文出处常见溢出栈溢出(StackOverflowError)堆溢出(OutOfMemoryError:Java heap space)永久代溢出(OutOf...
分类: 其他 发布时间: 02-01 17:26 阅读次数: 0

GO GC 垃圾回收机制

原文链接:https://segmentfault.com/a/1190000018161588垃圾回收(Garbage Collection,简称GC)是编程语言中提供的内存管理功能。在传统的系统级编程语言(主要指C/C++)中,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内存资源,好重...
分类: 其他 发布时间: 02-01 17:26 阅读次数: 0

2018年经历过的一些事情

负责并主要完成主要业务2017年中原有单体项目拆分为微服务,使用motan框架。商品详情,用户第三方登陆等数据库拆分,历史数据迁移2018年3月:CMS管理-新闻快报内容管理2018年5月:YXT红包:平均红包和随机红包2018年6-7月:云优特平台优惠券生成:平台券,店铺券,商品券,多商品券;领取方式:领取,发放,自动发放,云优特平台管理后台菜单栏根据角色获取相应的权限菜单进行前端...
分类: 其他 发布时间: 02-01 17:25 阅读次数: 0

BloomFilter使用和redis的setbit、bitcount实现用户上线次数统计

简介BloomFilter过滤器可以快速判断某值是否存在,虽然不一定准确,但是相对而且它既快速而且又相对准确。Bloom Filter没有False Negative,即判断某元素时否在Bloom Filter中时,如果返回False, 则可以肯定该元素不在集合中,但是Bloom Filter存在False Positive, 即如果返回True, 并不能完全肯定元素就在集合中,但是有很大的概...
分类: 其他 发布时间: 02-01 17:25 阅读次数: 0

排序总结-常用排序算法Java实现

排序总结稳定sort最差时间最好时间平均时间稳定空间复杂度冒泡排序O(n^2)O(n)O(n^2)稳定O(1)插入排序O(n^2)O(n)O(n^2)稳定O(1)二叉树排序O(n^2)O(nlogn)O(nlogn)稳定O(n)归并排序lO(nlogn)O(nlogn)O(nlogn)稳定O(n)不稳定...
分类: 其他 发布时间: 02-01 17:25 阅读次数: 0

Spring Cloud Gateway的路由,过滤器和限流

Spring 官方最终还是按捺不住推出了自己的网关组件:Spring Cloud Gateway ,相比之前我们使用的 Zuul(1.x) 它有哪些优势呢?Zuul(1.x) 基于 Servlet,使用阻塞 API,它不支持任何长连接,如 WebSockets,Spring Cloud Gateway 使用非阻塞 API,支持 WebSockets,支持限流等新特性。Spring Cloud G...
分类: 其他 发布时间: 02-01 17:25 阅读次数: 0

MongoDB 走马观花(全面解读篇)

MongoDB 走马观花(全面解读篇)Java高级互联网架构2019-10-15 16:04:11目录一、简介 二、基本模型 BSON 数据类型 分布式ID 三、操作语法 四、索引 索引特性 索引分类 索引评估、调优 五、集群 分片机制 副本集 六、事务与一致性 一致性 小结一、简介MongoDB 是一款流行的开源文档型数据库,从它的命名来看,确实是...
分类: 其他 发布时间: 02-01 17:24 阅读次数: 0

kafka,RabbitMQ的ack机制

这里写自定义目录标题简述kafka的ack机制RabbitMQ消息队列:ACK机制简述kafka的ack机制Kafka的ack机制,指的是producer的消息发送确认机制,这直接影响到Kafka集群的吞吐量和消息可靠性。而吞吐量和可靠性就像硬币的两面,两者不可兼得,只能平衡。ack有3个可选值,分别是1,0,-1。注意:ack的默认值就是1。这个默认值其实就是吞吐量与可靠性的一个折中方案...
分类: 其他 发布时间: 02-01 17:24 阅读次数: 0

Redlock:Redis集群分布式锁

前言分布式锁是一种非常有用的技术手段。实现高效的分布式锁有三个属性需要考虑:● 安全属性:互斥,不管什么时候,只有一个客户端持有锁● 效率属性A:不会死锁● 效率属性B:容错,只要大多数redis节点能够正常工作,客户端端都能获取和释放锁。普通版:单机redis分布式锁说道Redis分布式锁大部分人都会想到: setnx+lua或者set+lua,加上过期时间大多都是使用的下面的ke...
分类: 其他 发布时间: 02-01 17:23 阅读次数: 0

Windows 安装 MongoDB的 zip 版本

1、首先到官网(http://www.mongodb.org/downloads)或者(https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl)下载合适的安装包,推荐下载zip压缩版。mongodb-win32-x86_64-2008plus-ssl-4.0.5.zip下载地址:https://fastdl.mongodb.org/win32...
分类: 其他 发布时间: 02-01 17:23 阅读次数: 0

tcp/ip 只有四次挥手?还有三次挥手

我们经常说tcp/ip 三次握手与四次挥手,实时上tcp/ip并不总是这样,它会存在一些特殊情况,并对这些特殊情况作了优化,下面给大家演示一遍:抓取我的服务器地址8080端口的一次http请求 ,在服务器端执行命令,抓取8080端口的请求:tcpdump -S -i eth0 tcp port 8080在客户端请求url地址wget http://118.24.47.200:80...
分类: 其他 发布时间: 02-01 17:23 阅读次数: 0

idea2019版不显示maven project视图

主要是源于idea2019版与maven3.6.2版本不兼容下载3.6.0版本更新环境变量后重启ideahttps://archive.apache.org/dist/maven/maven-3/3.6.0/binaries/看图如下:新版本点视图为maven...
分类: 其他 发布时间: 02-01 17:22 阅读次数: 0

安装PowerDesigner16使用mysql8.0的ODBC导入数据库模型

安装PowerDesigner16PowerDesigner161.找到下载的破解文件并复制 16.5PJ 文件 pdflm16.dll2.找到软件的安装路径,例如我的是D盘下的powerdesign文件夹3.将复制的破解文件粘贴到改目录,会提示是否替换,替换就行ODBC数据源PW只使用32位的mysql 8.0 选择32位的Windows (x86, 32-bit), MSI Ins...
分类: 其他 发布时间: 02-01 17:22 阅读次数: 0

SKU,UPC,ASIN,EAN,GCID到底是什么鬼

1、UPC 全称Universal Product Code 由12位数字代码组成,每一条UPC码都不一样,UPC码里面的数字信息代表了产品的类别,制造商,属性,特性等。其特性是一种长度固定、连续性的条码,主要在美国和加拿大使用,我们在美国进口的商品上可以看到。UPC条码是由美国统一代码委员会制定的一种条码。我国有些出口到北美地区为了适应北美地区的需要,也需要申请UPC条码,UPC条码也有标准版...
分类: 其他 发布时间: 02-01 17:22 阅读次数: 0

安装python3.7初始化

这里写自定义目录标题安装python3.7安装pip安装python3.7windows官方下载https://www.python.org/ftp/python/3.8.0/python-3.8.0.exe安装完成后安装pip(1)打开cmd界面,cd到C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scri...
分类: 其他 发布时间: 02-01 17:21 阅读次数: 0

开源监控系统对比(Ganglia、Open-falcon、Prometheus、Zabbix) 不指定

最近调研了一下开源的监控系统,最终选择了open-falcon。从以下列表可以了解到各监控系统都有他在特定场景下的优势,如果以时间进行分类可以了解到新起之秀譬如open-falcon和prometheus设计思路都很像。 但最终选择open-falcon的原因主要还是在当前笔者所在的场景下解决了一些痛点、譬如大量数据上报页面展示渲染速度很快、模块化开发、有丰富的插件和中文文档等。关于open-...
分类: 其他 发布时间: 02-01 17:20 阅读次数: 0

使用 Spring Cache + Redis 作为缓存并支持自定义单个key设置过期时长

Spring CacheSpring针对不同的缓存技术,需要实现不同的cacheManager,Spring定义了如下的cacheManger实现。pomspringboot 项目加入如下依赖 <dependency> <groupId>org.springframework.boot</groupId> <ar...
分类: 其他 发布时间: 02-01 17:20 阅读次数: 0

redis 分布式锁遇到的坑

用锁遇到过哪些问题?又是如何解决的?未关闭资源由于当前线程 获取到redis 锁,处理完业务后未及时释放锁,导致其它线程会一直尝试获取锁阻塞,例如:用Jedis客户端会报如下的错误信息1redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the poolredis线程池...
分类: 其他 发布时间: 02-01 17:20 阅读次数: 0

聚合支付二维码生成原理

聚合支付二维码生成原理聚合支付平台提供平台支付URL,生成统一的支付二维码。当消费者根据二维码扫描时,聚合支付平台根据扫描者浏览器类型判断支付类型,并提交参数给聚合支付平台支付处理接口处理。平台支付处理接口根据支付类型和商户ID,调用相应的支付渠道支付接口进行支付处理1.商户分别开通微信、支付宝、京东金融等支付渠道,各个平台审核通过后会生成微信商户编码,支付宝商户编码和京东金融商户编码2.商户将这些渠道的支付账号配置到聚合平台中,并分配给用户一个聚合唯一用户标识ID3.聚合平台通过微信、支付宝和京
分类: 其他 发布时间: 02-01 17:19 阅读次数: 0