初级会员
  • 第 26827 位会员
  • focussoft
  • 2018-12-06 21:43:52
  • Offline
  • 15 44

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • #46 @jarlyyn 好了最后送你一句操你妈的,滚你妈个B的。贱种。菜你妈逼。 你满意了,你个傻屄东西。这下子高兴了,可以不回复了吗? 还没见过你这么贱的东西,非得让人骂上才舒服。 你爹我菜与否管你个B事,你个臭不要逼脸的东西。 原罪你妈逼啊,你牛逼你咋不写个Go语言的编译器呢?只会嘴上瞎BB。 这个帖子里除了你这样自以为是的傻逼之外,没人说挂什么狗屁中间件,连网站的站主polaris如此精通go语言的人都说不能全局,你算个什么鸡巴东西也敢出来放屁什么中间件?还这么多人都会了,会什么了?会操你妈了? 哦对了,你就是靠你百度搬砖来的spec, 什么打log,什么k8, 什么语言规范,好像go语言是你独家专利你发明的一样,笑死人了。 离了google baiu搬砖别人的东西什么spec什么源码, 你还能写出什么东西来?立刻变成一堆屎。。。 不好意思,我不会再和一个厕所里的石头废话了,又臭又硬,装逼有瘾,弄个文件锁也成了技术了,傻逼,用IO加锁是最low的方法,根本不会再并发很高的服务场合使用,你这种自以为很懂的傻逼才会动不动把IO锁挂在嘴上装逼。 滚吧,臭傻逼,如果不想骂战开启闭上你那自以为是装逼有瘾的肛门。
  • #43 @jarlyyn 麻烦你张开你的小母狗眼仔细看之前的回复, 一开始本人的回复说了recover不能解决panic的问题,不能让服务不挂带病运行, 从头到尾一直都是这个观点,你从一开始就东拉西扯的说点什么玩意儿,一会log, 一会解锁释放资源。。。 野蛮使用panic是你的代码例子中这么干的吧,这就是我说的故意的panic的典型行为。 你的全局变量是个文件名没错,但是对这个全局文件名操作写入删除本身就是全局性的吧,你这种加锁不是全局是什么?还有脸BB个什么劲? 这和菜不菜的没关系,你再牛逼把spec搬上来把k8的代码搬上来把某大神的圣旨请出来也解决不了楼主的问题。 搬这个代码搬那个spec玩学院派没问题,只是上帝保佑你的项目不要出现学院派解决不了的怪问题。 别扯了,继续说下去只能完美暴露你更多的浅薄和百度搬砖工的身份。
  • #41 @jarlyyn 别二比了,你的文件解锁的例子根本就是一坨屎, 实际使用中的情况比这种情况复杂多了, 需要加锁的资源不会像你这样是个所谓的全局常量。对全局常量加锁也是个bad idea. 另外拜托不要再把官方的例子拿出来了,没有说服力,解决不了panic让服务不挂的问题。 不想再和你争论了,吵来吵去,都是在给楼主误导, 你只需要说,出现了意外的panic,注意是意外的panic而不是你这种故意的,使用recover能否让服务不挂继续正常服务就行了,一会打印log, 一会释放资源,这些措施能保证服务不挂,能带病坚持正常服务?能保证整个系统还是稳定可用的吗?只需要解决这个问题就行了,扯那么多干什么!
  • #33 @jarlyyn 1. 可笑的是你说的那些etcd, zookeeper本身也是负载均衡的一种软件实现而已。和loadbalance的硬件集群不同的是携带了更多的语义,你估计没玩过硬件loadbalance,不是你想的那么简单就是一个分发器的样子。<br/> 2. 是你说的recover可以清理资源什么释放数据库锁,这么快就忘记了?怎么向我要代码?我什么时候说我要写recover的代码来恢复panic了?是某人信誓旦旦说 recover如何神奇如何能让服务不挂掉,如果开心的在里面打log, 在里面各种释放资源,怎么这么快就打脸了?没有自己代码?那你说个毛线!只会搬别人的东西然后大谈recover如何如何?人云亦云!<br/> 3.程序的正常流程被意外的panic中断了居然某人认为这很优雅...好吧,你就是用异常来控制程序流程的习惯了嘛。没有try catch就必死无疑的程序员很多。因为这些人不会写更强壮的代码包括预防性的错误检查措施返回error并因此防止出现panic,而是只习惯于catch一下打一个stack一了百了。这种高人很多的,不差你一个。<br/> 4.error的层层返回被理解为堆栈乱套了,OMG,头一次听到这种奇葩言论,正常的错误返回和堆栈有什么关系,你习惯于不返回错误只用panic抛出异常,然后在defer里面用recover一个一个的筛选判断这次的panic到底是业务异常呢还是系统异常呢?这不是一个大傻瓜的做法么。。。请告诉我你的学校和老师,他们都会出名的。<br/> 5.自己打自己的脸很好玩么?error这么好的设计居然被你说成全世界嘲笑,那么全世界反而不嘲笑panic?你看go程序中error用的多还是panic用的多?你比go设计者还牛逼?那为啥还保留error这种全世界都嘲笑的设计?<br/> 6.panic不管谁定义的,它的作用就是要退出程序,你喜欢用这个配合recover写谁也看不懂的优雅代码那也随便你,不要强迫别人也接受你的奇葩思路和方式。
  • #29 @jarlyyn 1.人要是不要脸了非要死磕就没办法了。 2.loadbalance就是用来解决服务器的高可用性的,不管其中一台除了什么问题,panic也好 OOM也好,网络不通也好,马上能有其他服务器能接管流量,这个是recover能解决的? 3.我是真不知道你在recover中还能释放数据库锁,不妨演示一下看看,怎么获取当前的数据库锁链接然后去unlock,别只贴别人的代码,还有什么wiki, 什么某某大神,k8s。请帖你自己的。 4.你说的对,panic是软件调用的,就像经典的dos中的软中断int 21h,但panic就是出现了不能继续运行下去的异常才会调用强行终止流程,如果能继续下去那应该使用error正常返回,请解释一下为啥不适用 error,而非要使用不那么优雅的panic. 然后再去找recover恢复,这种在性能上也是有损失的 5.panic触发的不稳定,是因为软件质量中存在隐患或者因为硬件故障,这种如果很容易触发出来那么loadbalance的确没什么鸟用,换一台机器也是一个德性。但是事实上能panic的事件基本上都是需要人为介入处理的而且有些是软件自身问题是不那么容易重现出来的(如果之前详细测试过业务流程有很好的覆盖率)。 6.你扯的2,3业务问题都可以用用error正常流程解决而不是使用panic+recover,1是严重错误这种正是我说的需要人工介入的panic.不管你是不是recover去打印什么log, 都无法解决。loadbalance解决的是难以发现的隐患导致的崩溃切换服务器,而不是你这样明显能查到的问题。