有恒则成
本人计算机应用技术专业毕业,从事Java 研发工作10年,其中六年分布式开发五年架构设计;能够独立架构并维护基于ZK+Dubbo 的高可用分布式系统并解决分布式事务;熟悉Oracle/Postgresql/Mysql 数据库,擅长数据表设计,掌握SQL 优化;了解分库分表及HAProxy、MyCat、FastDFS 等高可用集群;熟悉Linux 服务器集群、分布式管理及部署工作;使用Keepalived+Nginx +Tomcat 实现了Web 高可用、负载均衡;熟练掌握PowerDesgin 进行数据建模,熟悉Edraw Max、Visio 等设计工具的使用;责任心强并容易相处。
展开
-
分布式-分布式锁
一、分布式锁的几种实现方式1.1 分布式锁的三种实现方式1.2 使用分布式锁要满足的条件二、基于数据库实现分布式锁2.1 基于数据库表2.2 基于数据库排他锁2.3 总结2.3.1数据库实现分布式锁的优点2.3.2 数据库实现分布式锁的缺点三、 基于缓存实现分布式锁3.1 Redis分布锁使用命令介绍3.2 实现思想3.3 实现代码3.4 总结3.4....原创 2018-08-08 16:20:48 · 13748 阅读 · 0 评论 -
分布式-分布式缓存Redis
一、Redis常用五大数据类型1.1 String(字符串)1.2 Hash(哈希)1.33 List(列表)1.4 Set(集合)1.5 zset(sorted set:有序集合)二、redis应用场景2.1 缓存——热数据2.2 计数器2.3 队列2.4 位操作(大数据处理)2.5 分布式锁与单线程机制2.6 最新列表2.7 排行榜三、redis使用规...原创 2018-08-08 10:40:14 · 15416 阅读 · 0 评论 -
分布式-消息中间件介绍
一、消息队列概述消息队列中间件是分布式系统中重要的组件 主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性(分布式事务)架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等 二、消息队列作用主要解决应用耦合,异步消息,流量削...原创 2018-07-26 16:01:46 · 18699 阅读 · 0 评论 -
分布式架构高可用架构篇_01_zookeeper集群的安装、配置、高可用测试
zookeeper集群的安装、配置、高可用测试原创 2016-04-15 16:23:50 · 16099 阅读 · 2 评论 -
分布式架构高可用架构篇_02_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试
activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试原创 2016-04-20 23:13:23 · 4463 阅读 · 0 评论 -
分布式架构高可用架构篇_03-redis3集群的安装高可用测试
redis3集群的安装高可用测试原创 2016-04-21 23:16:59 · 15464 阅读 · 0 评论 -
分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡
Keepalived+Nginx实现高可用Web负载均衡原创 2016-04-17 10:00:52 · 17262 阅读 · 0 评论 -
分布式架构高可用架构篇_05_fastdfs集群的安装
fastdfs集群的安装测试原创 2016-04-21 23:19:42 · 15147 阅读 · 0 评论 -
分布式架构高可用架构篇_06_MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
MySQL源码编译安装(CentOS-6.7+MySQL-5.6)原创 2016-04-23 19:28:07 · 15672 阅读 · 0 评论 -
分布式架构高可用架构篇_07_MySQL主从复制的配置(CentOS-6.7+MySQL-5.6)
引入主从复制机制所带来的好处:①避免数据库单点故障:主服务器实时、异步复制数据到从服务器,当主数据库宕机时,可在从数据库中选择一个升级为主服务器,从而防止数据库单点故障。②提高査询效率:根据系统数据库访问特点,可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据査询操作,从而将査询操作分担到不同的从服务器以提高数据库访问效率。环境操作系统...原创 2016-04-24 23:39:22 · 16540 阅读 · 0 评论 -
分布式架构高可用架构篇_08_MyCat在MySQL主从复制基础上实现读写分离
MyCat在MySQL主从复制基础上实现读写分离原创 2016-04-25 21:31:00 · 16480 阅读 · 0 评论 -
Nginx负载均衡策略
nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。nginx的upstream目前支持的5种方式的分配1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 upstream backserve...原创 2018-07-24 07:39:45 · 13998 阅读 · 0 评论 -
分布式-微服务架构选型
微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。 系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。微服务主要的优势降低复杂度将原来耦合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累。 每一个微服务专注于单一功...原创 2018-07-23 17:06:31 · 17450 阅读 · 1 评论 -
分布式-缓存防穿透 、雪崩
一、缓存穿透预防及优化缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,但是出于容错的考虑,如果从存储层查不到数据则不写入缓存层,如图 11-3 所示整个过程分为如下 3 步:1.缓存层不命中2.存储层不命中,所以不将空结果写回缓存3.返回空结果缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失去了缓存保护后端存储的意义。 缓存穿透模型缓存穿透...原创 2018-07-23 06:27:14 · 13979 阅读 · 0 评论 -
分布式-分布式事务
分布式事务- 二阶段协议一、前言在单个数据库实例时候,我们可以在一个数据源的事务(本地事务)内做多步数据库操作,在事务内的多个操作要么全部执行生效,要么全部不生效。在多数据实例节点时候,我们对多个实例的数据源进行操作时候就没办法把多个操作放到一个大的事务内来保证原子性了,因为多个实例操作的是不同的数据源,而数据库自带的事务是针对单个数据源来说的。二、二阶段协议单个数据库实例...原创 2018-07-22 18:04:00 · 14305 阅读 · 0 评论 -
分布式-接口幂等性设计
在微服务架构下,我们在完成一个订单流程时经常遇到下面的场景:一个订单创建接口,第一次调用超时了,然后调用方重试了一次在订单创建时,我们需要去扣减库存,这时接口发生了超时,调用方重试了一次当这笔订单开始支付,在支付请求发出之后,在服务端发生了扣钱操作,接口响应超时了,调用方重试了一次一个订单状态更新接口,调用方连续发送了两个消息,一个是已创建,一个是已付款。但是你先接收到已付款,然...原创 2018-07-22 07:52:42 · 14289 阅读 · 0 评论 -
分布式-SOA服务化接口设计
服务模块的设计方式模块调用链:controller->facade->biz->dao服务模块的接口类型简单的数据查询接口:controller.facade、dao(例根据Id查询记录) 带业务逻辑的数据查询接口:controller、facade、biz、dao(复杂的查询,带业务逻辑) 简单的数据写入接口:controller、facade、da原创 2018-07-21 20:41:54 · 15143 阅读 · 1 评论 -
分布式-全局唯一id
系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1.数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点:1)简单,代码方便,性能可以接受。2)数字ID天然排序,对分页或者...原创 2018-07-20 18:14:29 · 14482 阅读 · 0 评论 -
某金服银行存管分布式架构设计
1架构总览此架构支撑的业务是 一天10G的日志处理,100个左右的QPS##业务流业务订单表设计CREATE TABLE `biz_order` ( `tid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `biz_id` varchar(100) NOT NULL DEFAULT '' COMMENT...原创 2018-07-24 15:58:13 · 15905 阅读 · 2 评论