自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 代付流程设计总结

支付系统处于重新架构中,代付功能需要重新设计,寡人被委以重任,花了几天时间总结了代付流程如下。代付状态值代付流程设计一、商户平台代付流程二、创建代付流程三、代付查询流程...

2021-05-15 13:29:09 2382 1

原创 热点缓存的流量分发策略

热点缓存导致系统崩溃nginx+lua+storm的热点缓存的流量分发策略

2020-12-20 17:40:01 190

原创 基于storm实时热点统计的分布式并行缓存预热

缓存冷启动系统第一次上线,缓存里无预热数据,导致大量请求穿透到数据库,导致系统故障缓存预热lua脚本转发流量到kafkastorm集群实时统计热点数据,写入zk缓存服务从zk中读取数据,更新缓存...

2020-12-20 16:56:54 159

原创 多级缓存重建并发冲突

多级缓存适用时效性低的商品数据商品服务发生信息变更,发送消息到kafka消息队列缓存服务监听到消息变更,更新Redis缓存、ehcache缓存缓存重建并发冲突nginx缓存不存在是,通过hash路由到缓存服务A,此时缓存服务A缓存也不存在,则去数据库查询数据,更新Redis缓存商品服务同时发生信息变更,通过kafka消息路由到缓存服务B,缓存服务B也去更新Redis缓存针对同一商品,若缓存服务B先更新Redis,缓存服务A后更新Redis,缓存里的商品数据不是最新,且与数据库不一致

2020-12-20 16:01:57 109 1

原创 数据库与缓存双写一致性方案

数据库与缓存不一致优化方案

2020-12-20 11:58:10 93 1

原创 Redis的RDB和AOF持久化

这里写自定义目录标题Redis的RDB和AOF持久化1、如何配置RDB持久化机制2、RDB持久化机制的工作流程3、如何配置AOF持久化机制4、AOF持久化机制工作流程5、AOF Rewrite6、AOF和RDB同时工作Redis的RDB和AOF持久化你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。1、如何配置RDB持久化机制redis.conf文件,也就是/etc/redis

2020-12-06 14:28:18 55

原创 高性能、高可用缓存架构

架构方案设计要点一、时效性数据1、库存数据时效性要求高,采用缓存+数据库双写方案,实时更新缓存2、商品概览数据时效性要求低,采用商品服务+消息对列 异步更新缓存二、...

2019-06-22 13:33:42 638

转载 Redis Replication运行流程及原理

1、复制的完整流程(1)slave node启动,仅仅保存master node的信息,包括master node的host和ip,但是复制流程没开始master host和ip是从哪儿来的,redis.conf里面的slaveof配置的(2)slave node内部有个定时任务,每秒检查是否有新的master node要连接和复制,如果发现,就跟master node建立socket网络连...

2019-05-15 21:25:58 195

转载 Redis:解决异步复制丢失、脑裂数据丢失状况

异步复制导致的数据丢失因为master -> slave的复制是异步的,所以可能有部分数据还没复制到slave,master就宕机了,此时这些部分数据就丢失了脑裂导致的数据丢失脑裂,也就是说,某个master所在机器突然脱离了正常的网络,跟其他slave机器不能连接,但是实际上master还运行着此时哨兵可能就会认为master宕机了,然后开启选举,将其他slave切换成了maste...

2019-05-15 21:22:21 1448 1

转载 微服务架构

http://www.martinfowler.com/articles/microservices.htmlIn short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in i...

2018-10-23 21:49:38 179

转载 单体架构

一个归档包(例如war格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的方法论,我们称之为单体应用架构。缺点:复杂性高以笔者经手的一个百万行级别的单体应用为例,整个项目包含的模块非常多,模块的边界模糊,依赖关系不清晰,代码质量参差不齐,混乱地堆砌在一起……整个项目非常复杂。每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个BUG都会造成隐含的缺陷。...

2018-10-23 21:47:47 3086

转载 hashmap、concurrenthashmap原理解析

hashmap原理解析 concurrenthashmap原理解析 concurrenthashmap原理解析二 hash方法

2018-04-12 15:03:24 222

原创 一、ExtensionLoader扩展点加载类解析(dubbo)

扩展点特性参考扩展点加载官方文档。大白话问:扩展点加载到底是什么东东?首先得说一下dubbo的基本设计原则 1、采用 Microkernel + Plugin 模式,Microkernel 只负责组装 Plugin,Dubbo 自身的功能也是通过扩展点实现的,也就是 Dubbo 的所有功能点都可被用户自定义扩展所替换。 2、采用 URL 作为配置信息的统一格式,所

2018-01-25 18:11:33 801

转载 01 困境

摘自《把时间当做朋友》一书。 本书主张一个人必须在开启心智、提高思考能力之之后才能用正确的方法做正确的事情。前言无论是谁,都最终在某一刻意识到时间的珍贵,并且几乎注定会因懂事太晚而有些后悔。病了要投医,病急了可能会乱投医。可是书店里各种各样关于“时间管理”的书籍多半无事于补—-至少这是我自己的经验。一方面是束手无策,另一方面是时间无情的流逝,恶性循环早已形成。要做的事

2018-01-21 10:40:35 348

转载 Java中classLoader浅析

java classloader

2018-01-03 16:51:57 222

转载 一些设计上的基本常识

基本常识

2017-12-30 09:10:23 377

转载 魔鬼在细节

细节

2017-12-29 09:54:46 444

原创 ReentrantLock源码解析

Lock特性lock接口提供synchronized关键字不具备的主要特性 特性 描述 尝试非阻塞的获取锁 当前线程尝试获取锁,如果这一时刻锁没有被其他线程获取到,则成功获取并持有锁 能被中断的获取锁 与synchronized不同,获取到锁的线程能响应中断,当获取到锁的线程被中断时,中断异常会被抛出,同时锁会被释放 超时获取锁 在截止指定的时间内获取锁,截止时间到了仍

2017-05-26 11:09:35 301

原创 堆排序

public class HeapSort { public static void main(String[] args) { int[] array = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3 }; heapSort(array); for(int a : array){

2017-05-21 14:28:17 231

原创 归并排序

public class RecursiveMergeSort { public static void main(String[] args) { int[] data = new int[] { 5, 3, 6, 2, 1, 9, 4, 8, 7 }; print(data,"init"); // sort(data);

2017-05-20 17:34:44 178

原创 二分查找

public class BinarySearch { public static void main(String[] args) { int array[] = new int[]{5,2,9,4,11,10}; System.out.println(binarySearch(array,11)); } public static int

2017-05-20 17:24:28 245

原创 冒泡排序

/** * <p>在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。</p> * <p>即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。</p> * @author maosx * */public class BubbleSort { public static void mai

2017-05-20 17:15:53 312

原创 选择排序

/** * <p>在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;</p> * <p>然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换。</p> * <p>依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。</p> * @author maosx * */public class SelectionSort { p

2017-05-20 17:09:44 226

原创 快速排序

/** * <p>选择一个基准元素,通常选择第一个元素或者最后一个元素</p> * <p>通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大。</p> * <p>此时基准元素在其排好序后的正确位置</p> * <p>然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。</p> * @author maosx

2017-05-20 16:56:58 297

原创 希尔排序

/** * <p>先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。</p> * @author maosx * */public class ShellSort { public static void main(String[] args) { int array[] = new

2017-05-20 16:40:38 204

原创 直接插入排序

/** * <p>将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。</p> * <p>即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。</p> * @author maosx * */public class InsertionSort { public static void main(String[]

2017-05-20 16:15:02 298

转载 MYSQL中MyISAM、InnoDB的区别

MySQL默认采用的是MyISAM。MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,组成一个事务去提交。InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个表。即 MyISAM同一个表上的读锁和写锁是互斥的,

2017-05-20 09:44:44 233

转载 ASCII、Unicode和UTF-8

什么是字符编码?计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。ASCII编码:由于计算机是

2017-04-09 12:25:25 209

原创 MySQL备份之Xtrabackup实战

简介Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁)特点1) 备份过程快速、可靠;2) 备份过程不会打断正在执行的事务;3) 能够基于压缩等功能节约磁盘空间和流量;4) 自动实现备份检验

2017-02-22 18:20:28 438

原创 MySQL备份之LVM实战

备份安装MySQL安装mysql,可通过lnmp一键安装包安装,https://lnmp.org修改目录修改/etc/my.cnf下datadir,basedir,log-bin,innodb_data_home目录位置,挂载到逻辑卷上,目录结构如下:datadir=/data/mysql/datadirlog-bin=/data/mysql/log/文件名innodb

2017-02-14 18:28:22 409

原创 MySQL之GTID主从同步

简介Simple replication 这是一种最简单的主从同步复制方式,添加一台新的mysql服务作为slave服务,并在此服务上回放master上所有的事务,当slave服务启动后,会去读取master上全部的binary log,这种方式简单快捷,但是需要耗费时间。master服务设为只读如果已经配置了主从同步并且正在运行,先将master所有服务设为只读,然后确保sla...

2017-01-20 16:46:21 1835

翻译 MySQL之GTID简介

官网:http://dev.mysql.com/doc/refman/5.6/en/replication-gtids-concepts.html简介MySQL5.6 以后,提供了基于 GTID 多开启多线程同步复制的方案,即每个库有一个单独的(sql thread),进行同步复制,这将大大改善 MySQL 主从同步的数据延迟问题,此外,用 GTID 避免了在传送 binlog 逻辑上依赖文件名和物

2017-01-20 14:48:39 760

原创 MySQL主从切换

参考上一篇博客 MySQL主从同步http://blog.csdn.net/juded/article/details/54600294从库状态确认停止从库IO_THREAD线程从库上升为主库主库上升为从库

2017-01-18 13:26:39 473

原创 MySQL主从同步(binlog方式)

参考官网:http://dev.mysql.com/doc/refman/5.6/en/replication-configuration.html部署环境机器A:192.168.2.63(主) 机器B:192.168.2.94(从) mysql-5.6.23主(master)配置修改mysql安装目录下my.ini配置文件log_bin=mysql-bin-1...

2017-01-18 13:00:54 14268

原创 Mybatis概述(一)

近期抽空阅读了mybatis 3.3.1版本源码,受益匪浅,遂记录一下学习笔记,难免有理解或者写的不恰当的地方,请多谅解。一、概述以下是官方文档的原文。What is MyBatis?MyBatis is a first class persistence framework with support for custom SQL, stored procedures and

2016-09-28 13:47:25 540

原创 cisco SG300交换机 + cisco2901路由器 划分VLAN 上网

上篇cisco 路由器 ADSL拨号上网配置主要讲解了路由器拨号上网,本篇结合cisco交换机,配置VLAN上网。VLAN划分如下: vlan ip段 子网掩码 DNS服务器 网关 端口 vlan20 192.168.2.0 255.255.255.0 192.168.1.1(路由器上配置了DNS服务器,见上一篇博客) 192.1

2016-09-28 10:58:25 4544

原创 cisco 路由器 ADSL拨号上网配置

原文地址:http://blog.sina.com.cn/s/blog_61c07ac501015ek0.htm虚拟拨号接口cisco(config)&gt;interface Dialer1 //定义拨号端口Dialer1cisco(config)&gt;description adsl-dialercisco(config)&gt;ip address negotiated...

2016-09-22 17:22:38 22136 2

原创 cisco 2900企业级系列路由器初始配置

cisco 2900企业级系列路由器初始配置最近公司拓展业务,网络部署全都交给我一个人,鸭梨山大,花了几天饿补了网络方面的知识,cisco路由器的配置做个学习笔记简单记录下。准备工具:笔记本一台,一根Console线(RJ45转串口9孔)、一根USB转DB9针RS232串口线、secureCRT终端仿真程序STEP1第一次进行思科路由器的配置时,需要通过console端...

2016-09-21 23:17:19 13733

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除