程序媛的一生

愿你纵横书海,不再感到孤单

leetcode day4

146. LRU Cache Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and put. ...

2018-12-01 16:19:36

阅读数 63

评论数 2

leetcode day3

70. Climbing Stairs You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many d...

2018-12-01 16:19:05

阅读数 31

评论数 0

leetcode day2

1 Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For example, this binary tree [1,2,...

2018-12-01 16:18:26

阅读数 38

评论数 0

leetcode day1

1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input...

2018-12-01 16:17:37

阅读数 37

评论数 0

ZK分布式锁

分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或者是同一个系统的不同主机之间共享了一个或者一组资源,那么访问这些资源的时候,往往需要一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要分布式锁了   实现分布式锁的方案 1 原生zk方案 Zookee...

2018-11-11 16:53:06

阅读数 430

评论数 0

zookeeper学习

CAP理论   在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的需求下,当一个系统的一致性的状态下执行更新操作后,应该保持系统的数据仍然处于一致的状态 可用性 可用性是指系统提供的服务一致处于可用的状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果 ...

2018-11-11 16:52:51

阅读数 29

评论数 0

架构

大型网站架构模式   分层   分隔 定义: 在纵向对软件进行切分。 举例:网站业务拆分(购物、论坛、搜索、广告等),购物业务拆分(酒店业务、3C业务、小商品业务等) 分布式 目标: 分层和分割后的模块拥有更小的粒度,目的是分布式部署,便于使用更多资源(CPU、内存、存储等),提供...

2018-11-11 16:52:39

阅读数 30

评论数 0

redis分布式锁调研

实现 在说具体算法之前,下面有一些可供参考的具体实现. Redlock-rb (Ruby 实现). 有一个fork添加了简单分布的最佳实践。 Redlock-py (Python 实现). Redlock-php (PHP 实现). PHPRedisMutex (further PHP ...

2018-11-11 16:51:04

阅读数 33

评论数 0

redis分布式锁

 使用redis的setnx()、expire()方法,用于分布式锁:       对于使用redis的setnx()、expire()来实现分布式锁,这个方案相对于memcached()的add()方案,redis占优势的是,其支持的数据类型更多,而memcached只支持String一种数据...

2018-11-11 16:50:27

阅读数 24

评论数 0

学习Spring mvc事务

长事务场景 1.事务里同步RPC调用 2.事务里同步发送消息 潜在问题 1.接口响应变慢 2.数据库锁表 当一个事务在操作数据库的时候,事务commit/rollback之前表的相关行被一直锁住。 如果某些原因事务一直没有被提交,其他的事务将会一直等待资源被释放,最终系统被挂死。 ...

2018-11-11 16:50:14

阅读数 26

评论数 0

索引应该注意什么

2.1 分页的优化 条目 语句 优化方法 条件 说明 优化1 select * from table limit #{offset} #{limit} select * fro...

2018-11-11 16:49:54

阅读数 51

评论数 0

高可用的服务

分级管理:核心应用和服务具有更高的优先级,比如用户及时付款比能否评价商品更重要 超时设置:设置服务调用的超时时间,一旦超时后,通过框架抛出异常,应用程序则根据服务调度策略选择重试or请求转移到其他服务上 异步调用:通过消息队列等异步方式完成,避免一个服务失败导致整个应用系统失败的情况 服务降...

2018-11-11 16:48:19

阅读数 21

评论数 0

DUBBO源码

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provide...

2018-11-11 16:48:08

阅读数 47

评论数 0

我对分布式的思考

如何保证重复消费? 保证服务的幂等性   例如扣库存操作: 购物车下单接口会扣库存,会传一个sign(唯一的一个数字)。库存会在库存记录表里记录此sign 对于重试的操作,就根据sign从数据库里查询是否有此记录了 就是判断不为空说明是重试操作,就打个日志就可以了,然后返回成功 如果有...

2018-11-11 16:47:19

阅读数 34

评论数 0

ORDER BY优化

在MySQL中的ORDER BY有两种排序实现方式: 1、利用有序索引获取有序数据 2、文件排序 在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index。而文件排序显示Using filesort。 1.利用有序索引获取有序数据           取出满...

2018-11-10 15:38:41

阅读数 95

评论数 0

java引用类型

1.强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,(全局变量)可以通过将引用赋值null来弱化引用...

2018-11-10 15:38:11

阅读数 77

评论数 0

mysql避免死锁

1.经常提交你的事务,小事务更少的倾向于冲突   2.以固定的顺序访问你的表和行,这样事务就会形成良好的查询并且没有索引   3.讲精心选定的索引添加到你的表中,这样你的查询就只需要扫描更少的索引记录,并且因此可以设置更好的锁定   4.不要把无关紧要的操作放到事务里面   5.尽...

2018-11-10 15:37:37

阅读数 36

评论数 0

dubbo读书笔记

服务器路由      分布式服务框架上线运行时都是集群组网,这意味着集群中存在着某个服务的多实例部署,消费者如何从服务列表中选择合适的服务提供者进行调用,这就涉及到服务路由。分布式服务框架要能够满足用户灵活 的路由需求 透明化路由 很多开源的RPC框架调用者需要配置服务提供者的地址信息,尽...

2018-11-09 20:38:13

阅读数 82

评论数 0

ISR

 ISR 上节我们涉及到ISR (In-Sync Replicas),这个是指副本同步队列。副本数对Kafka的吞吐率是有一定的影响,但极大的增强了可用性。默认情况下Kafka的replica数量为1,即每个partition都有一个唯一的leader,为了确保消息的可靠性,通常应用中将其值(由...

2018-11-09 20:37:30

阅读数 171

评论数 0

https原理

我们都知道https能勾加密信息,以免敏感信息被第三方获取。所以很多银行网站活着电子邮箱等安全级别比较高的服务都会采用https协议 HTTPS简介   HTTPS其实有两部分组成:HTTP + SSL/TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过...

2018-11-09 10:27:38

阅读数 55

评论数 0

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