Netty工作笔记0027---Netty概述

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152可以看到netty的core部分,有zero-copy 零copy,然后什么是一些交互api,然后上面是可扩展的事件驱动模型,然后再上面是支持从协议,右边可以看到有HTTP WEBSOCKET ,SSL PROTOBUF编解码的,zlib gzip压缩的等等.然后左边还有http tunnel socket datagram什么的协议....
分类: 其他 发布时间: 09-21 12:33 阅读次数: 0

Netty工作笔记0028---Netty架构设计--线程模型

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152
分类: 其他 发布时间: 09-21 12:32 阅读次数: 0

Netty工作笔记0027---Reactor模式图剖析

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152可以看到传统的,这个handler是个阻塞的handler也就是说一个客户端对应一个服务器线程,然后对应一个handler去处理数据,但是这个handler在客户端没有数据发送的时候是阻塞的.1.可以这样理解,这里的servicehandler 对应3个客户端,然后这个servicehandler其实就是一个分发的作用,可以看到servicehandler后面是线程池,
分类: 其他 发布时间: 09-21 12:32 阅读次数: 0

Netty工作笔记0029---单Reactor单线程模式

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152打开程序,找对应的组件这个select就是个选择器,可以认为充当了Reactor的角色,reactor发现有连接的话就调用accept这里,下一个客户端来的时候,就调用数据读取客户端的数据可以看到这里readData()读取客户端的数据.这样一看就相当于上面的结构了.一个selector当做reactor,然后有连接的时候,reactor去accept,然后下一
分类: 其他 发布时间: 09-21 12:32 阅读次数: 0

Netty工作笔记0031---主从Reactor多线程

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152这个主从Reactor多线程模式,其实也是只有一个Reactor主线程,可以看到这个线程负责,监听客户端发过来的accept请求,然后帮助客户端accept建立连接以后,就把这个连接放给Reactor子线程出去里,然后Reactor子线程,然后再去把请求,分发给不同的handler1中,然后,每个handler再把对应的请求,转发到worker线程池中,然后对应的线程先去对数据进行解码,然
分类: 其他 发布时间: 09-21 12:32 阅读次数: 0

Netty工作笔记0032---Netty模型--通俗版

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152客户端会把请求发送到BossGroup中,然后BossGroup只关注accept事件.可以看看,这里BossGroup,这里是左边,WorkerGroup是右边的情况.可以看到这个实际上,就做到了多线程对多线程的处理,每个selector实际上都会用NIOEventLoop去监听,IO通道中有没有事件发生,有的话再去处理,如果一个selector不够,还可以用多个se
分类: 其他 发布时间: 09-21 12:31 阅读次数: 0

Netty工作笔记0032---Netty模型--详细版

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152可以认为pipeline包含了channel,因为从pipeline是可以获取channel的.管道中维护的处理器,可以用来处理各种各样的事件.
分类: 其他 发布时间: 09-21 12:31 阅读次数: 0

Netty工作笔记0033---Netty入门--服务端1

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152创建maven项目,然后引入maven包怎么样添加maven包呢>?选择project structuremodules然后,点击加号可以看到这里是添加过的,如果没添加,就点击new library写入io.netty-netty-all然后等他去搜索等待搜索搜索以后,选择一个稳定的版本这里选择4.1.20..点击OK点击a
分类: 其他 发布时间: 09-21 12:31 阅读次数: 0

Netty工作笔记0034---Netty入门--服务端2

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152注意这里,pipeline是管道,这主要是用来处理事件的业务的而通道,主要是用来读数据和写数据的.这个ByteBuf,这个可能性能会更高一些.这个是Netty的不是NIO的,Netty就是对NIO的一个性能的提升.然后接收到的数据,怎么样把服务器这里处理后的数据发回到客户端嗯?这里这样做,数据读取完毕,以后的这个方法channelReadComplete这个方法就可
分类: 其他 发布时间: 09-21 12:31 阅读次数: 0

Netty工作笔记0034---Netty入门--编写客户端

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152这里来编写客户端跟服务器的编写实际上是很像的.可以看到编写上基本都是差不多的,可以看到客户端,处理数据,也是需要一个handler的注意这里的channelFuture.channel().closeFuture().sync()这个是不是关闭,这个是检测到关闭事件以后才会去关闭.然后异常需要,用try 处理一下.把名字改一下,改成group
分类: 其他 发布时间: 09-21 12:30 阅读次数: 0

Netty工作笔记0030---单Reactor多线程模式

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152
分类: 其他 发布时间: 09-21 12:30 阅读次数: 0

Netty工作笔记0035---Netty案例源码分析

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152来看看前面写的案例可以看到这个bossgroup还有workergroup的底层代码MultithreadEventLoopGroup这里可以看到NettyRuntime.availableProcessors( ) * 2这个就是获取CPU的内核数,然后*2,比如有2个cpu,一个cpu有2个核心那么也就是这里首先workergroup会启动2*2*2=8个线程.
分类: 其他 发布时间: 09-21 12:30 阅读次数: 0

小程序开发到跨端

文件结构小程序分为 app 和 page 两层。app 用来描述整个应用,page 用来描述各个页面。app 由三个文件组成,必须放在项目的根目录。文件必填作用app.js是小程序逻辑app.json是小程序全局设置app.acss否小程序全局样式表page 由四个文件组成,分别是:文件类型必填作用js是页面逻辑axml是页面结构acss否页面样式表json否页面配置注意: 为了方便开发
分类: 其他 发布时间: 09-21 12:30 阅读次数: 0

宽高为auto的元素如何设置动画(折叠面板)

在 css 属性为 auto 的元素不能设置动画,设置了动画也不会有效果,比如下面代码:.dropdown { transition: 0.2s; height: 0;}.dropdown.open { /* 高度发生了改变,但是没有动画. */ height: auto;}折叠面板大家都知道,就是希望有一个元素能够使用CSS transition平滑地折叠和展开,但是它的展开大小需要依赖于里面的内容。已经设置了过渡:transition: 0.2s ,但是展开动画并没有生效。
分类: 其他 发布时间: 09-21 12:29 阅读次数: 0

git subtree 把指定的文件夹推送到指定的分支

例如,某个git项目有三个平行的目录p1/,p2/,p3/。随着开发进程的推移,发现这三个目录的代码或文件的关联度很低,实际上是各自独立的,例如最好用分支p1proj,p2proj,p3proj来进行管理。原来的master分支保留。用git subtree来实现通过分支管理文件。git subtree push --prefix p1 origin p1projgit subtree push --prefix p2 origin p2projgit subtree push --prefix p3
分类: 其他 发布时间: 09-21 12:29 阅读次数: 0

Github隐藏功能:显示自己的README

就是可以在首页显示一个自己的README.md文件,个性化的个人主页。Github有一个全新的秘密功能!现在您可以为您的整个用户名下设置一个README.md文件。这是我的样子:天呐要启用此功能,请创建与用户名同名的仓库:然后添加自述文件.md然后将显示在您的个人资料页面上。就这样!Github提供了这个超级酷的功能!...
分类: 其他 发布时间: 09-21 12:28 阅读次数: 0

如何实现跨项目代码复用

通常我们前端不仅仅只有一个项目,而是有多个项目同时开发,但是往往这多个项目之间代码有一些可以公用的地方,比如说我们的一些组件啥的,一般我们遇到相同的地方都是会直接选择复制,但是这样的问题也很明显,就是一个地方改了,要同时去修改其它的地方,这样显然不太合理,没有达到复用的目的。所有关于这样的情况要想代码复用,我比较推荐使用npm的形式进行管理我们的代码。首先我们创建两个项目project1和project2vue create project1vue create project2然后我们需要在sr
分类: 其他 发布时间: 09-21 12:28 阅读次数: 0

在视图之间设置动画(左右切换动画)

您常常需要让用户在应用的各视图之间切换,不管是从列表换到详情视图,还是显示边栏导航。在这些视图之间设置动画可以吸引用户,并让您的项目更生动活泼。1、使用transform来切换不同视图;避免使用 left、top 或任何其他会触发布局的属性。2、确保使用的所有动画简洁明快,并且设置较短的持续时间。3、考虑在屏幕尺寸增大时您的动画和布局如何变化。力求使所有动画保持 60fps。这样,用户不会觉得动画卡顿,从而不会影响其使用体验。确保任何动画元素内容设置了 will-change。对于视图变换,您很可能
分类: 其他 发布时间: 09-21 12:28 阅读次数: 0

移动端中的各种键盘

HTML5 引入了大量新的输入类型。这些新输入类型可以提示浏览器,屏幕键盘应显示什么类型的键盘布局。用户无需切换键盘,就能更轻松地输入所需信息,并且只看到该输入类型的相应按键。type为url用于输入网址。其开头必须是有效的 URI 架构,例如 http://、 ftp:// 或 mailto:。如下:type为tel用于输入电话号码。它不 执行特定的验证语法,因此,如果要确保特定的格式,可以使用模式属性。如下:type为email用于输入电子邮件地址,并提示键盘上应默认显示 @。如果需要用户提供
分类: 其他 发布时间: 09-21 12:27 阅读次数: 0

vscode插件开发之语言服务器

基本概念语言服务器分为客户端和服务端,vscode插件启动的时候启动的是客户端部分,客户端代码里面会唤起服务端,然后进行通讯。语言服务器可以用任何语言实现,并在自己的进程中运行,以避免性能成本,因为它们通过语言服务器协议(Language Server Protocol )与代码编辑器通信。例如,为了正确验证一个文件,语言服务器需要解析大量的文件,为它建立抽象语法树,并执行静态代码分析。这些操作可能会占用大量的CPU和内存,我们需要确保VSCode代码的性能不受影响。所以就有了语言服务器的诞生。语言
分类: 其他 发布时间: 09-21 12:27 阅读次数: 0