- 博客(7)
- 资源 (11)
- 收藏
- 关注
原创 ThreadPoolTaskExecutor使用详解
当我们需要实现并发、异步等操作时,通常都会使用到ThreadPoolTaskExecutor,现对其使用进行介绍。配置ThreadPoolTaskExecutor通常通过XML方式配置,或者通过Executors的工厂方法进行配置。
2017-09-23 20:15:30 78893 3
原创 Douglas-Peucker压缩算法
Douglas-Peucker算法(道格拉斯-普克算法)是将曲线近似表示为一系列点,并减少点的数量的一种算法。它的优点是具有平移和旋转不变性,给定曲线与阈值后,抽样结果一定。Douglas—Peucker算法通常用于线状矢量数据压缩、轨迹数据压缩等。算法步骤连接曲线首尾两点A、B形成一条直线AB;计算曲线上离该直线段距离最大的点C,计算其与AB的距离d;比较该距离与预先给定的阈值thresho
2017-09-22 20:24:59 9561
原创 高并发服务设计——缓存
缓存回收策略1 基于空间即设置缓存的存储空间,如设置为10MB,当达到存储空间时,按照一定的策略移除数据。2 基于容量基于容量指缓存设置了最大大小,当缓存的条目超过最大大小,则按照一定的策略将旧数据移除。3 基于时间TTL(Time To Live):存活期,即缓存数据从缓存中创建时间开始直到它到期的一个时间段(不管在这个时间段内有没有访问都将过期)。TTI(Time To Idle):空闲期,即缓
2017-09-17 18:34:29 3111 1
原创 高可用服务设计概述[2]
3 限流在开发高并发系统时,有很多手段保护系统,比如缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统处理能力,可谓是抗高并发的银弹。而降级是当服务出问题或者影响到核心流程的性能,需要暂时屏蔽掉,待高峰过去或者问题解决后再打开的场景。而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页)等。因此,需要有一种手段来限制这些场景下的
2017-09-17 17:21:34 1071
原创 高可用服务设计概述[1]
Nginx提供的负载均衡机制可以实现服务器的负载均衡、故障转移、失败重试、容错、健康检查等,当某些上游服务器出现问题时可以将请求转到其他上游服务器以保障高可用,并通过OpenResty实现更智能的负载均衡,如将热点与非热点流量分离、正常流量与爬虫流量分离等。Nginx负载均衡器本身也是一台反向代理服务器,将用户请求通过Ningx代理到内网中的某台上游服务器处理,反向代理服务器可以对响应结果进行缓存、压缩等处理以提升性
2017-09-16 16:45:52 1360
原创 Mac包管理工具安装和使用
HomebrewMac OS X是基于Unix的,它可以使用非常多Linux平台上开源的优秀工具,比如wget,比如dos2unix脚本工具等。但是OS X系统本身却缺少Linux下的包管理器。比如Fedora的yum与dnf,比如Ubuntu的apt-get,比如ArchLinux的Pacman等。于是这些优秀的开源软件在Mac上的安装只能通过下载源码、编译、安装、配置环境变量的步骤来完成安装。对
2017-09-14 19:05:26 3295
原创 交易型系统设计的一些原则
1 高并发原则1.1 无状态如果应用的设计是无状态的,那么应用比较容易进行水平扩展。实际生产环境是:应用无状态、配置文件有状态。1.2 拆分访问量大,资源充足,可考虑拆分。几种主要的拆分情况:系统维度:按照系统功能/业务拆分。功能维度:对一个系统按照功能拆分。读写维度:根据读写比例特征进行拆分。读的量太大,可用缓存;写的量太大,可分库分表。聚合读取场景,可考虑数据异构拆分系统,将分散在多处的数
2017-09-09 19:24:30 3722 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人