计算机和网络
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
蹊源的奇思妙想
微信公众号:蹊源的奇思妙想
“桃李不言,下自成蹊”的原义是桃树、李树不会说话,但因其花朵美艳,果实可口,人们纷纷去摘取,于是便在树下踩出一条路来。比喻为人真诚笃实,自然就能感召人心,无需张扬夸耀。
展开
-
SpringCloud使用Consul作为服务治理中心
SpringCloud使用Consul作为服务治理中心前言我们在进行开发分布式架构的系统时,有一个不可或缺的工具那就是服务治理组件,我们可以通过它来实现服务的注册、发布和调用,可以理解为它维护着我们所有服务的花名册。目前主流的服务治理中心有Zookeeper、Eureka、Nacos等,但是今天这里我想和大家介绍一下另一种服务治理组件—Consul。Nacos的使用可以参考我的博客:Nacos服务治理中心和配置中心正文ConsulConsul是一个Spring Cloud 中集成好的开源的分布式原创 2020-09-30 00:54:13 · 5754 阅读 · 1 评论 -
使用SVS实现签名验证
使用SVS实现签名验证前言最近开发了一个接口由于是给外部其他系统的调用的,所以为了接口安全性,我们需要选择一个符合业务需求的请求机制。根据和合作方的协商,我们决定采用了SVS签名验证的方式来保证接口的安全性。正文数字签名数字签名指的是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它的基本原理是将原文用对称密钥加密传输,而将对称密钥用收方公钥加密发送给对方。收方收到电子信封,用自己的私钥解密信封,取出对称密钥解密得原文。使用sv原创 2020-09-10 22:56:58 · 15098 阅读 · 4 评论 -
微服务网关-Gateway
微服务网关-Gateway前言近期做的项目,每次新增一个接口都需要提jira工单在公司的网关平台上申请接口权限。那么什么是网关?我们为什么要使用网关呢……一些列问题在我脑海里出现。正文网关的简介网关是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求、鉴权、监控、缓存、限流等功能。微服务使用网关的意义不同的微服务一般会有不同的网络地址,而客户端可能需要调用多个服务接口才能完成一个业务需求,若让客户端直接与各个微服务通信,会有以下问题:客户端会多次请求不同原创 2020-08-31 13:43:01 · 14154 阅读 · 3 评论 -
使用Mac系统来进行Java编程
使用Mac系统来进行Java编程第一步:安装jdk环境1.Jdk1.8百度云下载地址下载完成后,傻瓜式点击下一步,即可:2.验证java环境 java -version第二步:下载idea下载idea 2019.3版本 官网地址原创 2020-08-24 13:11:17 · 15820 阅读 · 3 评论 -
Hadoop上传文件到hdfs中
hadoop常见指令:hdfs dfs -copyFromLocal /local/data /hdfs/data:将本地文件上传到 hdfs 上(原路径只能是一个文件) hdfs dfs -put /tmp/ /hdfs/ :和 copyFromLocal 区别是,put 原路径可以是文件夹等 hadoop fs -ls / :查看根目录文件 hadoop fs -ls /tmp/da...原创 2018-08-27 00:02:31 · 48876 阅读 · 0 评论 -
安装spark详细步骤
Spark具有从存储在HDFS或者HadAPI(Hive、HBase等)中的任何文件创造分布式弹性数据集的能力。Spark的调度方式有: yarn-cluster 适合生产场景 yarn-client 有互动需求 local 小规模本地运算Spark+Hadoop 的结合能够提供内存级性能的企业级应用的威力。安装前准备: 名称 版本 JDK...原创 2018-08-27 15:12:29 · 2278 阅读 · 0 评论 -
BIO、NIO与AIO的区别
BIO、NIO与AIO的区别 同步阻塞BIO: 连接线程 同步非阻塞NIO:请求线程 异步非阻塞AIO:有效请求线程同步 vs 异步 同步:JAVA自己处理IO读写 异步:将IO读写委托给OS(系统)非阻塞 ...原创 2018-08-28 20:57:06 · 2092 阅读 · 0 评论 -
Tomcat组件
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。TomCat的组件: Tomcat最顶层是Server,一个Server可以有多个Service 用于提供应用服务。Tomcat的核心组件就是Connector 和Container: 1.Connector:用...原创 2018-09-04 20:55:23 · 2441 阅读 · 0 评论 -
计算机网络IP地址分配
子网掩码: 一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。 利用子网掩码可将大的网络分成几个小的网络。IPv4地址分为A,B,C,D,E类:(根据子网掩码的网段可以判断 缺省掩码的个数)A类:1.0.0.0~126.255.255.255,默认子网掩码/8,即255.0.0.0 (其中127.0.0.0~127.255.255.255为环回地...原创 2018-09-10 00:13:22 · 8214 阅读 · 1 评论 -
Http协议
HTTP协议:如何区分无状态协议和状态协议:是否存在客户端信息无状态协议(不保存):UDP、Http有状态协议(保持):TCP、FTP#Http协议状态码(与上述含义状态不同):示网页服务器HTTP响应状态的3位数字代码2xx:表示请求成功3xx:重定向4xx:请求出错5xx:服务器故障#短连接和长连接1.长连接:数据过程中,保持TCP连接不断开。等待在同域名下继续用这个 通...原创 2018-09-29 22:24:25 · 1737 阅读 · 0 评论 -
linux PK windows
linux相对于windows的优势:1.linux是开源、免费的,它的很多工具也是免费的;2.linux相对而言使用人数比较少,病毒比较少,并且由于开源很多Bug容易被找到,它是相对安全的3.linux权限管理更加严谨4.linux安装软件相对便捷(使用库的概念)5.linux可以摆脱桌面,适用于服务器(用于特殊用处)6.拥有多种发行版本、很少死机、安装软件不必重启系统linux相...原创 2018-10-06 22:16:48 · 1970 阅读 · 0 评论 -
Http响应
Http响应的组成成分状态码:描述了响应的状态HTTP头部:包含更多关于响应的信息。(编码格式)主体:包含了响应内容。(HTML代码,图片,等)Http协议状态码(与上述含义状态不同):示网页服务器HTTP响应状态的3位数字代码2xx:表示请求成功3xx:重定向4xx:请求出错5xx:服务器故障常见的媒体格式Content-Type类型如下:response.setConte...原创 2018-10-07 16:21:42 · 1862 阅读 · 0 评论 -
linux的目录结构
**linux的目录结构**/ 只有root用户具有该目录下写的权限。/root 管理员的主目录/bin 用户二进制文件:系统的所有使用的命令都设在这里,如:ps、ls、ping/sbin 系统二进制文件:包含linux命令由管理员使用,用于对系统进行维护,如iptables、reboot、fdisk、ifconfig/etc 配置文件:包含所有程序需要的配置文件。/dev 设...原创 2018-10-09 22:33:27 · 1734 阅读 · 0 评论 -
TCP协议机制
#TCP的三次握手: syn同步序列号 ack确认序号1.第一次:客户端发送同步序列编号 客户端进入send状态 syn=12.第二次:服务器端接收客户端发送的同步序列号,并且发送该同步序列号和确认字符 服务器进入接收状态 syn=1 ack=13.第三次:客户端接收同步序列号和确认字符 连接成功TCP数据包结构:(偏移量、窗口字段、端口号)#TCP/IP协...原创 2018-10-10 22:31:41 · 2022 阅读 · 0 评论 -
引用和指针的区别
引用于指针的区别:1.指针是一个实体,引用仅仅是个别名(即引用没有内存空间)2.引用必须且只能初始化一次,而指针不用并是可变的3.引用不可以为空,但是指针可以为空4.sizeof 引用得到的是所指向的变量(对象)的大小;sizeof 指针得到的是引用本身5.指针(指针移动)和引用(引用地址中值的运算)的自增运算意义不一样...原创 2018-10-11 20:46:03 · 1910 阅读 · 0 评论 -
TCP与UDP的区别
#TCP(端口号为23)与UDP(端口号为53)的区别1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的UDP没有拥塞控制,因此...原创 2018-10-11 22:38:47 · 1864 阅读 · 0 评论 -
计算机网络协议
各类协议:arp是地址解析协议: 根据IP地址获取物理地址的一个TCP/IP协议。arp缓存就是IP地址和MAC地址关系缓存列表。提高网络效率,但存在安全隐患。ICMP报文协议(放在IP数据报的报头部分):用于在IP主机、路由器之间传递控制信息。基域TCP/IP协议。TFTP协议:用来在客户机与服务器之间进行简单文件传输的协议。基于TCP/IP协议。HTTP协议:超文本传输协议,适用于分...原创 2018-10-11 22:40:26 · 2053 阅读 · 0 评论 -
计算机网络层次结构
#OSI层次结构 OSI :开放式系统互联第一层: 物理层(通过媒介传输比特,确定机械和电气规范,即比特) 网线,集线器 RJ45、CLOCK、IEEE802.3第二层:数据链路层(将比特组装成帧和点对点的传递) 网卡,交换机 PPP、FR、HDLC、VALM、MAC第三层:网络层(负责数据包传递和网际连接) 路由器 (三层交换机) IP、ICMP、ARP、RARP、O...原创 2018-10-11 22:53:19 · 9501 阅读 · 0 评论 -
VI编辑器
VI编辑器是Linux和Unix最基本的文本编辑器。VIM是其增强版本。具有三种模式,输入模式、命令模式、末行模式。关闭文件末行模式下 w:保存 q:退出 wq 或 x:保存退出,wq 和 x 都是保存退出 q!:强制退出 w!:强制保存,管理员才有权限命令模式` ZZ:保存并退出光标移动命令模式下①逐字符移动 h:向左 l...原创 2018-10-12 19:14:54 · 1793 阅读 · 0 评论 -
负载均衡的解决方案
我们在设计分布式系统的时候往往需要考虑系统的伸缩性,这里所说的伸缩性指的是我们可以通过添加服务器节点的方式来提升我们整个系统的并发能力,这种提高伸缩性的基础原理其实就是我们所说的——负载均衡。原创 2018-10-12 21:15:04 · 2248 阅读 · 0 评论 -
硬链接与软链接
Linux 文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。两者的区别:1.软连接可以跨文件系统,硬链接不可以;2.硬链接不管有多少个只会指向同一个索引节点,软链接不直接使用索引节点号作为文件指针,而是使用文件路径名作为指针。3.软链接可以对一个不存在的文件名进行链接4.软链接可以对目录进行链接...原创 2018-10-12 21:51:45 · 1792 阅读 · 0 评论 -
操作系统虚拟化
操作系统虚拟化什么是虚拟化?虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。如何实现虚拟化?进行操作系统虚拟化,通常要对 CPU、内存、IO经行虚拟化。CPU:通常使用时间片、多核的方法达到对CPU的分割;内存:内存是CPU可以进行直接寻址的存储空间,通常使用分段、分页的手段达到逻辑分割;IO:即输入\输出,以网卡、磁盘为例:磁盘:采用磁盘映像文件的方式实现分割,通常...原创 2018-10-14 19:40:32 · 7334 阅读 · 0 评论 -
时间表达式
时间表达式(cronExpression表达式)格式:分 时 日 月 周“”:字符代表所有可能的值因此,“”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天“/”:字符用来指定数值的增量例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟 ;在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的...原创 2018-10-22 22:18:37 · 4018 阅读 · 0 评论 -
Tomcat生产性能调优的方法
Tomcat企业级生产性能调优7个方式:1.增加JVM堆内存大小 : 通过增加JVM的栈内存实现,使JVM通常不去调用垃圾回收器,所以服务器可以更多关注处理web请求,并要求尽快完成。2.修复JRE内存泄漏 :tomcat 提供一个监听器来处理JRE和PermGen的内存泄漏。3.线程池设置 :线程池指定Web请求负载的数量,因此,为获得更好的性能这部分应小心处理。4.压缩 :对比较大文...原创 2018-11-15 13:00:11 · 1874 阅读 · 0 评论 -
Https与Http比较
HTTPS和HTTP的区别主要如下:1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传...原创 2018-11-22 17:18:03 · 2198 阅读 · 0 评论 -
NIO和AIO的区别
NIO和AIOBIO的阻塞问题无论是客户端还是服务器,同一时间只能发送或者接受一个信息。处于等待回复的间隔,便是"阻塞"问题。即使使用多线程的方式 服务器端的accept()、read()方法依旧会被阻塞。NIO同步非阻塞——是对BIO同步阻塞的改进NIO,又称为多路复用I/O模型。应用场景:适用于"高并发"场景 ,其他情况NIO没有明显优势NIO:数据从通道读入缓冲区,从缓冲区写入...原创 2019-06-24 20:55:50 · 5694 阅读 · 0 评论 -
Jetty的使用和基本介绍
Jettyjetty是什么?jetty是一个开源的Servlet容器,它为基于Java的web容器,例如JSP和Servlet提供容器。Jetty是使用Java语言编写的,它的API以jar包的形式发布。可以将Jetty实例化成一个对象,它可以迅速为一些独立运行的Java应用提供网络和web连接。Jetty和tomcat进行比较Tomcat和Jetty都是一种Servlet引擎,他们都支...原创 2019-06-26 12:30:40 · 4068 阅读 · 0 评论 -
Linux性能监控
性能监控工具linux带有的系统性能监控uptime系统时间运行时间连接数1,5,15分钟内的系统平均负载(即平均进程数)topuptime显示信息CPU内存每个进程占CPU的情况vmstatvmstat 采样频率 采样次数可以统计系统的CPU,内存,swap,io等情况us,即CPU占用率,越高说明系统有线程正在频繁切换pidstatpidst...原创 2019-06-27 21:07:28 · 1825 阅读 · 0 评论 -
RPC架构入门
RPC架构入门传统的socket分析(BIO的阻塞问题)阻塞点:sever.accept() ;inputStream.read();单线程情况下只能有一个客户端用线程池可以有多个客户端连接,但是非常消耗线程。NIO的特点单线程可以连接多个客户端选择器可以实现但线程管理多个Channel,新建的通道都要向选择器注册一个SelectionKey键表示了一个特定的通道对象和一个特...原创 2019-06-30 21:32:35 · 1845 阅读 · 0 评论 -
Netty入门
第二部分 Netty入门netty可以运用在那些领域?1分布式进程通信例如: hadoop、dubbo、akka等具有分布式功能的框架,底层RPC通信都是基于netty实现的,这些框架使用的版本通常都还在用netty3.x2、游戏服务器开发最新的游戏服务器有部分公司可能已经开始采用netty4.x 或 netty5.x服务器端public class Server { pub...原创 2019-06-30 22:32:06 · 2214 阅读 · 0 评论 -
Netty源码分析
netty源码分析netty模型selector模式对普通NIO的性能提升NIO可以同时使用多个selector(使用多线程)一个selector可以同时注册多个ServerSocketServer(可以绑定多个端口)单个线程下只能有一个selector,用来实现Channel的匹配及复用半包问题TCP/IP在发送消息的时候,可能会拆包,这就导致接收端无法知道什么时候收到的数据是...原创 2019-07-01 19:41:12 · 1793 阅读 · 0 评论 -
Netty5 案例讲解
Netty5 案例讲解分布式框架中通常使用Netty3.x游戏服务器通常使用Netty4.x、Netty5.x(4、5相差不多,与3相差比较大)Netty5使用对象池取代线程池服务端public class Server { public static void main(String[] args) { //服务类 ServerBootstrap b...原创 2019-07-03 21:49:49 · 2239 阅读 · 0 评论 -
Netty心跳机制
netty心跳netty3实现心跳检测handleUpstream内部实现了IdleStateHandler#第一步在管道中添加心跳检测 HandlerChannelPipeline pipeline = Channels.pipeline();#1.定时器 2.读超时 3.写超时 4.读写超时pipeline.addLast("idle", new IdleStateHandler(...原创 2019-07-03 21:53:23 · 2214 阅读 · 0 评论 -
Netty序列化协议Protocol buff
序列化协议序列化和反序列化把对象转换为字节序列的过程称为对象的序列化,把字节序列恢复为对象的过程称为对象的反序列化。用途:文件的copy、网络数据的传输Protocol buff(代替JSON)Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展...原创 2019-07-03 21:55:08 · 2061 阅读 · 0 评论 -
Netty自定义序列化协议
自定义序列化协议序列化的目的就是想对象转化成字节数组byteArray阶段一使用流的形式public class Test{public static void main(String[] args) throws IOException { int id = 100; int age = 22; ByteArrayOutputStream arrayOutputStream...原创 2019-07-04 22:19:35 · 2110 阅读 · 0 评论 -
Netty自定义数据包
自定义数据包粘包现象:两个数据包连在一起,导致无法区分。分包现象:一个数据包中的数据被间隔。粘包和分包出现的原因是:没有一个稳定数据结构。数据包的结构:自定义数据包=包头+模块号+命令号+长度+数据包头:4个字节模块号:2个字节short,区分请求类型命令号:2个字节short,区分具体请求长度:4个字节,描述数据部分字节长度数据:更加详细的信息通过序列化方式将下列数据,转化...原创 2019-07-07 22:02:32 · 2662 阅读 · 0 评论 -
Netty粘包分包分析
粘包分包分析消息如何在管道中流通?一个管道中存在多个Handler(事件处理器),消息在通道中通过Handler以事件的形式进行传递。handler往下传递对象的方法是:sendUpstream(event)粘包现象:两个数据包连在一起,导致无法区分。分包现象:一个数据包中的数据被间隔。粘包和分包出现的原因是:没有一个稳定数据结构。FraneDecoderNetty借助继承f...原创 2019-07-07 22:04:09 · 1882 阅读 · 0 评论 -
Netty实际场景运用
实际场景运用Netty实现业务分离(类似于Controller的url)通过自定义注解的方式借助spring来管理自定义注解(spring的生命周期)netty3 到netty4\5之间的转变业务线程池和消息串行化使用线程池的方式,让专门的线程负责专门的业务,避免请求占用大量系统资源利用消息串行化保证一个业务的流程的完整Netty的异步是通过业务线程池来实现的Netty3...原创 2019-07-07 22:06:09 · 2267 阅读 · 0 评论 -
API网关服务:Spring Cloud Zuul
API网关服务:Spring Cloud Zuul门面(facade)模式门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。API Gateway的优势1.给每个客户端一个特定的API,减少了客户端与服务端的连接,简化了客户端代码。2.可以实现web协议和非web协议之间的转换Zuul的优势...原创 2019-09-03 10:17:26 · 1932 阅读 · 0 评论 -
计算机网络之数据链路层
数据链路层数据链路层的工作范围在一个局域网,并且不路由器转发,所以我们使用的VMware搭建的集群不属于数据链路层,因为使用了虚拟路由器。数据链路层使用的信道主要有以下两种类型:点对点信道:使用一对一的点对点通信方式。广播信道:使用一对多的广播通信方式,信道上连接的主机通过共享信道协议来进行数据发送。数据的传输形式数据在物理层以比特流(0或1)的形式传输;数据在数据链...原创 2019-09-27 15:36:54 · 3046 阅读 · 1 评论