精华内容
下载资源
问答
  • 但是,项目运行到一定时间后(大概10来天左右),链路channel就处于一种inactive的状态,导致客户端与服务端无法正常接收发送消息。重启netty server 后,链路又正常连接,又过一端时间后,又出现了上诉的问题。有哪...
  • 创建全新的服务副本,通过数据双写保持新旧服务状态一致,逐步用新服务取代旧服务。 在闲鱼搜索的架构中,搜索引擎本身提供的虽然是无状态服务,但是引擎内部保存了用于处理索引分区,增量进度的各种状态。最终使用...

    背景

    在互联网行业,线上服务的升级更新可谓家常便饭。据统计,在过去的一个季度中闲鱼工程师们执行了千余次发布,总计更新的代码数量超过百万行。

    这些发布中,有一些可能只更新了几行代码,而有一些可能执行了整个集群的迁移升级。而无论这些变更的影响面有多大,我们都必须保证线上服务的可用性,用户无感知。本文将以闲鱼搜索服务的迁移升级为例,向大家介绍其背后的技术方案。

    闲鱼搜索服务基本架构

    闲鱼的底层搜索服务由查询规划服务 Search Planner、查询理解服务 Query Planner、打分排序服务 Rank Service 以及搜索引擎 Heaven Ask 3 所组成。它们之间的相互调用关系如下图所示:

    可以看到,整个搜索服务是由多个相互独立的微服务所构成的。不同的微服务之间相互隔离,通过预先向外暴露的接口提供服务。所有的微服务最终通过 Search Planner 收口,对外提供统一、完整的搜索能力。

    在底层搜索服务之上,还有业务逻辑层和接入网关层,具体架构在此不再赘述。用户的搜索请求先通过网关层转发给逻辑层处理,再向底层搜索服务发起搜索请求。这条请求链上包含数十个集群,调用深度达到两位数,整个过程中提供服务的服务器数量可能有成百上千。

    对于这样一个复杂的系统,升级过程显然无法一蹴而就。好消息是各个微服务之间合理的解耦合给升级工作带来了很大的便利,有效避免牵一发动全身而导致无从下手,使我们可以分门别类地处理升级问题。

    • 注1:Search Planner 是一个基于函数式、服务化、可视化、并行化开发框架所构建的搜索服务网关层。

    • 注2:Query Planner 的主要作用是理解用户输入,然后对搜索词进行算法优化。最终获得更好的搜索召回结果。

    • 注3:Rank Service 是实时打分排序服务,它的作用是根据多维度的特征对搜素引擎召回的海选结果进行算法打分。分数越高的商品就越有机会出现在搜索结果的前列。

    • 注4:Heaven Ask 3 (问天3)是阿里巴巴研发的一款稳定高效、功能强大的搜索引擎。为阿里集团包括淘宝、天猫在内的核心业务提供搜索服务支持。

    保持兼容

    开始升级之前,我们首先需要确认被升级的服务是否保持了向前与向后兼容性。保持兼容不仅减少了工作量,也减少了升级所导致的故障风险。

    为了尽量避免升级导致的不兼容,我们可以总结一些开发原则:

    • 远程过程调用(RPC)需要能够忽略未知参数,并且允许缺失参数。

    • 如果需要删除已有参数,需要与所有依赖方确认。可以先将参数标记为 Deprecated 而不是直接移除。

    • 使用参数时,区分缺省值和缺失值。

    • 如果接口无法保持兼容,则创建新接口代替旧接口。不要破坏旧接口的兼容性。

    在升级时,先升级那些没有外部依赖的服务。等到被依赖方升级完毕之后,再去升级依赖方。确定了每一个服务的升级顺序之后,我们再根据服务的实际情况确定升级方案。

    无状态服务升级

    正式进入升级流程,我们首先关注搜索链路中的被设计成无状态服务的部分,例如用于处理业务逻辑的 Java 微服务、用于处理查询逻辑的 Search Planner 等。它们的共同特点是,每个请求处理完毕之后,关于该次请求的资源即被释放。不同的请求之间没有相互依赖和时序要求。同一个无状态服务内不同的机器节点是完全等价的。

    无状态服务的特点使得它们很容易通过水平扩展来动态扩缩容。因此在保证兼容的前提下,它们的升级流程相对通用并且简单:

    1. 根据服务最小可用度决定分批数。

    2. 选取一批待更新的容器,停止服务。

    3. 批量升级容器、更新镜像。

    4. 等待这一批容器全部恢复服务后,继续更新下一批容器。

    一般来说我们可以通过把状态存储在消息队列、缓存、数据库或者其它外部中间件中来达成服务的无状态。把服务设计成无状态的好处显而易见:升级时不需要分配额外的机器资源,升级速度快,变更代价小,因而可以支持频繁的迭代更新。但是,这种设计也给状态访问和更新带来了额外的开销,在某些性能敏感的场合可能是不适用的。

    有状态服务升级

    我们继续关注有状态的部分。有状态服务升级的麻烦之处在于,状态的存储、恢复、转移往往由服务根据实际情况单独设计(或者根本没有设计),因而升级较为困难。我们可以简单列举一些相对通用的有状态服务升级可选方案。

    • 接入层网关提供热更新的能力(例如 Nginx),把状态的保持隔离在接入层内部。适合需要长时间保持状态的场景。

    • 渐进更新,新请求逐步切换到新服务上处理,旧服务处理完存量请求后销毁。适合短时间保持状态的场景(例如游戏服务、实时音视频通讯服务)。

    • 创建全新的服务副本,通过数据双写保持新旧服务状态一致,逐步用新服务取代旧服务。

    在闲鱼搜索的架构中,搜索引擎本身提供的虽然是无状态服务,但是引擎内部保存了用于处理索引分区,增量进度的各种状态。最终使用的升级方案如下:

    1. 使用新版本镜像创建一个完全独立的新引擎。

    2. 新旧引擎全量数据同步。

    3. 增量数据同时向新旧引擎发送。

    4. 新引擎上线,逐步扩大承接流量的比例。

    5. 旧引擎不再承接流量后下线。

    和无状态服务的升级相比,这种方式不仅额外使用了一倍的机器资源,而且每次升级都需要做一次复杂而繁琐的服务配置。如果服务本身不是无状态的,还需要自行编码实现切流逻辑,保证同一个用户的请求能够落到同一个集群上。整体升级成本较为昂贵,只适合更新频率非常低的服务。如果服务的更新频率较高,则应该根据服务的实际情况设计实现升级成本更低的方案。

    服务发现

    在升级过程中,服务发现机制承担着重要作用。它为我们提供了以下功能:

    • 保证分布式一致性

    • 服务优雅上下线

    • 负载均衡

    • 流量调控与请求降级

    • 同机房优先调度

    • 跨机房容灾调度

    服务发现是流量调控的总阀门。一个成熟稳定的服务发现机制不仅可以有效避免发布导致的请求成功率抖动,也为发生异常时快速回滚止血提供了保证。

    风险防控

    对搜索链路的每一个集群按照依赖顺序进行服务升级、挂载、切流无疑是高危操作,稍有不慎就可能引起线上故障。因此,我们按照阿里巴巴安全生产三板斧原则对升级流程进行了梳理:

    • 可监控:重要链路的重要指标均提前保证监控覆盖。例如请求总量,请求成功率,请求响应时长等等。确保重大问题可以通过监控指标及时发现。

    • 可灰度:任何变更都不允许未经灰度直接全量发布到线上。对于无状态服务,我们一般通过调整服务发现中的权重或者调整机器比例来完成灰度放量。对于部分不能随机灰度的情形,我们设计了按用户分批放量的机制。

    • 可回滚:变更系统提供了通用的一键回滚能力,但并非是最快的方式。在很多情况下,我们在执行变更前就做好了把待更新的机器或集群在服务发现上重新挂载或移除的准备,从问题发现到恢复的时间基本是秒级的。

    总结

    综上所述,复杂系统不停机升级的原则和流程可以概括如下:

    1. 服务间解耦与隔离,确保单次升级的范围和影响可控。

    2. 根据兼容性和依赖关系决定服务的升级顺序。

    3. 根据服务是否无状态决定升级方式。

    4. 提前准备好监控和回滚方案,灰度升级。

    闲鱼搜索服务升级的整个执行过程经历了两个月的时间。这其中我们既保证了用户无感知,线上服务稳定运行,也保证了与我们合作开发的算法团队以及其他工程团队的正常开发不受影响。

    在实际执行的过程中,我们还遇到了很多细节上的问题。例如创建新服务时未能提前合理预估预算需求,导致升级过程中不断挪借预算,拆东墙补西墙。又比如异地多活部署带来的延迟问题迫使服务保持单元化,给升级过程中的流量调控工作带来了很多挑战。这些暴露的问题也为我们继续完善架构和方案提供了指引。

    希望本次的分享能够给大家带来一些帮助和启发。

    展开全文
  • 公司分配的工作是监控几十台小型电脑的运行情况,给了一个WEB后台,后台有很多选项,可以查看小型机的状态,因为机器刚刚上线运行,很不稳定所以要不时就去网页上刷新,这点一下那里点一下,确定下线机器的IP,虽然

    BTW:代码都是网上找来自己修改的,仅用于自己做记录,请轻喷~谢谢。(那个,这些代码很乱,后来我把他分块写在另外一个类里面就好多了,需要的同学加我QQ414236430

    先说些废话,终于有了一份工作,是做运维,虽然和自己以前当程序员的目标有点距离,但是既然做一个工作就要把它做好,运维也不好做啊。公司分配的工作是监控几十台小型电脑的运行情况,给了一个WEB后台,后台有很多选项,可以查看小型机的状态,因为机器刚刚上线运行,很不稳定所以要不时就去网页上刷新,这点一下那里点一下,确定下线机器的IP,虽然后台都能直接显示出来但是我还是觉得麻烦,索性自己写一个。

    首先要解决的问题就是登录的问题,其实可以每次请求都带上登录帐号和密码,但是由于是小公司,我需要的程序每几秒就要请求一次,我怕服务器受不了到时候来找我,所以我想只使用一次账户名和密码登录之后然后每次在请求页面的时候带一个COOKIES这样就能保持会话了- -至少我是这么想的,也不知道对不对,百度了一下发现jsoup好用,这是一个html的解析器,可以网上找来导入就行了。里面提供了保持会话状态等等一系列的方法,所以拿来用了。

    Connection.Response res = Jsoup.connect("http://example.html")
    			    .data("username", "此处填登录帐号", "password", "登录密码")//
    			    .method(Method.POST)
    			    .execute();
                                 final String sessionId = res.cookie("此处填写需要登录网站的session cookie的名字"); 
    
                                 Timer mytime=new Timer();         /*因为我需要不断地请求页面所以我加了一个延时,每10s请求一次。网上随便找到就拿来用了,应该是线程的什么,要重复的代码要写在run里,还要抛出一个异常 */
    <span style="white-space:pre">		</span>             mytime.schedule(new TimerTask()
    <span style="white-space:pre">		</span>                               {
                                                                      public void run()
    <span style="white-space:pre">		</span>                                              {try {
    <span style="white-space:pre">					</span>                                                 Document objectDoc = Jsoup.connect("http://example.html/example<span style="font-family: Arial, Helvetica, sans-serif;">")</span>
    <span style="white-space:pre">			</span>                                 .cookie("此<span style="font-family: Arial, Helvetica, sans-serif;">处填写需要登录网站的session cookie的名字</span>", sessionId)
    <span style="white-space:pre">						</span>         .get();
    <span style="white-space:pre">				</span>                         .get();
    
                                                  )
    <span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal; background-color: rgb(255, 255, 255);"></span></span>                                                                                           } catch (IOException e) {e.printStackTrace();}
    <span style="white-space:pre">		</span>                                                       } 
    <span style="white-space:pre">		</span>                                },1000, 10000);
    基本上就是这样了,然后objectdoc很容易转换成string类型,里面的网页的源码,然后使用正则呀什么的自己处理就行了,拿出自己想要的信息。

    虽然写得很简陋我自己都看不下去,但是还是希望帮到一些同学,万一呢-,-

    展开全文
  • 状态

    千次阅读 2010-04-04 20:48:00
    使用得当的状态机将有助于保持用户界面逻辑和应用逻辑的组织和可维护性。这使得代码有更多的灵活性和稳定性,不仅仅是对移动应用、对其他所有的应用开发都是如此。因为移动应用需要有效的和确定性的管理屏幕空间资源...
    1、介绍

    状态机对构建应用是一个非常有用的概念。使用得当的状态机将有助于保持用户界面 逻辑和应用逻辑的组织和可维护性。这使得代码有更多的灵活性和稳定性,不仅仅是对移动应用、对其他所有的应用开发都是如此。因为移动应用需要有效的和确定 性的管理屏幕空间资源和系统资源,状态机在移动软件开发中更加有用。状态机可以用来管理在任何给定时间哪些资源组保存在内存中,以及什么用户界面元素占据 移动设备屏幕的不同区域。对这些任务来说,状态机是理想的。

    展开全文
  • 管理者如何保持团队稳定

    千次阅读 2013-12-14 20:37:56
    先不说最终比分如何,微博上一条神回复我觉得挺搞笑但又挺有感触: ‘足球比赛,百度VS 360 是百度老员工和百度新员工的比赛’ 事实其实也是这样,和我一起08年入职还在公司的员工真心不多。每次我刚入职所在的...

    前段时间,各大互联网公司间举行了一次‘互联网公司足球大赛’,其中一场比赛是百度对战360, 百度有最帅气年轻的VP李明远参与的球队, 最终于。。。。先不说最终比分如何,微博上一条神回复让我觉得挺搞笑但又挺有感触: ‘足球比赛,百度VS 360  是百度老员工和百度新员工的比赛

    事实其实也是这样,和我一起08年入职还在公司的员工真心不多。每次我刚入职所在的小组的10多个同事聚会,提到我还在公司,他们都会露出惊讶的表情: 怎么还在百度!

    的确, 我一直都惊讶百度的离职率是如此之高, 但后来了解到其他互联网公司也差不多, 甚至更高,频繁地跳槽似乎已经成为一种常态。 但无论如何,对于一个公司来说,过高的离职率本身就是不正常的,作为管理者,就应该通过各种手段降低离职率,而不是因为行业如此,就任其为之。

    以下就通过我个人在百度的经历,经验以及教训, 以及公司中的培训,说下我碰到的员工离职的原因, 以及在管理者能够操作的范围内,如何挽留员工,保持团队的稳定性及士气。

    总结下来,主要有两个因素影响员工去留: 职业发展和薪水,即前途和钱途,员工的离职,基本上都是因为这两方面的原因

    职业发展有可以细分为团队的发展和个人的发展。不恰当但形象的例子,我们可以将团队的发展看成是股市的大盘而个人发展看成是具体的股票, 大盘疯涨的时候,个股一般都会水涨船高,大盘低迷的时候,很少有股票能够表现惊人。 例如在一个公司作为战略重点的部分会是组,得到的资源更多,更容易出成绩,而一些边缘部门或组,事实上就不太受重视,也没有太多资源投入,发展很慢,缺少核心技术,员工看不到未来。薪水则是马斯洛论述的底层需求,高薪水是高物质生活的象征,而且帝都生活压力也挺大的, 所以这个因素也会对员工的去留取决定性作用。

    让员工对团队的认可和信心

    员工都是在具体团队中工作, 团队做的事,方向就是这个员工的舞台,同样舞蹈功底的人,在人流涌动的中关村地铁站口与在满座的国家大剧院 跳同样的舞, 获得的关注及成就感肯定不一样;或者用另一句通俗的话讲: 台风来的时候,猪都能上天。 当然搞IT的都不是猪,大家都很聪明,团队的核心价值及接下来要做的事是否能得到员工认可就至关重要, 如果得到认可,员工就会认为自己是在国家大剧院跳舞,自豪感,满足感油然而生;而如果员工悲观地觉得自己只是个中关村街边的流浪艺人, 那么他会对未来悲观,迷茫,也许之后他会好好想想是不是要找另一个个像国家大剧院的舞台。

    另外很重要的一点,就是就是leader是否能给员工信心,一直都听说马云初创的时候,很多人都一直跟着马云,就是信任马云,这个leader就像是古代战场上的将军一样,如果有一个自己佩服的老大,那就算团队,业务有较大的调整变动,但下边的人仍然有信心跟着老大,充满信心;而如果团队中这样的人离开, 那么员工也可能会因为看不清未来而选择离职。所以有时留住团队留住领军人物,就显得至关重要了。

    非常现实的事实: 前些天老大说我们优化团队为支持无线的后续发展会进行调整以更高效地支持无线变现,正当团队热火朝天地组织各种讨论, 各种规划的时候,突然得到消息,后续计划有变, 团队会被整体划到另外一个部门,当时团队里知道这个消息的人真是惊呆了,与老大沟通了半天我也没感觉到团队划出去的好处,怎么看都是效率变低,当时真的立马就有一丝想离职的冲动。。。

    另外对一些级别比较高的员工,有时也会因为对公司,团队一些做事的方向,理念,思路及做事方式不认可,而去寻找新的环境。

    解决之道:明确团队方向规划,认可团队价值

    需要让员工了解团队的价值, 让员工觉得自己是在为一项事业而工作,而不是简单的搬砖头,螺丝钉。

    管理者需要明确团队的定位及核心价值,在此基础上制定明确的roadmap,并将这些信息充分向下传达并保证大家都能认同这些信息。 如果员工有内容不认同, 则需要详细了解是因为什么原因导致不认同,并及时使用有针对性的措施或是及时调整。同时要时时为员工打气,让其认识到团队的使命感, 自己的重要性。员工认可团队的核心价值及roadmap后,即使碰到风浪,他也会像乘坐在大船中一样,知道远航的目标。

    当然,有时候明确团队方向这个问题, 受到管理者所在大环境的限制,相当于管理者所在的大环境决定了员工所能上升到的天花板。例如有些部门喜欢不断提出(或是从其他部门抢夺)一些新的项目,并且将其规划得很大重点去推,在项目推进的过程中,员工会感觉到自己做的事前途无量,上升空间很大。当然这种方式也有一个风险,就是更新更受关注的项目出现的时候, 资源很容易就被投到新项目。做原有项目的人会觉得被冷落而有一种失落感。 还有些部门是守着自己的疆土,将某一领域做深, 在自己土地上还能深挖的时候,员工会觉得自己能学到很多东西,能有成长, 但当整个领域已经达到一定高度,技术带来的提升不明显,而管理者提前没有去开发新领域时, 就可能出现问题。

    相对于所处大环境决定的员工发展的天花板,员工管理者帮助员工制定的个人规划,则相当于在既定的天花板的事实上,如何让员工更接近这个天花板。管理者可以在这块有更多的发挥, 或者说也只能在这块上多做一些事。

    让员工对自己发展有信心

    以前一个同事的跟我说过‘自己只是公司微不足道的一小部分,对对于自己却是全部’,很多时候我们会谈公司的使命,价值观, 这个的确很重要,因为没有使命,没有明确价值观的公司很容易走偏,这些东西在将员工凝聚在一起时起了不可估量的作用,但很多时候员工更关注自己的发展,如果员工觉得自己的发展出现了瓶颈,看不清未来,且这种状态持续一段时间,那么他离职的可能性也非常高。

    我们可以将员工对个人发展的认知过程分为: 向前看和向两边看两种方式。

    向前看, 是指员工分析自己的个人发展,是否认可自己在团队,公司的发展及前景。 包括员工想在这个公司,这个团队做怎样的事,获得什么提升,有怎样的提升。

    例如员工对照自己在团队中所负责的工作,感觉到这个工作规划比较清晰, 且在接下来的较长时间, 这个方向可以长时间投入且有较大的提升, 那么这个员工肯定干劲十足全情投入;反过来,如果这个员工觉得以同样的状态方式, 在接下来一两年都不会有太大长进, 那除非他就是想在公司养老,否则他肯定会考虑动一动,找一个自己认可的方向,团队或是公司。

    另外员工如果感觉到自己的老大不重视自己,或是不重视自己所做的工作,员工也会比较沮丧,这也会滋生员工离职的想法。  这些是员工对自己发展的向前看的方式。

    相对地,向两边看,是指员工与公司其他员工,或是公司,部门内外同行,同事的比较,也许员工在公司里的晋升并不慢,但如果员工看到觉得和自己水平差不多的员工发展得更好更快, 那么他也会产生一种不公平的感觉。比如我之前的一次经历: 经理告诉我没有晋升,我很沮丧, 他花了很多时间和我沟通,总算让我心情平静了一些,但当晋升结果公布时,平常由我带着做项目的员工居然晋升,界别比我高时,我出离愤怒了, 当时立马产生离职的念头。 后来经理又各种安抚。 这也或多或少有点不患寡而患不均的味道。

    解决之道: 给空间,重认可,多指导

    给空间: 我们经常会说一个贬义词(至少很多时候我觉得是个贬义词): 画大饼。  但画大饼真的比较重要, 而且很多时候, 没有画的大饼, 就不会有真正的大饼。 画大饼, 其实就是为员工描绘了关于他自己的一个美好的远景。 当然, 只画大饼远远不够,也许画大饼的时候员工的确能够对未来有美好的憧憬,不过一旦员工发现大饼是不能做成的,那后果会比较严重,不仅之后的画大饼不起作用,同时员工也会对管理者失去信任。 所以管理者不仅要画大饼,还要给足员工做大饼的料,帮助员工做成大饼。例如一开始给员工一个明确的目标规划,那就需要在资源上支持员工完成这个目标,时候也要和员工一起回顾目标完成的情况,是员工没做好,还是料没给够。如果料没给足,那很多时候管理者就需要反省了

    重认可: 这里主要是指员工的工作是不是得到管理者,团队及公司的认可,这里包含两个层面: 第一是否得到精神上的认可。如果员工觉得自己的工作及成果连自己的管理者都没有认可,那员工很少能有后续动力继续推进,这种认可很多时候可以是语言上的和行动上的,管理者对员工的任何成长进行语言或物质上的奖励,都会带来正向的效果。例如一句及时的口头表扬,一封邮件,或是季度,年度的一个奖项,都能带来较好的效果。但同样的,管理者的行为细节会让员工感觉到管理者是否受到重视,所以管理者要非常注意在员工面前的表现, 相由心生,员工会根据管理者的这些行为细节(正确或错误)地感受到自己是否真的受重视。

    同时管理者要非常重视one-one的过程,员工表现好的地方要多给表扬,激励其再接再厉,表现不好的地方,要以一种帮助其进步的姿态指出,并给其建议。

    第二是实质上的认可, 最明显的就是员工有没有因为所做的工作而得到晋升,因为公司有自己的流程,所以有时的确会出现很多人做的很卖力,也得到了很多精神奖励,例如口头表扬,个人奖项, 但没有晋升的情况(况且不谈这样的流程是否是最合理的); 如果出现这种,员工也会认为的工作没有被认可,得到了不公的待遇,也会产生较为负面的影响。应该尽量减少这种精神和实质认可不一致的情况。

    多指导

    给了空间, 有了认可以后, 还需要持续指导员工。 这里的指导又包含多方面的,例如经理的指导和直接导师的指导, 而且很多时候导师的指导更加重要直接。 好的导师能够让员工学习到更多的东西, 无论是知识或是方法,同时能保证员工能够在自己的工作中不走偏(这个也需要经理的更多参与),导师在身边能在一定程度上增强员工的安全感。

    薪水的重要性

    事实上,现在人们生存的压力的确也比较大,所以一方面上级,团队,公司的认可,能够满足自己更高层次的追求,但作为马斯洛基本层次的需求, 薪水也是影响绝大部分员工去留的重要因素。也许他在团队中工作比较开心, 能学到较多东西,但换个场景:如果员工觉得他在另外一个环境中,也能够开心的工作且学到较多的东西,而且拿的钱更多,或者多很多, 那我会问:他为什么不跳槽?    另一种情况,他已经觉得这个环境拿的钱比较低了,而且未来也可以预期不会涨很多,那他肯定就会考虑换工作了。 特别现在互联网公司比较多,外部给出的待遇也还不错。

    这个问题其实很难解决, 因为薪水这东西太实在, 我碰到过很多员工,在公司其实工作得也挺开心的,但还是选择了外部的机会,因为外部开出的薪酬条件更诱人; 也有很多员工本来就觉得公司给得低,主动选择的。

    解决之道: 这个一方面依赖于公司能否给出较高的package;另一方面,也需要在员工的个人发展上狠下功夫, 让员工了解认可自己的发展,以及寻求外部发展的规律。例如对于新人,需要让他们了解他们现阶段主要精力应该花在如何提升自己的内容; 对于老一些的员工,和他们一起做好个人的规划,让他们充分认可,同时和他们沟通寻求外部发展的规律(我的看法是这个平台是否还能支撑自己的后续发展,能否达到自己追求的目标,以及外部的机会,是否是真的好机会,是否真的适合自己)

    团队的氛围

    团队的氛围不是决定性的因素,如果员工因为其他原因有了离职的想法,那好的团队氛围也是留不住员工的,不过较好的团队氛围,的确能减少员工离职的想法,或是在一定程度上抵消外部更高薪金的诱惑。 有那么一种说法, 比较好的团队氛围, 能够抵消外部最高30%~50%薪酬提升的诱惑。

    总的来说,给员工发展空间,以及高薪金是公司能够提供的硬实力,他依赖于公司的发展阶段,盈利能力,以及公司对人才的投入,对每个人的投入;价值观,团队氛围等属于软实力,这是管理者更多需要发挥的地方。 很多时候,以为强调软实力会让员工更理性,而且一旦在发展,薪金上受了挫折或者不公,就可能产生比较负面的后果; 较强的软实力不能保证员工不离职, 但却能增强员工的凝聚力,增强员工的幸福感, 也能在一定程度上抵消外部的诱惑, 或者是因为这些软实力有些员工就不会有意识地和外部进行过多的接触,减少外部的诱惑。

    从一开始招聘就关注离职风险

    很多时候,从招聘的时候,就需要考虑这个人能长期留在公司的可能性, 说一个我碰到的例子: 我在公司负责流量推荐系统,之前来校招面试的一个小姑娘,技术面结果还可以,考虑到她有推荐系统的项目经验,就给了一个校招offer,不过后来HR联系我说这小姑娘比较浮躁,是HR见过的最浮躁的校招候选人,,她可能是想拿百度的offer去其他公司谈条件,建议不发offer。我给的建议是先发offer,看她是否签,结果不出HR所料她果然拒了offer。 但后来她没拿到其它公司更好的offer,又打电话联系我,希望给她offer。 最终我还是没有给她offer,因为觉得HR说得对,她不是那么踏实,而且也不是没给她机会。从这个事后,我面试候选人的时候,也会更加注意这个人是否浮躁,是否能长期待在公司。

    工作1.5~2年或者工作5年也是离职高峰, 一般工作1两年的人,觉得在公司做的事已经比较熟练,想寻找更多挑战,或是外部薪水的诱惑,会有较高的概率离职,工作5年的人,会对自己的个人发展有更清楚的认识,也可能会做出判断后选择离职。所以这两个阶段也需要特别关注。 这些都需要在平常的one-one中细致观察多沟通,提前了解,做好功课。

     

    百度关键词工具介绍参见:http://support.baidu.com/product/fc/4.html?castk=24b18bi7062c720d0d596

    也可关注我的微博:  weibo.com/dustinsea

    或是直接访问: http://semocean.com

    展开全文
  • 视觉SLAM笔记(49) 后端状态估计

    万次阅读 2019-11-12 08:36:51
    误差累积、状态估计的概率解释、所关心的问题、最大似然估计
  • Linux中查看进程状态信息

    万次阅读 多人点赞 2018-10-24 22:00:21
    Linux中查看进程状态信息 一、常用命令总结 ps -l 列出与本次登录有关的进程信息; ps -aux 查询内存中进程信息; ps -aux | grep *** 查询***进程的详细信息; top 查看内存...
  • TCP中的三次握手,四次挥手是我们所熟知的,可是,我们熟悉里面的各种状态吗??? (SYN_SENT, ESTABLISHED, CLOSE_WAIT.............),试问一句,我们了解里面的状态转化吗??? 1,大家先看一个简单的...
  • 设计模式:一目了然的状态机图

    万次阅读 多人点赞 2018-08-11 15:18:34
    从第一次认识到状态机这个概念,程序设计似乎就从未离开过它,通过广大网友的技术分享,本文对状态机再做一次总结。了解什么是状态机图,它的使用场景是什么? 一、什么是状态机? 做产品的时候,我们总能遇到...
  • 上面的这个模式,描述了一个复杂的股票交易趋势:在过去的一段时间内,股票交易量开始升高,但在一个周期之后,当价格增长或者保持相对稳定后,交易量将会暴跌。这个模式有两个输入:在股票事件上的一个“正闭包”,...
  • 两种状态

    千次阅读 2017-05-17 16:49:42
    状态机分为moore型和mealy型两种。 差别在于前者的输出单纯由寄存的状态决定,后者的输出由输入和状态输出同时决定。1.Moore 型output=f(state)output=f(state) nextstate=f(input,state) nextstate=f(input,state...
  • Android隐藏状态栏 全屏

    千次阅读 2016-03-30 11:31:32
    Android隐藏状态栏 全屏本教程讲述如何隐藏Android的不同版本的状态栏。隐藏状态栏(和任选的导航栏)可以有更多的显示空间,从而提供更真实的用户体验。 图1显示一个带有状态栏的应用: 图1:显示了状态栏。图...
  • Android 沉寖状态栏与透明状态

    千次阅读 2016-09-12 16:07:08
    Android7.0都已经正式发布了,现在再谈沉寖状态栏或者透明状态栏已经不是什么新鲜玩意了,IOS不用说,它们对于状态栏的支持比Android丰富而且规范的多,Android状态栏可以自定义颜色是从4.4开始,Android6.0以下的...
  • 整理:状态机的两种写法

    千次阅读 2016-07-29 10:39:39
    它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着其只能进行...
  • 状态机编程

    万次阅读 2009-12-03 14:47:00
    复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。同 时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着其只能进行有限...
  • Android实现沉浸式状态栏效果

    千次阅读 2018-06-05 16:36:30
    关于沉浸式状态栏,给大家推荐一个非常好的博文android标题栏、状态栏图标文字颜色及背景动态变化 另外说明下,沉浸式状态栏的实现仅适用于 android 4.4及以上版本,4.4以下的就不要想了。 1. 实现秀明状态栏...
  • Apache Shiro 会话与主体状态的关系

    千次阅读 2012-12-14 15:26:02
    状态的应用程序 默认情况下Shiro 的SecurityManager 实例会使用一个Subject 的Session存储Subject 的身份ID(PrincipalCollection)和验证状态(subject.isAuthenticated())。这通常发生在一个Subject 登录...
  • 卸载后对象的实例ID会保持可用状态,对文件GUID和本地ID的条目会被保留且仍然有效。如果有Mono变量或其他有指向该对象的活动对象引用了被Resources.UnloadAsset卸载的对象,则该对象会在任意有效的引用被解引用时...
  • 深入浅出理解有限状态

    千次阅读 2017-11-12 12:08:37
    有限状态机 有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路...
  • PHP 状态

    千次阅读 2013-04-25 12:44:21
     把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。  同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着其只能...
  • 状态机思路在单片机的程序实现

    千次阅读 2018-04-04 09:33:36
    本文引用地址: http://www.21ic.com/app/mcu/201207/130832.htm状态机... 比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回...
  • 整理:状态机的C语言编程

    万次阅读 多人点赞 2016-07-29 10:33:42
    一 有限状态机的实现方式 有限状态机(Finite State Machine或者Finite State Automata)是软件领域中一种重要的工具,很多东西的模型实际上就是有限状态机。 FSM的实现方式: 1) switch/case或者if/else 这...
  • 系统稳定要求全响应稳定,要求零输入响应、零状态响应都稳定。 首先考虑零输入响应稳定性。零输入响应是微分方程的通解。如果遍历初态空间,零输入响应必然遍历通解空间,即所有指数项都有可能出现在零输入响应中...
  • Android透明状态栏与沉浸模式全解

    千次阅读 2017-04-03 13:04:39
    Android透明状态栏与沉浸模式全解现在如今利用状态栏做文章的主要就是如下四种场景了,先上图 - 网易云音乐 状态栏与标题栏同色,无缝衔接 - 多看阅读 全屏沉浸阅读(视频,游戏同理) - 淘宝 状态栏深色 - ...
  • linux下使用top命令查看系统运行状态和进程运行状态 在linux下可以通过top命令来查系统运行状态和进程运行状态,通过man查看top手册,top的解释是display Linux tasks,以前看到过一个另外的解释display top CPU ...
  • 状态机实现的三种方法-C语言

    万次阅读 多人点赞 2017-05-12 15:40:49
    1. 参考:... 2. ... 有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM有限消息机)。它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上
  • 复制状态机(State Machine Replication)

    千次阅读 2017-12-01 22:19:07
    这篇博文主要是对wiki上的复制状态机的翻译。 复制状态机在分布式领域是一个常用且重要的技术,通过复制服务副本,并和副本一起来协调客户端的交互,来...因此学习技术之前,多问问自己,这样实现的目的是什么,如果
  • 状态同步的方式实现一个坦克大战的小游戏,这也是一次全新的尝试,从游戏的效果来看,在正常的网络速度下效果符合预期。这里跟大家分享下游戏客户端中用到的关键技术点。 一、 同步方式的选择,状态同步or 帧...
  • NTSTATUS状态码 详细解说

    千次阅读 2018-08-18 13:04:31
    状态成功 手术顺利完成。 0x00000000 状态等待_0 调用方为WaitType指定WaitAny,对象数组中的Dispatcher对象之一已设置为已发出信号的状态。 0x00000001 状态...
  • android标题栏、状态栏图标文字颜色及背景动态变化

    万次阅读 多人点赞 2017-06-22 14:22:30
    android中沉浸式状态栏...今天把自己这几天学到的关于沉浸式状态栏知识进行总结下。问题 比如我想实现以下效果: 1. 同一个Activity需要动态变换标题栏和状态栏文字字体色值,该如何实现? 2. 一个Activity包含多个F

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 205,278
精华内容 82,111
关键字:

如何让自己保持稳定的状态