0%

字节码指令

字节码指令由一个操作码(一个字节长度、代表着特殊含义的数字)以及操作码之后有零个至多个代表此操作所需参数构成

分为九类指令

  • 加载与存储指令
  • 算术指令
  • 类型转换指令
  • 对象的创建与访问指令
  • 方法调用与返回指令
  • 操作数栈管理指令
  • 比较控制指令
  • 异常处理指令
  • 同步控制指令
阅读全文 »

zookeeper应用场景

zookeeper可以实现统一命名服务、配置管理、锁和队列、状态同步、集群管理等功能

注册中心

zookeeper作为注册中心

  • 依赖于临时节点
  • 服务提供者启动时,将服务名称,ip地址注册到配置中心
  • 服务消费者启动的时候,会先去注册中心中全量拉取服务的注册列表,缓存到本地,当消费者调用服务时,不会再去请求注册中心,直接通过负载均衡算法从ip列表中取出一个ip进行调用
  • 当服务提供者下线(上线),相应的ip会从服务提供者列表中移除(新增),注册中心会将服务ip列表发送给服务消费者,刷新缓存
  • 感知服务上下线(心跳检测,定时向服务提供者发送请求,确认是否在线)
阅读全文 »

zookeeper的API

首先引入zookeeper依赖

1
2
3
4
5
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.6.1</version>
</dependency>
阅读全文 »

获取当前request

有时候需要在处理业务的时候用到request对象,可以使用该方法获取

1
HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();

使用RequestContextHolder.currentRequestAttributes()获取的RequestAttributes对象是线程局部变量(ThreadLocal),request对象也是线程局部变量