加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

IT部门成功进行协同工作的秘诀

发布时间:2021-02-18 13:20:25 所属栏目:动态 来源:互联网
导读:如何在房子里出租房间 想象一下你拥有一座有10个房间的房子。你想通过在线住宿服务出租其中的三个房间。你有两个选择:发布广告,自己管理一切;雇人帮你做。 想省事儿,你决定雇佣一个租赁代理来处理这些事情。你与代理的合同规定: 在任何时候,都应该有三

如何在房子里出租房间

想象一下你拥有一座有10个房间的房子。你想通过在线住宿服务出租其中的三个房间。你有两个选择:发布广告,自己管理一切;雇人帮你做。

想省事儿,你决定雇佣一个租赁代理来处理这些事情。你与代理的合同规定:

  • ——在任何时候,都应该有三个房间出租给客人。
  • ——每个房间有两张床。
  • ——每次客人预订时,钥匙都需要在适当的时间交给客人。
  • ——每次客人离开时,房间都要打扫干净。
  • ——如果有太多的预订请求(例如在假日期间),那么可预订的房间可以从3个增加到10个。

就这样!你不用操什么心了,愿意的话可以不时地用电话联系代理了解情况。

如何管理租赁

代理雇佣员工来满足你的需求。假设有三个员工管理三个房间:一号房间预订后,员工一确保房间状况良好,提供钥匙,清洁服务等。

床是最基本的实体,因为它是客人过夜的最低要求。

代理将员工、房间、床位、预订等所有信息保存在笔记本上。代理还记录员工的休假时间,以便在某个员工生病或休假时将另一名员工分配到房间。代理根据需要使用电话联系员工。

当客人在线预订房间时,预订会被重定向到一个确保该房间准备就绪的员工。客人来了,拿到钥匙,晚上睡在床上,走的时候打扫房间,然后重复这个循环。

这听起来很简单,但这和Kubernetes有什么关系?

Kubernetes的类似之处

你通过雇用其他员工的代理实现自动化,这与Kubernetes对应用程序的操作类似。下面是它的工作原理。

假设你是一个应用程序开发者。类比出租房中最基本的实体是床,应用程序(满足用户需求的最基本实体)运行在容器中。应用程序的“房间”称为pod,它是应用程序运行的地方。


 

如上图所示,uid=666的用户发布了一条帖子(666的二进制表示为:1010011010):

  • 使用uid%16分库,决定这行数据要插入到哪个库中;
  • 分库基因是uid的最后4个bit,即1010;
  • 在生成tid时,先使用一种分布式ID生成算法生成前60bit(上图中绿色部分);
  • 将分库基因加入到tid的最后4个bit(上图中粉色部分);
  • 拼装成最终的64bit帖子tid(上图中蓝色部分);

这般,保证了同一个用户发布的所有帖子的tid,都落在同一个库上,tid的最后4个bit都相同,于是:

  • 通过uid%16能够定位到库;
  • 通过tid%16也能定位到库;

有人要问了,同一个uid发布的tid落在同一个库上,会不会出现数据不均衡?

只要uid是均衡的,每个用户发布的平均帖子数是均衡的,每个库的数据就是均衡的。

又有人要问了,最开始分16库,分库基因是4bit,未来要扩充成32库,分库基因变成了5bit,那怎么办?

需要提前做好容量预估,例如事先规划好5年内数据增长256库足够,就提前预留8bit基因。

总结

将以“帖子中心”为典型的“1对多”类业务,在架构上,采用元数据与索引数据分离的架构设计方法:

  • 帖子服务,元数据满足uid和tid的查询需求;
  • 搜索服务,索引数据满足复杂搜索寻求;

对于元数据的存储,在数据量较大的情况下,有三种常见的切分方法:

  • tid切分法,按照tid分库,同一个用户发布的帖子落在不同的库上,通过uid来查询要遍历所有库;
  • uid切分法,按照uid分库,同一个用户发布的帖子落在同一个库上,需要通过索引表或者缓存来记录tid与uid的映射关系,通过tid来查询时,先查到uid,再通过uid定位库;
  • 基因法,按照uid分库,在生成tid里加入uid上的分库基因,保证通过uid和tid都能直接定位到库;


(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!