当前位置: 首页 > news >正文

常用的网站开发技术有哪几种大型淘宝客返利网站建设

常用的网站开发技术有哪几种,大型淘宝客返利网站建设,做电子画册的网站,动画制作软件flash自己定制负载均衡常见策略 一、前言随机#xff08;Random#xff09;策略的实现轮询#xff08;Round Robin#xff09;策略的实现哈希#xff08;Hash#xff09;策略 一、前言 大伙肯定知道#xff0c;在分布式开发中#xff0c;目前使用较多的注册中心有以下几个Random策略的实现轮询Round Robin策略的实现哈希Hash策略 一、前言 大伙肯定知道在分布式开发中目前使用较多的注册中心有以下几个 Apache ZookeeperNetflix EurekaAlibaba Nacos 由于 Zookeeper 在面对高频次的服务注册和发现操作可能会一定的性能损耗等原因搞得现在好多人都不用 Zookeeper 当做注册中心了。但它也提供了强一致性和高可靠性的特性也没有被淘汰。 Zookeeper 本身并没有提供现成的服务发现功能它更专注于分布式协调的能力。所以在使用 Zookeeper 作为注册中心时需要自己在客户端实现服务的发现和负载均衡的逻辑。当然也可以去整合相关组件简化开发过程。 常见的负载均衡有以下三种 随机random策略轮询round robin策略哈希hash策略 下面的话以寻注册中心的服务地址的需求来去对三种策略进行实现。 // 这是对应的策略接口 public interface RouteHandle {// 参数1服务地址集合// 参数2对应的key我这里使用的是userId这个结合自身项目需求String routeServer(ListString values, String key);}随机Random策略的实现 /*** 随机的负载均衡*/ public class RandomHandle implements RouteHandle {Overridepublic String routeServer(ListString values, String key) {int size values.size();if (size 0) {throw new ApplicationException(UserErrorCode.SERVER_NOT_AVAILABLE);}// 去获取一个小于size的索引值// 你可以简单理解随机整型数sizeint index ThreadLocalRandom.current().nextInt(size);return values.get(index);} }轮询Round Robin策略的实现 轮询策略即将请求次数和总的服务树取模然后得出索引去得到服务信息。 /*** 轮询策略*/ public class LoopHandle implements RouteHandle {private AtomicLong index new AtomicLong();Overridepublic String routeServer(ListString values, String key) {int size values.size();if (size 0) {throw new ApplicationException(UserErrorCode.SERVER_NOT_AVAILABLE);}Long l index.incrementAndGet() % size;if (l 0) {index.set(0L);l 0L;}return values.get(l.intValue());} }哈希Hash策略 这里指的 Hash 策略一般指的是一次性 Hash 算法实现的策略。传统的 hash 在添加或删除一个节点的时候会出现缓存失效失效缓存比例为m/(m1)传统hash一般是将资源的 hashcode % table.size()服务数得到节点索引然后将访问服务这样的话当增加一个节点的时候除了hashcode为1的时候其对应的服务不变其他都缓存失效0就不算它了近似的一个值吧也就是近于缓存失效比例为 m/m1。 传统的hash造成的缓存失效很容易就把服务给搞蹦了因为有大量资源访问不到的请求嘛。 然后就有了一致性hash算法它将映射集合规定为0~2^32-1的范围的环首尾相连。 将节点放到注册到环中然后根据资源的hash去顺时针寻其节点服务。 注意当注册节点的时候也有可能会出现hash偏斜问题即节点都被放到了环的一边使得资源大部分都使用的是俩边的节点这个时候我们需要将每个服务节点设置一些虚拟节点注册到环上这样的话每个服务节点近似均衡的分配给资源了。 这里参考的文献 一致性hash算法讲解——Java实现 下面对 hash 策略进行实现下面是使用 TreeMap 对一次性hash算法进行实现的这是因为它底层是使用 红黑树 进行实现的有序且添加起来比起平衡二叉树这样的不用老左旋右旋。主要是因为有序对闭环的顺时针有序选节点是一致的所以用 TreeMap 实现它比较多。当然也可以自身定义策略去实现。 /*** 使用 TreeMap 实现一致性hash*/ public class TreeMapConsistentHash extends AbstractConsistentHash {private TreeMapLong, String treeMap new TreeMap();private static final int NODE_SIZE 2; // 每个节点再注册虚拟节点的数量Overrideprotected void add(long key, String value) {for (int i 0; i NODE_SIZE; i) {treeMap.put(super.hash(node key i), value);}treeMap.put(key, value);}Overrideprotected String getFirstNodeValue(String value) {Long hash super.hash(value);SortedMapLong, String last treeMap.tailMap(hash);if(!last.isEmpty()){return last.get(last.firstKey());}if(treeMap.size() 0){throw new ApplicationException(UserErrorCode.SERVER_NOT_AVAILABLE);}return treeMap.firstEntry().getValue();}Overrideprotected void processBefore() {treeMap.clear(); // 清空是因为可能出现添加或删除服务的现象} }重点就是 add 和 getFirstNodeValue 方法至于父类其他方法的实现不影响理解这个策略。
http://www.zqtcl.cn/news/993925/

相关文章:

  • 绿色做环保网站的好处网易企业邮箱登录登录入口
  • 卯兔科技网站建设网站验收时项目建设总结报告
  • 触摸网站手机wordpress建立模板下载
  • 做暧在线观看网站网站建设与管理工资
  • 横岗网站建设无锡网站seo外包
  • 房管局 网站做房查学做网站推广要多久时间
  • 电脑网站开发者模式田园综合体建设网站
  • 南宁广告公司网站建设自适应网站建设模板
  • 做北京电梯招标的网站衡阳县专业做淘宝网站
  • 建设网站的语言wordpress主题自定义添加后台设置
  • 制造动漫网站开发目的四川酒店网站建设
  • 中国城市建设研究院深圳分院网站广西圣泰建设工程有限公司网站
  • 网站建设的方法有哪些内容wordpress展示插件
  • 北京手机网站制作公司wordpress 简易教程
  • 手机网站建站公司有哪些搜索引擎收录
  • 仿同程网 连锁酒店 网站模板学校网站建设用哪个系统
  • 教做甜品的网站删除wordpress主题字体载入
  • 做酒店网站所用到的算法wordpress侧栏导航
  • 做漫画的网站有哪些信息门户网站怎么做
  • 九江集团网站建设公司信誉好的广州做网站
  • 福州网站建设服务平台今天发生的重大新闻
  • 招聘信息网搜索引擎优化代理
  • 免费的企业网站cms纯文字logo在线制作
  • 深圳电器公司官网网站建设 网站优化
  • 大连 网站建设昆明建设网站哪家好
  • 网站首页设计及运行效果网站建设与管理任务分工
  • 自己建设论坛网站家用电脑搭建服务器
  • 做网站上海公司企业网站内页
  • 手机网站seo山东网站建设网
  • 溧阳 招网站开发wordpress 占内存