Kang's Blog

疯狂创作中···

其它-关于敏捷开发的学习与思考

敏捷开发的学习与思考

推荐阅读-敏捷开发之Scrum扫盲篇 敏捷开发   敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。我们来看看敏捷开发与瀑布开发的区别: 瀑布开发模型:是以文档为驱动,在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据; 敏捷开发模型:只写有必要的文档,或尽量少写文档,敏捷开发注重的...

中间件-消息队列之推&拉模型

消息队列之推&拉模型简单总结

消息中间件  消息中间件的主要功能是消息的路由(Routing)和缓存(Buffering)。其中缓存可以理解为Queue消息的队列。生产端通过路由规则发送消息到不同queue,消费端根据queue名称消费消息。 消费者获取消息模型   ①Push方式:由消息中间件主动地将消息推送给消费者,可以尽可能快地将消息发送给消费者。   ②Pull方式:由消费者主动向消息中间件拉取消息,会增加消...

中间件-Zookeeper

中间件之Zookeeper整理总结

数据结构 1、znode的路径唯一标识,每个znode可以存储数据,且数据可以有多个版本; 2、znode可以是临时节点,一旦创建这个znode的客户端与服务器失去联系,这个znode也将自动删除; 3、ZooKeeper的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态成为session。 4、znode可以被监控,包括这个目录节点中存储的数据被修改...

其它-关于缓存更新的思考

如何更新缓存

热点数据处理 归档热点数据方案   本地设计LRU(Least recently used,最近最少使用)策略,这样本地不用提前去采用hash这样的策略去分散可能的热点数据,而本地能自动保持一直是缓存的热点。 热点数据问题处理方案   本地缓存+远程缓存共同解决。在本地缓存一份数据(也可防雪崩),该缓存数据存在物理失效时间、业务失效时间和提前更新时间。   更新策略:每次查询时检查当前...

中间件-Redis

中间件之Redis整理总结

整体使用原则   个人理解:Redis其实只适合作为缓存,而不是数据库或是存储。它的持久化方式适用于救救急啥的,不太适合当作一个普通功能来用 客户端与 redis 的一次通信过程: Redis常见应用场景 1、会话缓存 2、消息队列 3、活动排行榜or计数 4、发布/订阅消息 5、商品列表、评论表等 数据类型   Redis一共支持五种数据类:string(字符串),hash...

其它-关于系统并发的思考

系统并发思考点

  系统的并发思考从大的方面来说其实分为两部分:资源的利用率、并发点的处理 资源的利用率   其实从全局上来看,很多场景下的并发是对硬件资源特别是数据库资源的竞争。在数据库事务操作中,我们通常通过两种方式来使用数据库: 悲观锁 对于悲观锁,通过行级锁的方式,来控制多个事务的并发。这种方式下有一个很明显的缺点:所有并发的事务,都将在数据库操作时竞争锁,若竞争失败,则会排队等待。很明...

中间件-Kafka

中间件之Kafka整理总结

  kafka利用zk临时节点特性从所有broker中选举出一个controller节点,controller节点会负责一些管理工作,如监听broker变化、监听topic变化、监听分区变化,管理分区信息等。   kafka对topic分区采用多副本机制来保障消息存储的可靠性,leader分区负责读写,follower仅负责从leader拉取数据做同步保障。因此分区的数量必须小于等于brok...

中间件-ActiveMQ

中间件之ActiveMQ整理总结

MQ作用 解耦、消峰填谷 MQ选择 消息事务性(Active MQ、Rocket MQ) 消息延时性(Active MQ、Rocket MQ) 消息顺序性(Rocket MQ) 消息持久化 消息失败重试 监控性   其中,延时性是用在延时执行某个动作场景下,相比将执行动作落库后定时器处理,不需要单独定时任务扫描,提高了执行时效性,也不会出现对数据库造成压力。 ...

中间件-dubbo之Filter过滤器

中间件之dubbo整理总结四

  Filter在dubbo中的功能类似Spring的Aop,其对对象进行包装增强。 外部SPI对象的全加载   前文我们提到,ReferenceConfig为dubbo创建的入口,整个类如下: 1 2 3 4 5 public class ReferenceConfig<T> extends AbstractReferenceConfig { //获取到的refpro...

中间件-dubbo之服务端消息处理

中间件之dubbo整理总结三

1. 服务启动 1.1 ServiceBean对象初始化   ServiceBean解析了dubbo:service这个标签的配置类,其实它也是服务提供者初始类,通过它来发起服务的暴露,服务的注册等。   ServiceBean实现了ApplicationListener,在应用启动时,调用onApplicationEvent()方法。 追踪:onApplicationEvent->e...