沉淀、分享、成长,让自己和他人都能有所收获
-
windows环境下安装elasticsearch6.2.2
在windows环境下安装Elasticsearch 6.2.2
-
netty案例,netty4.1基础入门篇八《NettyClient半包粘包处理、编码解码处理、收发数据方式》
前言介绍 Netty开发中,客户端与服务端需要保持同样的;半包粘包处理,编码解码处理、收发数据方式,这样才能保证数据通信正常。在前面NettyServer的章节中我们也同样处理了;半包粘包、编码解码等,为此在本章节我们可以把这些知识模块开发到NettyClient中。本章节涉及到的知识点有;LineBasedFrameDecoder、StringDecoder、StringEncoder、ChannelInboundHandlerAdapter等。 开发环境 jdk1.8【jdk1.7以下只能部分支持netty】 Netty4.1.36.Final【netty3.x 4.x 5每次的变化较大,接口类名也随着变化】 telnet 测试【可以现在你的win7机器上测试这个命令,用于链接到服务端的测试命令】 代码示例 itstack-demo-netty-1-08 └── src ├── main │ └── java │ └── org.itstack.demo.netty.client │ ├── MyChannelInitializer.java │ ├── MyClientHandler.java │ └── NettyClient.java └── test └── java └── org.itstack.demo.netty.test └── ApiTest.java MyChannelInitializer.java
-
netty案例,netty4.1基础入门篇七《嗨!NettyClient》
前言介绍 在前六章的案例中使用socket模拟器链接我们的NettyServer,进行通信测试。本章节我们写一个helloworld版的NettyClient客户端,与我们的socket模拟器进行通信。在netty中客户端与服务端的写法基本类似,注意一些细节即可,这也是netty的强大之处,它把nio流与sokcet封装的相当简单易用。 开发环境 jdk1.8【jdk1.7以下只能部分支持netty】 Netty4.1.36.Final【netty3.x 4.x 5每次的变化较大,接口类名也随着变化】 telnet 测试【可以现在你的win7机器上测试这个命令,用于链接到服务端的测试命令】 代码示例 itstack-demo-netty-1-07 └── src ├── main │ └── java │ └── org.itstack.demo.netty.client │ ├── MyChannelInitializer.java │ └── NettyClient.java └── test └── java └── org.itstack.demo.netty.test └── ApiTest.java MyChannelInitializer.java
-
netty案例,netty4.1基础入门篇六《NettyServer群发消息》
前言介绍 在微信或者QQ的聊天中我们经常会用到一些群聊,把你的信息发送给所有用户。那么为了实现群发消息,在netty中我们可以使用ChannelGroup方式进行群发消息。如果为了扩展验证比如你实际聊天有不同的群,那么可以定义ConcurrentHashMap结构来存放ChannelGroup。ChannelGroup中提供了一些基础的方法;添加、异常、查找、清空、发放消息、关闭等。 开发环境 jdk1.8【jdk1.7以下只能部分支持netty】 Netty4.1.36.Final【netty3.x 4.x 5每次的变化较大,接口类名也随着变化】 telnet 测试【可以现在你的win7机器上测试这个命令,用于链接到服务端的测试命令】 代码示例 itstack-demo-netty-1-06 └── src ├── main │ └── java │ └── org.itstack.demo.netty.server │ ├── ChannelHandler.java │ ├── MyChannelInitializer.java │ ├── MyServerHandler.java │ └── NettyServer.java └── test └── java └── org.itstack.demo.netty.test └── ApiTest.java ChannelHandler.java
-
netty案例,netty4.1基础入门篇五《NettyServer字符串编码器》
前言介绍 netty通信就向一个流水channel管道,我们可以在管道的中间插入一些‘挡板’为我们服务。比如字符串的编码解码,在前面我们使用new StringDecoder(Charset.forName(“GBK”))进行字符串解码,这样我们在收取数据就不需要手动处理字节码。那么本章节我们使用与之对应的new StringEncoder(Charset.forName(“GBK”))进行进行字符串编码,用以实现服务端在发送数据的时候只需要传输字符串内容即可。 开发环境 jdk1.8【jdk1.7以下只能部分支持netty】 Netty4.1.36.Final【netty3.x 4.x 5每次的变化较大,接口类名也随着变化】 telnet 测试【可以现在你的win7机器上测试这个命令,用于链接到服务端的测试命令】 代码示例 itstack-demo-netty-1-05 └── src ├── main │ └── java │ └── org.itstack.demo.netty.server │ ├── MyChannelInitializer.java │ ├── MyServerHandler.java │ └── NettyServer.java └── test └── java └── org.itstack.demo.netty.test └── ApiTest.java MyChannelInitializer.java 编码器StringEncoder
-
netty案例,netty4.1基础入门篇四《NettyServer收发数据》
前言介绍 本章节主要介绍服务端在收到数据后,通过writeAndFlush发送ByteBuf字节码向客户端传输信息。因为我们使用客户端模拟器的编码是GBK格式,所以代码中也需要将字节码转换为GBK,否则会乱码。 开发环境 jdk1.8【jdk1.7以下只能部分支持netty】 Netty4.1.36.Final【netty3.x 4.x 5每次的变化较大,接口类名也随着变化】 telnet 测试【可以现在你的win7机器上测试这个命令,用于链接到服务端的测试命令】 代码示例 itstack-demo-netty-1-04 └── src ├── main │ └── java │ └── org.itstack.demo.netty.server │ ├── MyChannelInitializer.java │ ├── MyServerHandler.java │ └── NettyServer.java └── test └── java └── org.itstack.demo.netty.test └── ApiTest.java MyChannelInitializer.java
-
netty案例,netty4.1基础入门篇三《NettyServer字符串解码器》
前言介绍 在实际开发中,server端接收数据后我们希望他是一个字符串或者是一个对象类型,而不是字节码,那么; 在netty中是否可以自动的把接收的Bytebuf数据转String,不需要我手动处理? 答;有,可以在管道中添加一个StringDecoder。 在网络传输过程中有半包粘包的问题,netty能解决吗? 答:能,netty提供了很丰富的解码器,在正确合理的使用下就能解决半包粘包问题。 常用的String字符串下有什么样的解码器呢? 答:不仅在String下有处理半包粘包的解码器在处理其他的数据格式也有,其中谷歌的protobuf数据格式就是其中一个。对于String的有以下常用的三种: LineBasedFrameDecoder 基于换行 DelimiterBasedFrameDecoder 基于指定字符串 FixedLengthFrameDecoder 基于字符串长度 开发环境 jdk1.8【jdk1.7以下只能部分支持netty】 Netty4.1.36.Final【netty3.x 4.x 5每次的变化较大,接口类名也随着变化】 telnet 测试【可以现在你的win7机器上测试这个命令,用于链接到服务端的测试命令】 代码示例 itstack-demo-netty-1-03 └── src ├── main │ └── java │ └── org.itstack.demo.netty.server │ ├── MyChannelInitializer.java │ ├── MyServerHandler.java │ └── NettyServer.java └── test └── java └── org.itstack.demo.netty.test └── ApiTest.java MyChannelInitializer.java
-
netty案例,netty4.1基础入门篇二《NettyServer接收数据》
前言介绍 繁事都需要一个简单的入门的点,尤其学习程序员行业的知识最快的方式是先运行期helloworld,往往这样一个简单能运行的例子,就能解除你当前遇到的所有疑惑。切记,对于一个初学者,不建议上来就研究理论,实操往往更重要。本章节介绍使用netty端写一个能接收数据的socketServer服务端,通过实现通道适配器ChannelInboundHandlerAdapter.channelRead获取并并解析接收数据。
-
netty案例,netty4.1基础入门篇一《嗨!NettyServer》
前言介绍 凡是新知识都需要有个入门的案例,一个简单的输入输出就能解除你当前遇到的所有疑惑。不要总想着先学理论后学实战。【X东方还135学理论,246学实战,800个床位不锈钢】,本案例专题主要介绍netty4.1的使用。
-
netty案例,netty4.1基础入门篇零《初入JavaIO之门BIO、NIO、AIO实战练习》
前言介绍 在Java中,提供了一些关于使用IO的API,可以供开发者来读写外部数据和文件,我们称这些API为Java IO。IO是Java中比较重要知识点,且比较难学习的知识点。并且随着Java的发展为提供更好的数据传输性能,目前有三种IO共存;分别是BIO、NIO和AIO。
-
基于JavaAgent的全链路监控六《开发应用级监控》
在我们的监控程序中,需要对各种模块进行监控;servlet、rpc、http、jdbc、redis、logic等,那么我们在设计监控程序时就需要对监控的程序进行模块化开发,可以在需要的时候进行组装配置即可,以方便我们监控程序的扩展和可控制性。这一章节我们把监控模块剥离,采用工厂模式进行调用{目前是静态工厂在我们实际使用中可以把工厂做成动态配置化}。
-
基于JavaAgent的全链路监控五《ThreadLocal链路追踪》
Google开源的Dapper链路追踪组件,并在2010年发表了论文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》,这篇文章是业内实现链路追踪的标杆和理论基础,具有非常大的参考价值。目前,链路追踪组件有Google的Dapper,Twitter 的Zipkin,以及阿里的Eagleeye (鹰眼)等,它们都是非常优秀的链路追踪开源组件。本文主要讲述如何在Spring Cloud Sleuth中集成Zipkin。在Spring Cloud Sleuth中集成Zipkin非常的简单,只需要引入相应的依赖和做相关的配置即可。
(转载本站文章请注明作者和出处 微信公众号:bugstack虫洞栈 | 作者:小傅哥)