未验证 提交 0fe5de38 编写于 作者: G Guide哥 提交者: GitHub

Merge branch 'master' into enhancement-1

......@@ -13,7 +13,7 @@ import java.util.zip.GZIPOutputStream;
* @createTime on 2020/10/3
*/
public class GzipCompress implements Compress {
public class GzipCompress implements Compress {
private static final int BUFFER_SIZE = 1024 * 4;
......@@ -23,8 +23,8 @@ public class GzipCompress implements Compress {
if (bytes == null) {
throw new NullPointerException("bytes is null");
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
try (GZIPOutputStream gzip = new GZIPOutputStream(out)) {
try (ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out)) {
gzip.write(bytes);
gzip.flush();
gzip.finish();
......@@ -39,9 +39,8 @@ public class GzipCompress implements Compress {
if (bytes == null) {
throw new NullPointerException("bytes is null");
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
try (GZIPInputStream gunzip = new GZIPInputStream(new ByteArrayInputStream(bytes))) {
try (ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPInputStream gunzip = new GZIPInputStream(new ByteArrayInputStream(bytes))) {
byte[] buffer = new byte[BUFFER_SIZE];
int n;
while ((n = gunzip.read(buffer)) > -1) {
......
......@@ -106,11 +106,10 @@ public final class NettyRpcClient implements RpcRequestTransport {
if (channel.isActive()) {
// put unprocessed request
unprocessedRequests.put(rpcRequest.getRequestId(), resultFuture);
RpcMessage rpcMessage = new RpcMessage();
rpcMessage.setData(rpcRequest);
rpcMessage.setCodec(SerializationTypeEnum.PROTOSTUFF.getCode());
rpcMessage.setCompress(CompressTypeEnum.GZIP.getCode());
rpcMessage.setMessageType(RpcConstants.REQUEST_TYPE);
RpcMessage rpcMessage = RpcMessage.builder().data(rpcRequest)
.codec(SerializationTypeEnum.PROTOSTUFF.getCode())
.compress(CompressTypeEnum.GZIP.getCode())
.messageType(RpcConstants.REQUEST_TYPE).build();
channel.writeAndFlush(rpcMessage).addListener((ChannelFutureListener) future -> {
if (future.isSuccess()) {
log.info("client send message: [{}]", rpcMessage);
......
package github.javaguide.compress.gzip;
import github.javaguide.compress.Compress;
import github.javaguide.remoting.dto.RpcRequest;
import github.javaguide.serialize.kyro.KryoSerializer;
import org.junit.jupiter.api.Test;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.assertEquals;
class GzipCompressTest {
@Test
void gzipCompressTest() {
Compress gzipCompress = new GzipCompress();
RpcRequest rpcRequest = RpcRequest.builder().methodName("hello")
.parameters(new Object[]{"sayhelooloo", "sayhelooloosayhelooloo"})
.interfaceName("github.javaguide.HelloService")
.paramTypes(new Class<?>[]{String.class,String.class})
.requestId(UUID.randomUUID().toString())
.group("group1")
.version("version1")
.build();
KryoSerializer kryoSerializer = new KryoSerializer();
byte[] rpcRequestBytes = kryoSerializer.serialize(rpcRequest);
byte[] compressRpcRequestBytes = gzipCompress.compress(rpcRequestBytes);
byte[] decompressRpcRequestBytes = gzipCompress.decompress(compressRpcRequestBytes);
assertEquals(rpcRequestBytes.length, decompressRpcRequestBytes.length);
}
}
\ No newline at end of file
package github.javaguide.serialize.kyro;
import github.javaguide.remoting.dto.RpcRequest;
import org.junit.jupiter.api.Test;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.assertEquals;
class KryoSerializerTest {
@Test
void kryoSerializerTest() {
RpcRequest target = RpcRequest.builder().methodName("hello")
.parameters(new Object[]{"sayhelooloo", "sayhelooloosayhelooloo"})
.interfaceName("github.javaguide.HelloService")
.paramTypes(new Class<?>[]{String.class,String.class})
.requestId(UUID.randomUUID().toString())
.group("group1")
.version("version1")
.build();
KryoSerializer kryoSerializer = new KryoSerializer();
byte[] bytes = kryoSerializer.serialize(target);
RpcRequest actual = kryoSerializer.deserialize(bytes, RpcRequest.class);
assertEquals(target.getGroup(),actual.getGroup());
assertEquals(target.getVersion(),actual.getVersion());
assertEquals(target.getRequestId(),actual.getRequestId());
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册