0%

Netty接收请求过程

由于Netty用来进行接收请求和处理请求的是两个线程组,那么两个线程组是如何进行交互来处理请求的呢

1
2
3
4
5
6
// bossGroup用于接收Client端连接,会将请求交给workerGroup
// bossGroup的线程数建议设置为1,因为仅负责接收客户端的连接,不做复杂的逻辑处理,可以尽少的占用资源
// NioEventLoopGroup中的子线程数默认是cpu核数*2
EventLoopGroup bossGroup = new NioEventLoopGroup(1);
// workerGroup会获取到真正的连接,然后和连接进行通信,workerGroup用于实际业务处理的
EventLoopGroup workerGroup = new NioEventLoopGroup();
阅读全文 »

webService简介

webService是什么呢?是在HTTP之上通信的客户端和服务器应用,提供了一种标准方法,允许各种不同平台和框架上运行的软件应用实现互操作。

webService的突出特点是强大的互操作性和可扩展性,以及机器可处理的描述,采用了一种松耦合的方式结合,从而实现复杂的操作。

webService分为了两种,一种为JAX-WS(XML Web服务),一种为JAX-RS(Resultful Web服务)

阅读全文 »

SOAP

SOAP使用基于XML表示RPC调用及其参数和返回值

WSDL

WSDL是WebService的一种描述语言,定义了webService的一些重要信息

  • 描述可公开使用的全部功能的信息
  • 这些功能的请求和响应消息的数据类型信息
  • 用于调用特定web服务的协议的绑定信息
  • 用于查找指定的web服务的地址的信息

构成元素

  • <definitions> WSDL文档是一组定义,全部都是在<definitions>元素内部进行定义的,是WSDL文档的根元素
  • <types> 描述web服务与服务用户之间交换消息的所有数据类型
  • <message> 表示web服务与服务用户之间传递的数据的逻辑定义,包含0或多个消息<part>元素,<part>元素主要指请求参数或响应返回值
  • <portType> 该元素通过组合由<message>定义的各种请求和响应消息,定义了web服务支持的各项操作的抽象定义,各操作均为输入消息和输出消息
  • <binding> 该元素指定用于表示通信中的特定元素<portType>定义的操作和消息的具体协议和数据格式
  • <port> 该元素指定与web服务的绑定地址
  • <service> 该元素聚集一组相关的<port>元素,这些<port>元素分别唯一指定web服务的绑定信息,包含多个<port>元素的<service>元素表示需通过多个绑定调用的服务功能
阅读全文 »

编解码器

网络传输中全部使用的是二进制流,而两边使用java对象进行发送和接收,就需要使用编解码器

编码器

将java对象转换为WebSocket消息

  • 对于文本消息,需要实现Encoder.Text
  • 对于二进制消息,需要实现Encoder.Binary
阅读全文 »