美文网首页
ARTS 打卡 2019-04-26

ARTS 打卡 2019-04-26

作者: jiaji_3740 | 来源:发表于2019-04-26 15:29 被阅读0次

    Algorithm

    Review

    主要是关于im系统的一系列文章

    最近工作中接触websocket比较多,准备在im领域多了解一下。
    主要有几个方面:

    • websocket协议 mqtt协议
    • im系统的消息送达确认
    • im系统的心跳机制
    • tcp keepalive机制为什么不能替代应用层心跳机制

    为什么说基于TCP的移动端IM仍然需要心跳保活?
    IM消息送达保证机制实现(一):保证在线实时消息的可靠投递
    知乎:TCP协议中的端口具体指的是什么,为什么要有端口,你是怎么理解的?

    Tip

    docker 的 gracefully shutdown

    优雅的终止docker容器
    几个关键点:

    • docker stop 与 docker kill的区别
      当我们用docker stop命令来停掉容器的时候,docker默认会允许容器中的应用程序有10秒的时间用以终止运行
      而docker kill命令,更像是Linux系统中的kill -9或者是kill -SIGKILL命令,用来发送SIGKILL信号,强行终止进程。
    • Dockerfile中CMD命令
    1. CMD /graceful 这种方式,graceful程序会以 bash -c 方式启动,所以接收结束信号的是bash命令而不是graceful程序
    2. CMD [“/graceful”] 这种方式,graceful会直接启动作为pid=1的进程,可以直接接收docker的结束信号
    • 程序中处理退出signal
    // main.go
    
    package main
    
    import (
        "fmt"
        "os"
        "os/signal"
        "syscall"
    )
    
    func main() {
        fmt.Println("Program started...")
        ch := make(chan os.Signal, 1)
        signal.Notify(ch, syscall.SIGTERM)
        s := <-ch
    
        if s == syscall.SIGTERM {
            fmt.Println("SIGTERM received!")
            //Do something...
        }
    
        fmt.Println("Exiting...")
    }
    
    github项目配置 travis build 徽章

    GitHub 研发链 travis-ci 和 codecov 介绍

    徽章制作

    https://shields.io/

    Share

    数据结构与算法之美相关分享:
    https://www.jianshu.com/p/d028f4fe1256
    https://www.jianshu.com/p/a595d8731f92
    https://www.jianshu.com/p/95d121ede40d
    https://www.jianshu.com/p/d045199e9130

    相关文章

      网友评论

          本文标题:ARTS 打卡 2019-04-26

          本文链接:https://www.haomeiwen.com/subject/bufpwqtx.html