摘要: 分布式锁的一点理解 什么是锁 在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。 而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记, 阅读全文
posted @ 2018-01-04 16:27 daniel456 阅读(251) 评论(0) 推荐(0) 编辑
摘要: Redis为单进程单线程模式,采用队列模式将并发访问变为串行访问。Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,但是在Jedis客户端对Redis进行并发访问时会发生连接超时、数据转换错误、阻塞、客户端关闭连接等问题,这些问题均是由于客户端连接混乱造成。对此有2种解决方法:1 阅读全文
posted @ 2018-01-04 16:22 daniel456 阅读(7125) 评论(1) 推荐(0) 编辑
摘要: redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了。 官方的一个简单测试: 测试完成了50个并发执行100000个请求。 设置和获取的值是一个256字节字符串。 结果:读的速度是110000次/s,写的速度是81000次/s 在这么快的读写速度下,对于一般程序来 阅读全文
posted @ 2018-01-04 15:45 daniel456 阅读(349) 评论(0) 推荐(0) 编辑
摘要: Redis采用的是基于内存的采用的是单进程单线程模型的KV数据库,由C语言编写。官方提供的数据是可以达到100000+的qps。这个数据不比采用单进程多线程的同样基于内存的KV数据库Memcached差。 Redis快的主要原因是: 第一、二点不细讲,主要围绕第三点采用多路 I/O 复用技术来展开。 阅读全文
posted @ 2018-01-04 15:38 daniel456 阅读(1175) 评论(0) 推荐(0) 编辑
摘要: 一、入门 1、简介 Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Prod 阅读全文
posted @ 2018-01-04 11:53 daniel456 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 创建kafka topic bin/kafka-topics.sh --zookeeper node01:2181 --create --topic t_cdr --partitions 30 --replication-factor 2 bin/kafka-topics.sh --zookeepe 阅读全文
posted @ 2018-01-04 11:53 daniel456 阅读(7278) 评论(0) 推荐(0) 编辑
摘要: 作为一位优秀的程序员,只知道一种ORM框架是远远不够的。在开发项目之前,架构的技术选型对于项目是否成功起到至关重要的作用。我们不仅要了解同类型框架的原理以及技术实现,还要深入的理解各自的优缺点,以便我们能够在项目的实施过程中面对的困难更少。 所以这篇博文我们要将Mybatis和Hibernate进行 阅读全文
posted @ 2018-01-04 10:31 daniel456 阅读(237) 评论(0) 推荐(0) 编辑
摘要: MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映 阅读全文
posted @ 2018-01-04 10:29 daniel456 阅读(162) 评论(0) 推荐(0) 编辑
摘要: service的生命周期,从它被创建开始,到它被销毁为止,可以有两条不同的路径: A started service 被开启的service通过其他组件调用 startService()被创建。 这种service可以无限地运行下去,必须调用stopSelf()方法或者其他组件调用stopServi 阅读全文
posted @ 2018-01-04 10:03 daniel456 阅读(637) 评论(0) 推荐(0) 编辑