- 博客(7)
- 收藏
- 关注
原创 扩展Spring的两种方式
Spring的扩展方式自定义xml的方式,现实中的案例 dubbo框架,apollo框架 通过实现注解,实现ImportBeanDefinitionRegistrar接口实现. 现实中的案例 JPA,Feign,dubbo下面我会通过两个小demo的是形式实现上述两种方案.通过自定义Xml的方式扩展Spring需要用到的知识点:xsd xml schema def...
2018-12-28 16:57:14 470
原创 利用Zookeeper实现分布式锁
1. 第一种方式,通过线程sleep 1秒钟循环的拿锁,缺点是性能很差,而且再并发量较大的情况下会导致有线程无法获取到锁的情况/** * 通过zookeeper实现分布式锁, 缺点要通过sleep1秒之后去获得锁, * 性能很差,在比较大的并发量的情况下可能永远都拿不到锁。 */public class ZookeeperDistributeLock_01 { privat...
2018-11-25 16:52:19 187
原创 搭建Zookeeper集群
搭建Zookeeper集群非常的简单,主要是在zoo.cfg配置文件上改一些东西1. 了解zoo.cfg基本配置tickTime 发送心跳时间间隔 initLimit client同步阶段与server建立连接的时间为tickTike的n倍 syncLimit client发出request与获得ack通知之间的时间间隔同样是tickTime的n倍 dataD...
2018-11-25 15:16:52 207
原创 Zookeeper 基础
1. 什么是zookeeper?因为分布式系统或者说分布式环境就像是一个公园,里面可能包含很多tomcat服务,jetty服务,hadoop服务等等,而zookeeper在里面起到的作用就是协调服务与服务之间的关系类似公园管理者的角色所以叫zookeeper.官方给出的定义是:zookeeper是一个为了更好的维护分布式配置信息,命名,分布式同步,组合服务(同一服务的集群模式)的一个中心化的服...
2018-11-25 12:26:17 144
原创 Jdk1.8 ConcurrentHashMap 基础
ConcurrentHashMap1. ConcurrentHashMap 特性key值不能为空,如果为空程序会抛出空指针异常 线程安全 支持快速失败(在遍历的过程中不能进行put或者remove操作)2. ConcurrentHashMap put过程final V putVal(K key, V value, boolean onlyIfAbsent) { ...
2018-11-21 15:49:58 146
原创 Jdk1.8 HashMap 基础
HashMap 特性key,value可以为空 线程不安全 支持快速失败(在for循环中操作remove,put方法时会报ConcurrentModifyException)HashMap 的几个基本属性值loadFactor: 加载因子,loadFactor越大,hashmap的空间利用率越大,反之空间利用率越低.默认值为0.75. threshold: 容量阈值,超过该值会触发...
2018-11-20 18:02:31 174
原创 Hystrix基础以及如果配合Feign使用Hystrix
Hystrix1.Hystrix 是什么?在分布式的环境下,在访问一些服务的时候不可避免的会有失败的情况.比如其中一些服务器宕机了导致该服务器的的服务无法访问.Hystrix就是一个帮助在服务与服务之间交互的时候添加延迟和容错逻辑的一个组件.2.Hystrix 用来做什么?为使用第三方工具访问依赖服务(通常是通过网络的访问)提供失败和延迟保护 阻止在复杂的分布是环境中由于某个或者...
2018-11-15 16:07:52 933
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人