您确定要退出登录吗?

修改密码

原密码
新密码
确认新密码

t-io企业版和社区版的区别

talent


框架/工具 t-io tio

一、同步发送能力

同步消息指的是,A给B发送一条消息后,在原线程中等待B给出一条对应的响应消息,用其它网络框架实现这样的功能,需要开发人员自己精通多线程间的通讯,极易发生死锁、死等等现象。t-io已经内置了发送同步消息的能力,开发人员可以像调用方法那样使用

1. 协议设计

  • 设计协议时预留synReqNo (Integer) 和 synRespNo (Integer) 字段(Packet.java中已经内置了这俩字段)
  • 编码时,写入synReqNo和synRespNo
@Override
  public ByteBuffer encode(Packet packet, TioConfig tioConfig, ChannelContext channelContext) {
      ...
      buffer.putInt(packet.getSynReqNo());
      buffer.putInt(packet.getSynRespNo());
      ...
  }
  • 解码时,设置好synReqNo和synRespNo
@Override
  public CluPacket decode(ByteBuffer buffer, int limit, int position, int readableLength, ChannelContext channelContext) throws TioDecodeException {
      ...
      packet.setSynReqNo(synReqNo);
      packet.setSynRespNo(synRespNo);
      ...
  }

2. 使用

  • 一端发送同步消息
      CluPacket cluPacket = new CluPacket();
      CluPacket respPacket = Tio.synSend(channelContext, cluPacket, 5000L);
      if (respPacket != null) {
          log.info(respPacket);
      }
  • 对端响应同步消息
      CluPacket respPacket = new CluPacket();
      // 这一行代码是精髓
      respPacket.setSynRespNo(reqPacket.getSynReqNo());
      Tio.send(channelContext, respPacket);


二、更多的数据结构

CollectionWithLock.java
MapCollectionWithLock.java
MapListWithLock.java
MapSetWithLock.java


三、更完善的容错机制

一些边界判断更详细了,对业务代码有更大的容错性。譬如同样的写法在企业版中没有问题,但在社区版中可能就会抛出异常

四、更多的实用函数

Tio.java里增加了不少常用函数,方便快捷

五、更有保障的服务

企业版用户遇到t-io本身的使用问题,可以直接微信咨询,一般会在24小时内得到回复(特殊情况除外)


登录 和大家一起讨论吧!

重置 发表评论


确定要删除该条评论吗?

案例不存在!