自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吃四碗饭的嘤嘤怪的博客

一个爱吃饭的码畜

  • 博客(22)
  • 资源 (12)
  • 收藏
  • 关注

原创 Netty协议栈开发

     由于现代软件的复杂性,一个大型软件系统往往会被人为地拆分称为多个模块,另外随着移动互联网的兴起,网站的规模越来越大,为了能够支撑业务的发展,需要集群和分布式部署。模块之间的通信就需要进行跨节点通信。在传统的Java应用中,通常使用4中方式进行跨节点通信:通过RMI进行远程服务调用 通过Java Socket + Java序列化 RPC框架 Thrift、Apache的Avro...

2018-10-30 19:59:40 4373

原创 设计模式(六)(状态模式、代理模式)

十三:状态模式状态模式允许对象在内部状态改变它的行为,对象看起来好像修改了它的类。意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使用:代码中包含大量与对象状态有关的条件语句。如何解决:将各种具体的状态类抽象出来。关键代码:通常命令模式的接口中只有一个方法...

2018-10-30 14:06:01 4351

原创 Netty协议开发(WebSocket)

WebSocket是H5开始提供的一种游览器与服务器间进行双全工通信的网络技术,WebSocket通信协议与2011年被IETF定义为标准RFC6455,WebSocket API被W3c定义为标准。其特点如下:单一的TCP连接,采用双全工模式通信; 对代理、防火墙和路由器透明; 无头部信息、Cookie和身份验证; 无安全开销; 通过“ping/pong”帧保持链路激活; 服务...

2018-10-28 15:12:48 4445 3

原创 Netty协议开发(HTTP)

HTTP是一个属于应用层的面向对象协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。HTTP协议的URLhttp://host[":"port][abs_path]http表示通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用默认端口80;abs_path指定请求资源的URI。HTTP请求消息(Htt...

2018-10-27 18:43:21 6154

原创 Netty编解码(MessagePack实现)

MessagePack是一个高效的二进制序列化框架,它像JSON一样支持不同语言间的数据交换,但是它性能更快,序列化后码流更小。MessagePack特点:1.编解码高效,性能高;2.序列化后的码流小;3.支持跨语言。实现:首先需要的jar: <dependency> <groupId>io.netty&l...

2018-10-26 21:30:55 6045 3

原创 设计模式(五)(模板方法模式、迭代器模式、组合模式)

十:模板方法模式模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。模板方法模式在一个方法中定义一个算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。好莱坞原则:高层组件会决定什么时候调用低层组件,但是低层组件不能调用高层组件。意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改...

2018-10-26 13:46:54 4338

原创 Netty编解码(Protobuf实现)

Java序列化的缺点Java序列化从JDK1.1版本就已经提供了,它不需要添加额外类库,只需要实现java.io.Serializable并生成序列ID即可。但是在远程服务调用(RPC)时,很少直接使用Java序列化进行消息的编解码和传输,原因有一下几点:1.无法跨语言最致命的原因:由于Java序列化技术是Java内部的私有协议,其他语言并不支持,所以相对于用户来说它完全是黑盒。而RP...

2018-10-25 23:14:49 6745

原创 Netty粘包/拆包(二)

利用DelimiterBasedFrameDecoder解决TCP粘包问题服务端:import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitiali...

2018-10-24 21:28:38 4170

原创 设计模式(四)(适配器模式、外观模式)

八:适配器模式适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。何时使用: 1、系统需要使用现有的类,而此类的...

2018-10-24 14:08:11 4169

原创 Netty粘包/拆包(一)

TCP出现粘包拆包原因有三个:1.应用程序write写入的字节大小大于套接口发送缓冲区大小;2.进行MSS(最大报文长度)大小的TCP分段(TCP报文长度-TCP头部长度>MSS的时候将发生拆包);3.以太网帧的payload大于MTU(最大数据包大小)进行IP分片。粘包的解决方案:1.消息定长,例如每个报文的大小为固定长度200字节,如果不够,空格补空格;2.在...

2018-10-23 23:32:55 5601

原创 设计模式(三)(单例模式、命令模式)

六:单例模式单例模式确保一个类只有一个实例,并提供一个全局访问点。意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。关键代码:构造函数是私有的。应用实例: 1、一个党只能有一个主席。 2、Window...

2018-10-23 16:16:30 4348

原创 Socket编程(三)(AIO)

NIO 2.0引入了新的异步概念,并提供了异步文件通道和异步套接字通道的实现。异步通道提供两种方式获取操作结果:1.通过java.util.concurrent.Future类来表示异步操作的结果。2.在执行异步操作的时候传入一个java.nio.channels。NIO 2.0的异步套接字通道是真正的异步非阻塞I/O,对应于UNIX网络编程中的事件驱动I/O(AIO)。他不需要通过多...

2018-10-21 19:19:26 4286

原创 Socket编程(二)(NIO)

    与Socket和ServerSocket类相对应,NIO也提供了SocketChannel和ServerSocketChannel两种不同的套接字通道实现。这两种新增的通道都支持阻塞和非阻塞两种模式。1.缓冲区Buffer    Buffer是一个对象,它包含一些要写入或读出的数据。在NIO类库加入Buffer对象,体现了新库与原I/O的一个重要区别。在面向流的I/O中,可以将数据...

2018-10-21 14:13:05 4072

原创 设计模式(二)(装饰者模式、工厂方法模式、抽象工厂模式)

三:装饰者模式装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。何时使用:在不想增加很多子类的情况下扩展类。如何解决:将具体功能职...

2018-10-19 17:41:29 4272

原创 设计模式(一)(策略模式、观察者模式)

一:策略模式策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何解决:将这些算法封装成一个一个的类,任意地替...

2018-10-17 15:55:17 4892 1

原创 Socket编程(一)(BIO)

1.套接字地址一个客户端要发起一次通信,首先要知道运行服务器端程序的主机IP地址。然后由网络基础设施利用目标地址将客户端发送的信息传递到正确主机上。在Java中,地址可以由一个字符串定义,可以是数字型的地址(192.168.1.10(IPv4地址),fe20:12a0::0abc:1234(IPv6地址)),也可以是主机名(www.baidu.com)。在后面的例子中,主机名必须被解析出数字型...

2018-10-13 19:40:44 4563

原创 Spring Cloud Sleuth(分布式服务跟踪)(1)

首先准备工作如下:1.服务注册中心:eureka-server。2.微服务应用:trace-1,实现REST接口,并调用trace-2应用的接口。其pom.xml文件如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:...

2018-10-09 21:35:01 4608

原创 Spring Cloud Bus(消息总线)(1)

消息代理消息代理是一种消息验证、传输、路由的架构模式。它在应用程序之间起到通信调度并最小化应用之间的依赖作用,使得应用程序可以高效地解耦通信过程。消息代理是一个中间件产品,它的核心是一个消息的路由程序,用来实现接受和分发消息,并根据设定好的消息处理流来转发给正确的应用。它包括独立的通信和消息传递协议,能够实现组织内部和组织间的网络通信。常用的场景有:1.将消息路由到一个或多个目的地。2...

2018-10-06 16:45:35 7327

原创 RabbitMQ安装

1.首先下载RabbitMQ所需的erlang环境:http://www.erlang.org/downl2.然后下载RabbitMQ:http://www.rabbitmq.com/download.html下载rabbitmq-server-3.7.8.exe然后安装即可。确认开启RabbitMQ服务。然后如果想要开启web页面,需要进入sbin目录然后运行ra...

2018-10-05 21:45:42 4992

原创 Spring Cloud Config(分布式配置中心)(2)

占位符配置URL{application},{profile},{label}这些占位符除了用于标识配置文件的规则外,还可以用于Config Server中对Git仓库地址的URI配置。{application}代表了应用名,Config Server会根据客户端的spring.application.name信息来填充{application}占位符以定位配置资源的存储位置,从而实现根据...

2018-10-04 21:34:30 4006

原创 Spring Cloud Config(分布式配置中心)(1)

Spring Cloud Config 是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息,加密、解密信息等访问接口。而客户端则是微服务架构中的各个微服务应用或基础设施,它通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获...

2018-10-02 22:28:27 4045

原创 Spring Cloud Zuul(API网关服务)(3)

过滤器在Spring Cloud Zuul中实现的过滤器必须包含4个基本特征:过滤类型,执行顺序,执行条件,具体操作。这就是ZuulFilter接口中定义的4个抽象方法: public abstract String filterType(); public abstract int filterOrder(); boolean shouldFilter();...

2018-10-01 11:12:32 4085

Java+海康SDK DEMO

Java SpringBoot框架+海康SDK Linux版本代码,集成了所需的告警DEMO(存储在influxDB)。有获取该NVR下所有设备的接口,以及获取该NVR下某个时间段的视频文件下载,并转成MP4文件。

2020-12-05

Nessus-7.2.3-x64.msi

* 提供完整的电脑漏洞扫描服务, 并随时更新其漏洞数据库。 * 不同于传统的漏洞扫描软件, Nessus 可同时在本机或远端上摇控, 进行系统的漏洞分析扫描。 * 其运作效能能随着系统的资源而自行调整。如果将主机加入更多的资源(例如加快CPU速度或增加内存大小),其效率表现可因为丰富资源而提高。 * 可自行定义插件(Plug-in)

2020-07-15

spade114.zip

Sam Spade提供了一个友好的GUI界面,能方便地完成多种网络查询任务,能用于大量的网络探测、网络管理和与安全有关的任务,包括ping、nslookup、whois、dig、traceroute等工具,是一个集成的工具箱。        打开Sam Spade后,屏幕最左侧为工具栏,ping等工具按钮都在其中;屏幕左上方的可输入文本框为地址栏,在此输入操作的目标;在地址栏右边即为选项栏,选项栏包含三项,依次为ping设置次数(默认10次)、whois服务器(默认whois.internic.net)、域名服务器。

2020-07-10

odoo-13.0.zip

Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块。Odoo适用于各种规模的企业应用。 Odoo功能模块涵盖了各方面的企业应用:CRM、订单处理(销售订单和采购订单)、电子商务、MRP、财务、库存、门店零售、项目管理等等。 Odoo是完全的模块化结构,初始安装时候,系统没有加载任何应用模块,而后可以根据需要安装对应的功能模块。 Odoo是世界上安装数量最多,用户数量最多的企业ERP系统。Odoo全球有800多个合作伙伴,为100多个国家,200多万使用者提供技术服务。中国有30多家合作公司,为几千家应用Odoo的企业提供技术服务。

2019-12-13

proxy_pool.7z

获取代理IP,通过运行python脚本能自动获取代理IP,并通过接口获取/删除

2019-09-13

gitflow相关文件.zip

git flow安装必备组建,三个一组放在压缩包中。解压后放在git/bin目录下即可。

2019-08-14

jTessBoxEditorFX-2.0.1.zip

训练Tesseract,这个zip里有jTessBoxEditorFX.jar。jTessBoxEditorFX非常适合用来文字识别。

2019-07-22

InfluxDB.zip

InfluxDB Studio是InfluxDB时间序列数据库的UI管理工具。 它的灵感来自于其他类似的数据库管理工具,如SQL Server management Studio和Robomongo。目前,InfluxDB Studio为大多数InfluxDB实现接口和工作流。

2019-06-14

Shell脚本学习指南

Shell脚本编程讲述的是在liunx平台进行脚本编写的方式,从浅入深很适合新人学习。

2018-06-02

java虚拟机高级特性与最佳实践

深入理解java虚拟机第二版jvm高级特性与最佳实践。是学习jvm虚拟机和class文件的一本十分经典的书籍

2018-05-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除