Java开源高可用架构

1)NIO(apache mino)非阻塞通信,通过通道绑定端口,然后将端口注册到selector上监听相应事件类型
  MyServer.java  MyClient.java

2)Resutful
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful
springmvc rest 实现:
springmvc的resturl是通过@RequestMapping 及@PathVariable annotation提供的,通过如@RequestMapping(value="/blog/{id}",method=RequestMethod.DELETE)即可处理/blog/1 的delete请求
  1. @RequestMapping(value="/blog/{id}",method=RequestMethod.DELETE)  
  2. public ModelAndView delete(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response) {  
  3.     blogManager.removeById(id);  
  4.     return new ModelAndView(LIST_ACTION);  
  5.  
3)thrift
thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发,传输二进制格式
1.数据类型

2.服务端编码基本步骤:

  • 实现服务处理接口impl
  • 创建TProcessor
  • 创建TServerTransport
  • 创建TProtocol
  • 创建TServer
  • 启动Server

3.客户端编码基本步骤:

  • 创建Transport
  • 创建TProtocol
  • 基于TTransport和TProtocol创建 Client
  • 调用Client的相应方法

4.数据传输协议

  • TBinaryProtocol : 二进制格式.
  • TCompactProtocol : 压缩格式
  • TJSONProtocol : JSON格式
  • TSimpleJSONProtocol : 提供JSON只写协议, 生成的文件很容易通过脚本语言解析

4)LMAX( Disruptor)线程间交换模式
LMAX公司被创建去构建一种高性能的金融交易平台Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式实现,或者事件-监听模式的实现,直接称disruptor模式。disruptor最大特点是高性能,其LMAX架构可以获得每秒6百万订单,用1微秒的延迟获得吞吐量为100K+
许多应用使用队列来实现在其线程间的数据交互。通过测试我们发现,非常戏剧性的——使用队列造成的延迟与磁盘IO操作(RAID、SSD磁盘)造成的延迟同样的多!如果在一个端对端操作中使用多个队列,这将会增加数百毫秒的总延迟。显然,这是一个需要优化的领域
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值