atmoic类

从JDK1.5开始引入了java.util.concurrent.atomic包,方便程序员在多线程情况下进行无锁的原子操作,但是由于CPU的架构不同,提供的原子指令不一样,也有可能需要某种形式的内部锁,所以也不能完全保证线程不被阻塞! 在atmoic包里一共有12个类,四种原子更新方式: ⑴原子...

2017-12-29 20:50:09

阅读数 265

评论数 0

TCP流量控制 拥塞控制

1.流量控制 流量控制是点对点通信量的控制 如果发送端数据发送太快而接收端来不及接收,就会造成数据损失。 数据流主要分为两大类:成块数据流和交互数据流,针对这两种数据流采用不同的机制来进行流量控制 1.1成块数据流---滑动窗口机制 发送窗口连接建立时双方约定,但在通信的过程中,接收端可根据自己的...

2017-12-25 21:14:53

阅读数 82

评论数 0

Spring Cloud构建微服务架构(四)断路器(Hystrix)

在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用...

2017-12-17 17:31:10

阅读数 873

评论数 0

Spring Cloud构建微服务架构(三)服务消费者(Feign)

1.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合...

2017-12-17 10:46:01

阅读数 102

评论数 0

Spring Cloud 服务消费者(rest+ribbon)

在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring  Cloud有两种微服务调用方式:①ribbon+restTemplate ②feign 本篇主要是将ribbon+restTemplate ribben这个东西比较复杂,我们先简单说一...

2017-12-16 22:10:48

阅读数 508

评论数 0

Spring Cloud 服务注册与发现 Eureka

一、Eureka简介主要用于服务的注册发现。Eureka由两个组件组成:Eureka服务器和Eureka客户端。二、核心概念1.Register:服务注册 当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。2.Renew:...

2017-12-10 20:27:03

阅读数 256

评论数 0

Comparable与Comparator的区别

Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务, Spring Cloud基于Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配...

2017-12-09 22:17:02

阅读数 1480

评论数 0

基于ZooKeeper的分布式锁

使用 Zookeeper 可以实现分布式锁,需要首先定义一个锁节点(lock root node)。 需要获得锁的客户端按照以下步骤来获取锁: ⑴保证锁节点(lock root node)这个父根节点的存在,这个节点是每个要获取lock客户端共用的,这个节点是PERSISTENT的。 ⑵...

2017-12-08 21:31:16

阅读数 182

评论数 0

基于redis的分布式锁

1.Redis两个重要的方法 ⑴SETNX命令 即 SET IF NOT EXSIT 当且仅当 key 不存在,将 key 的值设为 value ,并返回1;若给定的 key 已经存在,则 SETNX 不做任何动作,并返回0。 redis> EXISTS job ...

2017-12-08 20:53:53

阅读数 80

评论数 0

手写线程池

1.手写之前首先展示一张原理图: 这里面有几个核心点: ⑴线程池里的核心线程数与最大线程数 ⑵线程池里真正工作的线程worker ⑶线程池里用来存取任务的队列BlockingQueue 顺便补充点阻塞队列的知识: add 增加一个元索 ...

2017-12-03 14:27:41

阅读数 1338

评论数 1

手写AOP

一、我们首先看两个很重要的类/接口 1.InvocationHandler 每一个动态代理类都必须要实现InvocationHandler这个接口,并且每个代理类的实例都关联到了一个handler,当我们通过代理对象调用一个方法的时候,这个方法的调用就会被转发为由InvocationHandler...

2017-12-01 23:11:26

阅读数 433

评论数 0

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