摘要:
以postgreSQL为例,方便下次直接使用。 其中pom.xml引入如下依赖。 在 application.properties 配置数据源 利用spring加载配置: 最后采用 Junit测试效果:
阅读全文
posted @ 2017-07-14 15:26
知己一生
阅读(762)
推荐(0)
摘要:
redis数据库里面的每个键值对都是由对象组成的。 其中数据库键的值总是字符串对象。 数据库的值则可以是字符串对象(String),列表对象(list),哈希对象(Hash),集合对象(Set),有序集合对象(Sorted Set)。
阅读全文
posted @ 2017-07-13 17:08
知己一生
阅读(148)
推荐(0)
摘要:
悲观锁就是认为并发时一定会有冲突发生,采用互斥的策略。比如java中的synchronized。 而乐观锁是假设并发时不会有冲突发生,如果发生冲突,则操作失败,并不断重试。乐观锁的机制就是CAS(Compare and Swap)。 大多数的处理器都会实现一个CAS指令。 CAS包含了三个操作数,需
阅读全文
posted @ 2017-07-10 14:34
知己一生
阅读(1494)
推荐(0)
摘要:
synchronized的作用大概分为三种: 1.确保多线程互斥的访问多线程代码。2.保证变量的可见性。3.防止指令重排序。 那么synchronized 是如何实现这些功能的。 以上面的Demo为例。对代码进行反编译。 结果如下: 关于monitorenter和monitorexit的作用,可以在
阅读全文
posted @ 2017-07-05 16:42
知己一生
阅读(506)
推荐(0)
摘要:
1.指令重排序是什么? 编译器或者运行时环境为了优化程序程序性能,可能会对指令进行重新排序。 例如: int a = 10; int b = 20; 计算机在执行如上语句时,可能会先执行第二句,再执行第一句。、 2.什么操作可能会被指令重排序? 并不是所有的操作都会被执行重排序,编译器或者处理器不会
阅读全文
posted @ 2017-07-03 20:27
知己一生
阅读(205)
推荐(0)
摘要:
当缓存需要被清理时(比如空间占用已经接近临界值了),需要使用某种淘汰算法来决定清理掉哪些数据。常用的淘汰算法有下面几种: 1. FIFO:First In First Out,先进先出。判断被存储的时间,离目前最远的数据优先被淘汰。 2. LRU:Least Recently Used,最近最少使用
阅读全文
posted @ 2017-06-29 20:17
知己一生
阅读(247)
推荐(0)
摘要:
微服务架构的优势: 1.服务粒度小,根据业务功能划分服务粒度,降低了传统的单一结构系统的复杂性。 2.每个服务只做一件事(单一职责),负责该服务的团队可以更加独立工作。 3.管理容易,自动化部署与监控预警。 微服务化带来的挑战: 1.运维要求高,自动化、高可用 2.分布式复杂性,网络延迟、分布式事务
阅读全文
posted @ 2017-06-23 10:15
知己一生
阅读(931)
推荐(0)
摘要:
1.同步服务调用 上图是同步调用的原理图,用户线程在完成消息序列化之后,把消息投递到通信框架,然后同步阻塞,等待通信线程发送 请求并接收到应答之后,唤醒用户同步阻塞的线程,用户线程获取到应答后返回。 2.异步服务调用 异步调用是基于JDK的Future机制,Future代表了异步操作的结果,用户可以
阅读全文
posted @ 2017-06-21 15:33
知己一生
阅读(391)
推荐(0)
摘要:
基于微服务的架构已经成为一种流行趋势。而Docker则给微服务的蓬勃发展注入了更强的活力。 docker的吸引能力主要来自两方面:快速和可移植。 1.快速 普通的虚拟机每次都需要启动一个完整的操作系统实例,而docker通过内核共享的方式,共享一套操作系统。 这意味着docker容器的启动和停止不需
阅读全文
posted @ 2017-06-20 20:32
知己一生
阅读(438)
推荐(0)
摘要:
字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。 字节流默认不使用缓冲区;字符流使用缓冲区。 字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。
阅读全文
posted @ 2017-06-17 16:40
知己一生
阅读(389)
推荐(0)