摘要:-java 堆内对象池 启用nocleaner堆外内存,增大新生代 精确控制gc次数 把程序写简单,编译期能干的事情就不在运行时干;避免用不必要的virutal function 关注java c的同一段逻辑的cpu cycle 和切换,jvm背地里会干的一些事情 contiguous 相邻内存块,
阅读全文
摘要:几大难点 1 高可用无状态 2 高性能多线程 3 买盘驱动如何优化为两端驱动 https://baijiahao.baidu.com/s?id=1833444841036243857&wfr=spider&for=pc&searchword=%E8%AE%A2%E5%8D%95%E7%B0%BF%2
阅读全文
摘要:交易系统-券商柜台系统 一、交易柜台简介 依据国内监管要求,客户无法直连交易所系统,中间必须经过经纪公司的柜台系统,由经纪公司柜台系统调用交易所API下单。交易柜台是连接交易所的下单系统。通过经纪公司交易柜台把交易指令发送到交易所,然后经纪公司交易柜台再将交易所委托回报和成交回报反馈给投资者。 很早
阅读全文
摘要:https://mp.weixin.qq.com/s/x7YF-V_siX2ZiYroB8xPRw 游戏server不太需要微服务,因为要求real time,做微服务会影响效能 10个人之间各种游戏事件的高速多向通讯streaming/broadcast/multicast/pubsub各种通讯模
阅读全文
摘要:1 方案一 1.1 niurenbang http 1.1.1 沾包拆包-http协议控制沾包拆包 pipeline.addLast(new HttpRequestDecoder()); // 客户端发送的是httpResponse,所以要使用HttpResponseEncoder进行编码 pipe
阅读全文
摘要:还是来看这张图: 由于此前redis分布式锁超时事故,所以中间那个线程池设置为有界队列,并配置了放弃策略,故当disruptor消费者不给力时,经阻塞模式的disruptor逆推到生产者阻塞,导致堆积的线程超出队列上限被放弃 那为什么消费者会不给力? 在消费者中,消费频率大约是一个合约每秒4次,在2
阅读全文
摘要:1 背景 由于股票撮合中,我们使用zset构建到价成交,故这里对rangebyscore命令进行原位压力测试 撮合、止盈止损 使用redis zset触发股票成交 行情丢失导致无法撮合成交【重点】 redis线程池如何定,为什么开10个disruptor消费线程(redis连接): 1)io密集型4
阅读全文
摘要:1 https://segmentfault.com/a/1190000019152276?utm_medium=referral&utm_source=tuicool 其实在编程领域,异步的场景还是挺多的,比如 TCP 协议本身就是异步的,我们工作中经常用到的 RPC 调用,在 TCP 协议层面,
阅读全文
摘要:1 止盈止损设置限制 止盈止损的设置遵循以下几个限制,若不符合,则不予处理请求: 1)是否有合约同方向的持仓,且设置止盈止损数量≤持仓数量 比如:用户对合约abc设置多头的止盈止损n手,则要求用户有≥n手abc合约的多头持仓 2)止盈价、止损价、当前最新价的关系: 持仓方向 参数合法规则 多 止损价
阅读全文
摘要:sh:222222 zset<uid, price>
阅读全文
摘要:json:对象-字符串-byte[] -传输-byte[]-字符串-对象 pb:对象-byte[]-传输byte[]-对象 另一个例子在:pb协议 jdk序列化协议,考虑到文章太长,放于此instead of the bottom client: String wholeUrl = String.f
阅读全文
摘要:1 本方案基于netty channel的线程安全性与@Sharable中结论,pipeline线程安全 增加一个AuthHandler,顶在pipeline最前面 鉴权不通过,close channel,通过,remove掉这个鉴权channelhandler 取自jds-im,msgforwar
阅读全文