软件工程师有前途吗,网站排名网站优化,网页升级访问未成年自觉离开,温州外贸公司网站建设公司排名目录架构设计请列举出在JDK中几个常用的设计模式#xff1f;什么是设计模式#xff1f;你是否在你的代码里面使用过任何设计模式#xff1f;静态代理、JDK动态代理以及CGLIB动态代理静态代理动态代理cglib代理单例模式工厂模式观察者模式装饰器模式秒杀系统设计分布式分布式…
目录架构设计请列举出在JDK中几个常用的设计模式什么是设计模式你是否在你的代码里面使用过任何设计模式静态代理、JDK动态代理以及CGLIB动态代理静态代理动态代理cglib代理单例模式工厂模式观察者模式装饰器模式秒杀系统设计分布式分布式概述分布式集群微服务多线程高并发分布式系统设计理念分布式系统的目标与要素分布式系统设计两大思路中心化和去中心化分布式与集群的区别是什么CAP定理CAP定理的证明BASE理论BASE理论的核心思想BASE理论三要素1. 基本可用2. 软状态3. 最终一致性数据结构与算法冒泡排序最高位确认最大选择排序最低位选最小快速排序递归二分查找一致性Hash算法概述一致性Hash算法原理架构设计 
请列举出在JDK中几个常用的设计模式 什么是设计模式你是否在你的代码里面使用过任何设计模式 静态代理、JDK动态代理以及CGLIB动态代理 静态代理 动态代理 cglib代理 单例模式 工厂模式 观察者模式 装饰器模式 秒杀系统设计 分布式 
分布式概述 
分布式 集群 微服务 多线程 高并发 分布式系统设计理念 
分布式系统的目标与要素 分布式系统设计两大思路中心化和去中心化 分布式与集群的区别是什么 CAP定理 CAP定理的证明 BASE理论 BASE理论的核心思想 BASE理论三要素 1. 基本可用 2. 软状态 3. 最终一致性 数据结构与算法 
冒泡排序最高位确认最大 选择排序最低位选最小 快速排序 递归 二分查找 一致性Hash算法 
概述 一致性Hash算法原理 Java代码实现 
public class ConsistentHashT {/*** 节点的复制因子,实际节点个数 * numberOfReplicas  虚拟节点个数*/private final int numberOfReplicas;/*** 存储虚拟节点的hash值到真实节点的映射*/private final SortedMapInteger, T circle  new TreeMapInteger, T();public ConsistentHash(int numberOfReplicas, CollectionT nodes) {this.numberOfReplicas  numberOfReplicas;for (T node : nodes) {add(node);}}public void add(T node) {for (int i  0; i  numberOfReplicas; i) {// 对于一个实际机器节点 node, 对应 numberOfReplicas 个虚拟节点/** 不同的虚拟节点(i不同)有不同的hash值,但都对应同一个实际机器node* 虚拟node一般是均衡分布在环上的,数据存储在顺时针方向的虚拟node上*/String nodestr  node.toString()  i;int hashcode  nodestr.hashCode();System.out.println(hashcode:  hashcode);circle.put(hashcode, node);}}public void remove(T node) {for (int i  0; i  numberOfReplicas; i) {circle.remove((node.toString()  i).hashCode());}}/*** 获得一个最近的顺时针节点,根据给定的key 取Hash* 然后再取得顺时针方向上最近的一个虚拟节点对应的实际节点* 再从实际节点中取得 数据** param key* return*/public T get(Object key) {if (circle.isEmpty()) {return null;}// node 用String来表示,获得node在哈希环中的hashCodeint hash  key.hashCode();System.out.println(hashcode-----:  hash);//数据映射在两台虚拟机器所在环之间,就需要按顺时针方向寻找机器if (!circle.containsKey(hash)) {SortedMapInteger, T tailMap  circle.tailMap(hash);hash  tailMap.isEmpty() ? circle.firstKey() : tailMap.firstKey();}return circle.get(hash);}public long getSize() {return circle.size();}/*** 查看表示整个哈希环中各个虚拟节点位置*/public void testBalance() {//获得TreeMap中所有的KeySetInteger sets  circle.keySet();//将获得的Key集合排序SortedSetInteger sortedSets  new TreeSetInteger(sets);for (Integer hashCode : sortedSets) {System.out.println(hashCode);}System.out.println(----each location s distance are follows: ----);/** 查看相邻两个hashCode的差值*/IteratorInteger it  sortedSets.iterator();IteratorInteger it2  sortedSets.iterator();if (it2.hasNext()) {it2.next();}long keyPre, keyAfter;while (it.hasNext()  it2.hasNext()) {keyPre  it.next();keyAfter  it2.next();System.out.println(keyAfter - keyPre);}}public static void main(String[] args) {SetString nodes  new HashSetString();nodes.add(A);nodes.add(B);nodes.add(C);ConsistentHashString consistentHash  new ConsistentHashString(2, nodes);consistentHash.add(D);System.out.println(hash circle size:   consistentHash.getSize());System.out.println(location of each node are follows: );consistentHash.testBalance();String node  consistentHash.get(apple);System.out.println(node-----------:  node);}}转载链接https://blog.csdn.net/ThinkWon/article/details/105870730