摘要: 简介 分布式锁是单机锁的一种扩展,为了控制分布式系统之间同步访问共享资源的一种方式。 特性 为了确保分布式锁安全可用,我们至少要确保锁的实现同时满足以下几个条件: 实现 基于数据库做分布式锁 利用唯一索引 使用步骤 创建一张表methodLock,其中字段method_name为唯一索引 执行插入语 阅读全文
posted @ 2019-01-02 09:46 yehx 阅读(420) 评论(0) 推荐(0) 编辑
摘要: NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。简单的来说:它就是是可以透过网络,让 阅读全文
posted @ 2018-09-14 16:57 yehx 阅读(2698) 评论(0) 推荐(0) 编辑
摘要: 安装docker 1. 建立仓库 移除已安装的docker(docker以前被称为docker或者docker-enginer现在称为docker-ce) apt-get remove docker docker-engine docker.io docker-ce rm -rf /var/lib/ 阅读全文
posted @ 2018-09-14 16:34 yehx 阅读(2747) 评论(0) 推荐(1) 编辑
摘要: 严格来说,nginx是没有针对负载均衡后端节点的健康检查的,但是可以通过proxy_next_upstream来间接实现,但这个还是会把请求转发给故障服务器的,然后再转发给别的服务器,这样就浪费了一次转发。 nginx_upstream_check_module为淘宝技术团队开发的nginx模快,用 阅读全文
posted @ 2018-09-07 15:29 yehx 阅读(11020) 评论(0) 推荐(0) 编辑
摘要: 前言 FastDFS(Fast Distributed File System)是一款开源轻量级分布式文件系统,本文不讲解原理和架构,只是在个人使用部署过程中耗费了好长时间和精力,遇到了很多的坑,于是总结成了一篇详细的部署文档分享给大家。 安装libfastcommon 获取libfastcommo 阅读全文
posted @ 2018-08-09 20:33 yehx 阅读(76058) 评论(18) 推荐(13) 编辑
摘要: 缓存能够有效加速应用的访问速度,同时可以降低后端负载,在应用架构中起着至关重要的作用,本文主要介绍缓存使用的一些技巧。 缓存更新策略 LRU/LFU/FIFO算法剔除 场景:数据一致性要求较低 原理:缓存使用量超过了预设值,使用maxmemory-policy来选择何种剔除策略对现有数据进行删除 问 阅读全文
posted @ 2018-07-26 21:53 yehx 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 开题思考:如何实现客户端及时获取服务端数据? 指客户端每隔一段时间(周期性)请求服务端获取数据,可能有更新数据返回,也可能什么都没有,它并不在乎服务端数据有无更新。(Web端一般采用ajax polling实现) 阻塞型Polling,和Polling不同的是假如服务端数据没有准备好,那么可能会ho 阅读全文
posted @ 2018-07-02 10:10 yehx 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 查看HashMap源码,具体抛该异常的地方为: 如果HashMap中modCount和expectedModCount不相等,则会抛出异常 具体用途是记录该HashMap修改次数,比如在对一个HashMap put操作时,会对modCount进行++modCount操作(红色标注的地方) 而在rem 阅读全文
posted @ 2018-06-05 11:43 yehx 阅读(5266) 评论(1) 推荐(1) 编辑
摘要: AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦。 后端(集群)通过websocket往各自维持的websocket session推送消息,如果采用每个实例监听同一 阅读全文
posted @ 2018-06-04 21:16 yehx 阅读(2789) 评论(0) 推荐(0) 编辑
摘要: 在日常开发过程中,很多人都会遇到java发送邮件的需求,整理了一下,提供两种发送邮件的方式:1.使用eml模版群发;2.自定义主题和内容单发; 如果遇到连接失败等发送失败的问题,可以在代码中增加session.setDebug(true); 就可以查看详细的错误日志,具体代码实现如下: 阅读全文
posted @ 2018-04-08 11:25 yehx 阅读(379) 评论(0) 推荐(0) 编辑