整理各种工具类的使用
Table of Contents generated with DocToc
excel读取和写入,阿里的easyExcel
apache http和okhttp
序列化和反序列化,主要使用google的gson和阿里的fastjson
高性能的序列化工具,实现自动编码、解码,体积和速度比xml和json更小、更快,由google开源
google的java类库,提供了大量的工具类
是美团开源的一个高性能异步处理框架,轻量级的JMS,生产-消费模型,支持点对点和发布订阅,高性能队列
等待策略
-
BlockingWaitStrategy 是最低效的策略,但其对 CPU 的消耗最小并且在各种不同部署环境中能提供更加一致的性能表现;
-
SleepingWaitStrategy 的性能表现跟 BlockingWaitStrategy 差不多,对 CPU 的消耗也类似,但其对生产者线程的影响最小,适合用于异步日志类似的场景;
-
YieldingWaitStrategy 的性能是最好的,适合用于低延迟的系统。在要求极高性能且事件处理线数小于 CPU 逻辑核心数的场景中,推荐使用此策略;例如:CPU 开启超线程的特性。
高性能的网路框架,在NIO的基础上对其封装的,NIO是同步非阻塞,面向缓冲流的IO
完成功能
- 自定义协议
- 自定义协议编解码
- 根据协议使用拆包器
- 拒绝非本协议连接
- 心跳检测机制
- 合并handler和并行handler
- 登录退出
- 单聊消息
- 群聊消息
- 创建群聊
- 拉人群聊
- 列出群聊
- 退出群聊
默认用户:账号密码相同:admin,root
爬取html解析dom,用于网络爬取
- 运行方式
导入MySQL 运行sql文件中的两条语句。answer为答案表,存放所有答案,topic存放所有话题
运行rocketmq
在docker文件中,使用docker-compose up
启动rocketmq,需要在broker.conf修改brokerIP1为本机地址
启动spring应用 启动后执行com.zwl.jsoup.WebCrawler的run方法,开始爬取知乎
bean转换工具类,比如DTO转换entity,entity转换VO等等
java工具类库
redis分布式锁
retrofit A type-safe HTTP client for Android and Java
gRPC 是一个现代的高性能、开源远程过程调用 (RPC) 框架,可以在任何地方运行。它使客户端和服务器应用程序能够透明地通信,并使构建连接系统变得更加容易。 grpc使用protobuf序列化协议
主要使用场景
- 低延迟、高度可扩展的分布式系统。
- 开发与云服务器通信的移动客户端。
- 设计一个需要准确、高效且独立于语言的新协议。
- 分层设计以启用扩展,例如。身份验证、负载平衡、日志记录和监控等
建议查看官网教程https://grpc.io/docs/languages/java/basics/
使用grpc-java 类库在proto文件中定义rpc服务
//定义rpc服务
service Greeter{
//简单的一元rpc
rpc sayHello (HelloRequest) returns (HelloResponse) {}
//服务器流式rpc,客户端从返回的流中读取,直到没有消息
rpc listSayHello (HelloRequest) returns (stream HelloResponse) {}
//客户端流式rpc,客户端写入消息,等待服务端读取消息返回响应
rpc streamSayHello (stream HelloRequest) returns (HelloResponse) {}
//双向流式rpc
rpc sayHelloAll (stream HelloRequest) returns (stream HelloResponse) {}
}
message HelloRequest{
string name = 1;
}
message HelloResponse{
string message = 1;
}
使用maven插件生成客户端和服务端代码