自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序媛的一生

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

  • 博客(257)
  • 资源 (4)
  • 收藏
  • 关注

原创 区别

可能长大与没有长大的区别就是没有长大的的时候,即使苦也没有觉得苦,觉得任何都可以改变,甚还自我为中心,不顺心的时候还能吵吵闹闹长大的样子就是,感受到了生活的苦,也不想去改变什么,可以设身处地为他人着想,也不再作的无理取闹,但是人不再那么快乐了长大的样子是苦的,知道世界是什么样子,也知道,也对生活和他人抱有太大的期望当一切都要自己负责的时候的确很累的很苦,但是一切只能自己去承担有时候在想曾经失去的一切,自己也坦然接受了,如果一切都是自己作的,只能自作自受,还能怨谁呢,是吧?...

2020-11-18 23:18:58 291

原创 随想

夜深人静,此刻有点孤独的,今天一个人加我他说他是meituan的,记得我以前登记过,觉得我身材超好就把我电话记下来了,我也没多想就跟他说了几句话,然后他问我是否单身谈了几个我都回答了,然后他说他是处男,问我是不是处女,他觉得年纪大了还是处女是心理有问题等等,后来我就删了他刚刚他又加我,我没有加回来真的世界大了啥人都有,人活着都是苦的吧,取悦别人太难,也别难受委屈了自己,晚安了...

2020-11-16 00:01:14 260

原创 人生是一个环

终究会走到原点

2020-09-27 15:59:31 313 2

原创 2020 9.25

9.25教育教学1.“课程不应指向活动,而应直接关注制定一套有结构、有序列的学习目标,所有教学活动都是为了达到这些目标而服务的”,这种观点意味着课程即( )。A.教学科目 B.经验获得C.社会改造 D.预期的学习结果2.学校教育的基础是( )。A.教师 B.学生 C.班级 D.课程3.以美国教育家杜威为代表的现代教育派的“三中心”是( )。A.儿童、教材、活动 B.教师、活动、经验C.儿童、活动、经验 D.教师、经验、教材4.关于课程目标的水平研究最为著名的是(...

2020-09-26 13:45:33 813

转载 一键更新maven版本号

https://blog.csdn.net/kye055947/article/details/102928521

2020-09-10 13:18:49 831

原创 基金学习

什么是基金:基金公司靠谱吗?基金都有哪些费用,终于知道为啥基金最好不能总是赎回了都有哪些好的基金公司

2020-06-05 21:40:17 353

原创 maven 配置

export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Homeexport JAVA_HOME=$JAVA_8_HOMEM2_HOME=/usr/local/apache-maven-3.6.3export M2_HOMEPATH=$M2_HOME/bin:$PATHexport ...

2020-03-24 16:14:38 206

原创 如何解决消息堵塞的问题

1、消息堵塞监控2、提升消费能力如果消费者逻辑复杂,超时,可以考虑异步3、增加partion数量

2019-11-04 20:37:34 2244

原创 如何健壮你的后端服务

1.怀疑第三方有兜底最好业务降级方案  如果第三方服务挂掉怎么办?我们业务也跟着挂掉?显然这不是我们希望看到的结果,如果能制定好降级方案,那将大大提高服务的可靠性。举几个例子以便大家更好的理解。遵循快速失败失败原则,一定要设置好超时时间保护第三方 慎重选择重试机制2、防备使用方设计一个好的api,避免误用a)遵循接口最少暴露原则  使用方用...

2019-10-22 22:10:19 323 1

原创 优化方案

缓存化 缓存可以称的上是性能优化的利器,使用缓存时需要考虑缓存命中率、缓存更新、数据一致性、缓存穿透及雪崩、Value过大等问题,可以通过mutiGet将多次请求合并一次、异步访问等方式来提升缓存读取的性能。服务化 我们做服务化最基础的是按业务做服务拆分,避免跨业务间的互相影响,数据和服务同时拆分。同一个业务内部我们还按计算密集型/IO密集型的服务拆分、C端/B端服务拆分、核心/...

2019-10-21 19:44:20 259

原创 缓存的更新机制

最近在思考缓存的更新机制,各自的存在的问题及优化方案更新数据库 更新缓存 结论 :会存在缓存读到的旧的数据,比如 A 将 num 由 100 改为了 20 还未更新缓存的时候 另一个请求B过来 将100 改成了 80 更新缓存,那么A接着更新缓存,那么缓存里就是旧的数据了,因为更新数据库和更新缓存不是一个原子操作,无法保证顺序的那么用 更新数据库删除缓存 就不会存在这个问题...

2019-10-21 10:11:21 587

原创 saga分布式事务

补偿操作事务补偿(回滚) 逆向补偿重试(立即重试 固定间隔重试 增量重试 指数重试) 正向补偿下游系统返回「请求超时」、「被限流中」等临时状态的时候,我们可以考虑重试 而如果是返回“余额不足”、“无权限”等明确无法继续的业务性错误的时候就不需要重试了 一些中间件或者 rpc 框架中返回 Http503、404 等没有何时恢复的预期的时候,也不需要重试重试需要...

2019-10-12 22:38:10 829

原创 交易稳定性建设

外部依赖多,网络环境复杂,如何保证交易系统稳定?如何保证交易链路稳定依赖治理分析业务,梳理依赖,强依赖弱化消除非必要依赖依赖降级和熔断强依赖故障可降级弱依赖故障可熔断超时治理自动化自动排查配置化,快速便捷调整超依赖超时从宽,若依赖超时从严解偶/隔离读写分离冷热隔离范围查询,离线导出,如商家列表走es实时查询如订...

2019-10-12 22:16:56 287

原创 缓存必问

系统中涉及到的缓存为了更好的检查缓存方案设计是否合理,我们需要回答如下问题 解决的问题 缓存数据存储(redis or localCache) 缓存key的命名 单个缓存数据大小预估(最大) 容量预估 读、写QPS预估 带宽预估 缓存更新机制 数据过期时间设置,理由 数据失效后的回填机制 ...

2019-10-10 23:29:13 95

原创 每日所获

没有怎么用过缓存 数据看板1.2的接口里用到了专业版的接口 他们的改动不频繁 我这里存在根据cinemaIds批量查询影片信息的接口 但是如果是城市大盘的话会存在cinemaIds过多的问题 所以考虑到在我这里加一层索引加缓存需要注意的问题:1: 你要考虑的问题是避免热点问题, 比如使用分布式缓存,不要所有的数据缓存到同一台服务器上2:两外考虑查询场景, 比如以天为单位缓存,...

2019-10-10 23:27:35 145

原创 mysql主从同步和主从延迟

1.背景当前 wiki 的重点:监控:MySQL 的主从延迟? 影响: MySQL 主从延迟的影响? 多少的延迟,可以接受? 原因:MySQL 主从延迟的产生原因?2.MySQL 主从复制2.1.MySQL 主从集群MySQL 主从集群的作用,要解决什么问题?场景:高并发情况下,单台 MySQL 数据库承载的连接数多、读写压力大,MySQL系统瓶颈凸显...

2019-10-09 22:59:10 122

原创 redis使用场景

数据结构 场景举例 详情 评论 string 点评数/点赞数 incr review9527 hash 用户信息管理 用hash来存储用户信息,比如用户id9527 hset user9527 name xiaoqiang hset u...

2019-10-09 22:54:23 117

原创 限流

1、控制单位时间内的请求数atomicLong#incrementAndGet()分布式限流很多时候我需要有一个全局的限速,例如用户注册时,让用户输入手机验证码,为了防止短信接口不被恶意频繁调用,一般会限制用户每分钟获取验证码频率,例如一分钟不能超过5次。此时,我们可以通过Redis的来实现,伪代码如下:phoneNum = "186xxxxxx";key = "verif...

2019-09-27 00:53:43 5220 4

原创 如何限流

限制单位时间的调用量AtomicLong#incrementAndGet()分布式限流很多时候我需要有一个全局的限速,例如用户注册时,让用户输入手机验证码,为了防止短信接口不被恶意频繁调用,一般会限制用户每分钟获取验证码频率,例如一分钟不能超过5次。此时,我们可以通过Redis的来实现,伪代码如下:phoneNum = "186xxxxxx";key = "verifyCo...

2019-09-27 00:34:58 1502

原创 mysql INNODB锁类型

MySQL InnoDB支持三种行锁定方式:l行锁(Record Lock):锁直接加在索引记录上面,锁住的是key。l间隙锁(Gap Lock):锁定索引记录间隙,确保索引记录的间隙不变。间隙锁是针对事务隔离级别为可重复读或以上级别而已的。lNext-Key Lock:行锁和间隙锁组合起来就叫Next-Key Lock。默认情况下,InnoDB工作在可重...

2019-09-25 14:41:33 146

原创 我所理解的高并发

且容我慢慢的道来,现在我要继续写业务代码了什么高并发呢首先要了解业务指标高并发要考虑可用性扩展性线程同步一致性

2019-09-25 14:25:23 245 1

原创 数据库如何调优

1、是否选对了索引可以根据explain 计划对于 order by groupby的要根据索引排序,不然会引起磁盘排序对于经常查询的字段 要加索引,比如根据order_id 查订单状态,可以加 orderId 和 status 联合索引,为什么加上status,因为根据索引的特点,叶子结点存的是 索引字段,直接从叶子结点拿status就行了,不必再回表查找,也是充分利用覆盖索引的情况...

2019-09-25 13:25:44 952

原创 架构性能指标

1、mysql一个数据表的数据过多,对更新和查询性能都有影响。对于不再使用的数据要及时备份清走。一般数据库的容量剩余不到60%, 就要考虑分库分表了。一般一台物理机写入能力也不能高于QPS1500。所以对于主从延时不是很敏感的业务场景,一定要做好读写分离。虽然做了读写分离,如果读和写的代码在一个事务里,其实都是走的主库。杜绝慢查询。2、mq 3、梳理好依赖 梳理好哪些是...

2019-09-25 12:59:19 728

原创 库存问题

https://www.infoq.cn/article/jingdongdaojia-inventory-system添加购物车时减库存下单时预扣库存真正支持时扣库存如何防止 上游系统调用减库存重拾以订单id和userId为分布式锁的key,加锁如何防止库存被超卖利用数据库的CAS 乐观锁概念update inventory set num = num...

2019-09-23 13:24:27 257

原创 leetcode day4

146. LRU CacheDesign and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and put.get(key) - Get the value (will always be positive) ...

2018-12-01 16:19:36 198 2

原创 leetcode day3

70. Climbing StairsYou 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 distinct ways can you climb to the top?Note: Given...

2018-12-01 16:19:05 142

原创 leetcode day2

1 Symmetric TreeGiven a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree [1,2,2,3,4,4,3] is symmetric: 1 / \ 2 2 / ...

2018-12-01 16:18:26 164

原创 leetcode day1

1. Two SumGiven 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 would have exactly one solution, and you may not u...

2018-12-01 16:17:37 131

原创 ZK分布式锁

分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或者是同一个系统的不同主机之间共享了一个或者一组资源,那么访问这些资源的时候,往往需要一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要分布式锁了 实现分布式锁的方案1 原生zk方案Zookeeper中有一种节点叫做顺序节点,假如我们在/lock/目录下创建节3个点,ZooKeeper集群会按照...

2018-11-11 16:53:06 5477

原创 zookeeper学习

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

2018-11-11 16:52:51 135

原创 架构

大型网站架构模式 分层 分隔定义: 在纵向对软件进行切分。举例:网站业务拆分(购物、论坛、搜索、广告等),购物业务拆分(酒店业务、3C业务、小商品业务等)分布式目标: 分层和分割后的模块拥有更小的粒度,目的是分布式部署,便于使用更多资源(CPU、内存、存储等),提供更多服务。注意事项:服务间调用通过网络,造成性能影响。 服务器越多,宕机概率越大,服务可用性...

2018-11-11 16:52:39 151

原创 redis分布式锁调研

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

2018-11-11 16:51:04 174

原创 redis分布式锁

 使用redis的setnx()、expire()方法,用于分布式锁:      对于使用redis的setnx()、expire()来实现分布式锁,这个方案相对于memcached()的add()方案,redis占优势的是,其支持的数据类型更多,而memcached只支持String一种数据类型。除此之外,无论是从性能上来说,还是操作方便性来说,其实都没有太多的差异,完全看你的选择,比如公司...

2018-11-11 16:50:27 143

原创 学习Spring mvc事务

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

2018-11-11 16:50:14 140

原创 索引应该注意什么

2.1 分页的优化 条目 语句 优化方法 条件 说明 优化1 select * from table limit #{offset} #{limit} select * from table where id > #max_id# order by id limit n;...

2018-11-11 16:49:54 185

原创 高可用的服务

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

2018-11-11 16:48:19 167

原创 DUBBO源码

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。...

2018-11-11 16:48:08 372

原创 我对分布式的思考

如何保证重复消费?保证服务的幂等性 例如扣库存操作:购物车下单接口会扣库存,会传一个sign(唯一的一个数字)。库存会在库存记录表里记录此sign对于重试的操作,就根据sign从数据库里查询是否有此记录了 就是判断不为空说明是重试操作,就打个日志就可以了,然后返回成功如果有多个实例同事去扣库存咋办?这就用到了分布式锁了,redis.setnx操作,保证同时只有一个线程(进程...

2018-11-11 16:47:19 150

原创 ORDER BY优化

在MySQL中的ORDER BY有两种排序实现方式:1、利用有序索引获取有序数据2、文件排序在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index。而文件排序显示Using filesort。1.利用有序索引获取有序数据          取出满足过滤条件作为排序条件的字段,以及可以直接定位到行数据的行指针信息,在 Sort Buffer 中进行...

2018-11-10 15:38:41 6454 1

原创 java引用类型

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

2018-11-10 15:38:11 418

实战java高并发程序设计

java多线程学习的非常好的书籍

2018-03-28

贪心算法实例

包括背包问题,活动安排问题,多机调度问题,和哈夫曼树和编码问题

2013-05-08

动态规划法实例

包括动态规划法里的背包,最长公共序列和最优二叉查找树的算法

2013-05-08

课程设计通讯录管理系统(链表)

能对数据进行存储,读入,查找,删除,修改

2013-02-02

空空如也

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

TA关注的人

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