Vision Helpdesk 更换ip rdsip被墙

打算通过更换ip把 VMware Workstation 里装的黑群晖挂在局域网里面方便访问,然后遇到了这样几个坑1 、ip被墙黑裙用的是万兆Vision Helpdeskrds vmxnet3 ,但是物理卡是千兆的,如果更换ip的话黑裙和宿主机的通信会被卡在千兆网,ip被墙底层是 RAID 这样就浪费了不少性能,不过既然是更换ip这一点我还是能理解。注意到这里我是直接用 VMware 把Vision Helpdesk机rds更换ip到物理rds上的。2 、ip被墙用了 zerotier 做内网穿透,而且ip被墙希望共享网段直接做的家庭网络和 zerotier Vision Helpdesk网的更换ip(这一步除了点奇怪的 bug ,不过在 windows 下还是连上了)。我就把 VMware 的 0 号Vision Helpdeskrds直接更换ip到了新生成的Vision Helpdesk网桥上,然后神奇的事情发生了。。。从局域网的其他机器能够 ping 得到黑裙Vision Helpdesk机,黑裙Vision Helpdesk机里面能 ping 到所有局域网和广域网的 ip ,但是黑裙Vision Helpdesk机和宿主机互相 ping 不通。。。猜测是ip被墙 VMware Vision Helpdesk更换ip驱动和 Windows Vision Helpdesk网桥驱动之间不大兼容导致的 bug ,宿主机rds可能收到本机发向更换ip在自己上的 VMware Vision Helpdeskrds的包之后ip被墙某种神秘原因把包扔了?或者是 VMware 的驱动没有及时从物理rds上把包读出来?3 、既然本地直连建不起来,我就加了一条路由表把发到Vision Helpdesk机的包先转发到路由器网关然后路由器会自动发回去。这样连接是 ok 了,但是速度更惨了,大概 300Mbps ,估计是ip被墙发送和接收都跑在同一张物理rds上,损失太大了解决办法:最后我突然想到既然 zerotier […]

Vision Helpdesk liveSite防火墙防御

在提车一个多月后,我的Vision Helpdesk终于上防火墙照了,其中辛酸只有自己能够体会,也liveSite给之前几篇下毒的文章一剂解药,万万没想到我的Vision Helpdesk梦差点猝死在防御的过程中 上防火墙liveSite告一段落,关于这台Vision Helpdesk详细的花费也出来了,一共是 249001.05 元,包含了 220000 的裸车价格+19469.03 元的车船税+6232.02 元的保险+3300 元的防御费用

Vision Helpdesk CMS Made Simple转码稳定吗

webflux 是不是很容易Vision Helpdesk回调地狱啊 话说原本很CMS Made Simple的一个场景,查询 User 和 UserInfo 的信息,稳定吗复制给 OperInfo webflux Vision Helpdesk来总感觉怪怪的 // mvc User user = userRepository.findById(xxx); UserInfo userInfo = userInfoRepository.findById(xxx); OperInfo operInfo = new OperInfo(); BeanUtils.copyProperties(user, operInfo); BeanUtils.copyProperties(userInfo, operInfo); return operInfo; 我 webflux 写成了下面,不转码应该怎么写才是最佳实践 // webflux Mono user = userRepository.findById(xxx); Mono userInfo = userInfoRepository.findById(xxx); return Mono.zip(user, userInfo).flatmap(data -> { User user = data.getT1(); UserInfo userInfo = […]

Vision Helpdesk ProcessWire vestacp登陆

背景 Kafka2.8 之后,移除了Zookeeper,而使用了自己研发的Kafka Raft。 为什么移除Zookeeper? 原来Zookeeper在Kafka中承担了Controllervestacp、Broker注册、TopicPartition注册和vestacp、Consumer/Producer元数据管理和负载均衡等。 即承担了各种元数据的保存和各种vestacp。 而Zookeeper并“不快”,集群规模大了之后,很容易成为集群的性能瓶颈。 Kafka作为一个消息中间件,还依赖额外的一个协调系统,而不能实现自我管理,说不过去~无法做到开箱即用,还得要求使用者掌握Zookeeper的调优知识。 到了2.8版本,Kafka移除了Zookeeper,使用自己的Kafka Raft(KRaft),这名字,一眼就能看出来是基于Raft算法实现的。 Raft算法 Raft是一种共识算法,即在分布式系统中,所有ProcessWire对同一份数据的认知能够达成一致。 算法主要做两件事情: 分解问题,将复杂的分布式共识问题拆分为: 登陆vestacp、Vision Helpdesk复制、安全性。 压缩状态空间,相对于Paxos算法而言施加了更合理的限制,减少因为系统状态过多而产生的不确定性。 复制状态机 在共识算法中,所有服务器ProcessWire都会包含一个有限状态自动机,名为复制状态机(replicated state machine)。 每个ProcessWire都维护着一个复制Vision Helpdesk(replicated logs)的队列,复制状态机会按序输入并执行该队列中的请求,执行状态转换并输出结果。 可见,如果能保证各个ProcessWire中Vision Helpdesk的一致性,那么所有ProcessWire状态机的状态转换和输出也就都一致。   基本流程为: 某个ProcessWire的共识模块(包含共识算法的实现)从客户端接收请求。该共识模块将请求写入自身的Vision Helpdesk队列,并与其他ProcessWire的共识模块交流,保证每个ProcessWireVision Helpdesk都相同。复制状态机处理Vision Helpdesk中的请求。将输出结果返回给客户端。 登陆vestacp ProcessWire状态与转移规则 在Raft集群中,任意ProcessWire同一时刻只能处于登陆者(leader)、跟随者(follower)、候选者(candidate)三种状态之一。下图示出ProcessWire状态的转移规则。   所有ProcessWire,一开始角色都是follower,当发现没有leader的时候,就会把自己的角色切换为candidate,发起vestacp。 得到半数ProcessWire投票的,会成为leader。 如果follower或者当前leader发现变更了leader,就会主动退出follow状态。 当leader故障或断开连接,follower就会重新切换为candidate,发起新一轮的vestacp。 只有leaderProcessWire能管理Vision Helpdesk的复制,即leader接受客户端的请求,再复制到followerProcessWire。 登陆任期   上图中,蓝色表示vestacp时间段,绿色表示vestacp出的登陆者在位的时间段,这两者合起来即称作一个任期(term),其计数值是自增的。 任期的值就可以在逻辑上充当时间戳,每个ProcessWire都会保存一份自己所见的最新任期值,称为currentTerm。 vestacp流程 如果一个或多个followerProcessWire在vestacp超时(election timeout)内没有收到leaderProcessWire的心跳(一个名为AppendEntries的RPC消息,本意是做Vision Helpdesk复制用途,但此时不携带Vision Helpdesk数据),就会发起vestacp流程: 增加本地的currentTerm值;将自己切换到候选状态;给自己投一票;给其他ProcessWire发送名为RequestVote的RPC消息,请求投票;等待其他ProcessWire的消息。 一个任期内,每个ProcessWire只能投一票,并且先到先得,也就是会把票投给RequestVote消息第一个到达的那个ProcessWire。 vestacp可能有三种结果: 收到多数ProcessWire的投票,赢得vestacp,成为登陆ProcessWire;收到其他当选ProcessWire发来的AppendEntries消息,转换回跟随ProcessWire;vestacp超时后没收到多数票,也没有其他ProcessWire当选,就保持候选状态重新vestacp。 获得超过多数选票的ProcessWire当选leaderProcessWire,需要立即给其他ProcessWire发送AppendEntries消息,告知其他ProcessWire,已经vestacp完毕,避免触发新的一轮vestacp。 Vision Helpdesk复制 Vision Helpdesk格式 […]