分布式理论学习(六)

116 阅读2分钟

「这是我参与2022首次更文挑战的第20天,活动详情查看:2022首次更文挑战

  • zookeeper 注册中心

  • dubbo 服务发现和调用

  • docker

    docker images

    docker pull 下载容器

    docker run -di --name=xxx -p xxx 制作容器

    docker start 哈希码

    docker ps -a 查看启动的容器

  • springCloud

    • 注解:

      @restController

      @CrossOrigin 给不同微服务之间调用的

      @RequestMapping

      @RestControllerAdvice AOP增强 搭配下面的方法:@ExceptionHandller

    • JPA的东西:

      @Entity @table(name = '')指向一个数据库的表PO类

      dao层Extends JPArepository

    • zuul hystix fegin eruka

  • 一致性算法:

    为了解决数据一致性,尤其是分布式下分区,脑类情况下(不同机房)某一个区崩溃了,也还是能够保证数据一致性。

    Paxos、raft、zab

    • paxos

      提议者proposer:提出提案

      决策者acceptor:参与决策,接受提议者的提案,如果这个提案获得大多数决策者同意,那么就称该提案被批准。

      最终决策学习者leaner

    • 一致性hash算法:

      原来我们要保存一张图片,会把这个图片进行hash然后,对服务器的数量进行取模,确定落到哪台机上。但是如果我们增加了一台服务器,取模的数字变了,原来落在服务器A的照片就跑到B去了,如果是缓存,查找的时候就去B上去找了,而B是没有的,就需要去后台找,导致缓存雪崩。

      哈希一直算法就是有一个哈希换长度是2^32,首先制定好各个服务器所在的位置,然后我们计算完要查询或者保存的文件的hash,之后对2^32取模,确定他在什么位置,顺时针到下一个服务器,这个服务器就是他要去找的服务器。

      这种样式可以减少很大一部分增加了服务器(增加了一台服务器,就指定在环上的一个地方),图片保存的服务器位置变了的情况。

      D是新增加的节点,也就是Cd之间的文件会重新落到不同服务器,但是其他的并不会。

      在这里插入图片描述 其实你也看出来,他的最大问题就是如果节点数量不够,分布不均会导致hash倾斜,这样要重新确定服务器的数量还是很多。办法就是,创建更多的节点,当你的服务器数量并不是很多的时候,你可以创建虚拟映射节点。