zoukankan      html  css  js  c++  java
  • [Golang] mynats(对nats.go的二次封装)

    0x0 前言

    最近项目开始使用nats作为消息中间件。
    nats的引入确实解决项目很多痛点。
    比如:
    1)服务动态横向扩展
    2)负载均衡(nats的均衡机制只有随机,不过对我们来说也够用了)
    3)多服务之间方便快捷的消息通信
     

    0x1 mynats是什么

    mynats是对nats.go的一个包装。目的是方便快捷的注册消息回掉,并且支持同步handler和异步handler。

    0x2 特性

    * 免去定义常量subject字符串的步骤,发送的proto参数类型名作为publish的subject,用handler的proto参数类型名作为subscribe的subject。并且依然支持通配符
    * 避免发送参数类型和接受函数参数类型不匹配
    * 可通知(无需返回的),可请求和回复
    * 可同步请求可异步请求,可同步回复可异步回复
    * 支持安全退出。安全退出会把异步处理完才退出
    * 支持分组。方便用同一套nats服务器,业务逻辑分组互不影响

    0x3 问题

    * 运行时反射类型获得类型名,然后再拼接subject的性能
    * 以类型作为subject,虽然解决容易不匹配的问题,单如果有公用类型就需要外面再包一层起其他的名字的类型
     

    0x4 代码库

    github:https://github.com/bailu1901/mynats

  • 相关阅读:
    css 布局方式
    初识cv
    CSS 样式表{二}
    获取设备通讯录信息
    iOS Block界面反向传值小demo
    在iOS中如何正确的实现行间距与行高
    iOS开发- 获取本地视频文件
    view围绕圆心自转
    监测网络状态
    简单的九宫格算法与使用
  • 原文地址:https://www.cnblogs.com/mrblue/p/11597783.html
Copyright © 2011-2022 走看看