https://api.vvhan.com/api/avatar/boy

技术博客分享

Netty基础6.Netty实现RPC服务二

首先在编码数据包时,需要在数据包开头添加4个字节的int类型的bytes.length,之后任何一个数据包的读取,都必须从4个字节的int(bytes.length)值开始读取,再按照int值读取后续指定数量的字节数,都读取完才能证明读取到一个完整的字节数组。说明二:RPC调用其实就是通过调用remoteCall()方法,往Netty客户端的Channel的writeAndFlush()方法写入请求数据,同时也通过sync()方法进行同步阻塞,以便可以等到Netty服务端的响应,从而获得RPC调用结果。

新手村数据预处理-特征缩放

方法描述适用场景优点缺点标准化将特征转换为均值为0,标准差为1的标准正态分布。线性回归、逻辑回归、SVM、KNN、神经网络等。不受数据范围影响,适用于大多数算法。对异常值较为敏感,可能导致极端值的影响被放大。归一化(Min-Max缩放)将特征缩放到一个特定范围(通常是[0, 1])。需要将数据限制在特定范围内的情况。数据范围固定,适用于需要严格控制输出范围的场景。受数据范围影响较大,对异常值敏感,可能导致信息丢失。

Netty基础6.Netty实现RPC服务一

比如在下面的例子中,如果还要代理IReceiver接口的实现类,那么还需要定义一个ProxyReceiver代理类去实现IReceiver接口。然后当客户端调用Proxy.newProxyInstance()方法,并传入被代理类的接口和一个封装了被代理对象的InvocationHandler对象时,便会动态生成一个代理类并返回一个实现了被代理类接口的代理对象。动态代理中的动态是针对静态代理而言的,动态代理的优势不在于省去了编写静态代理类时的代码量,而是实现了可以在被代理类未知的时候就确定代理类的代理行为。