- 博客(64)
- 资源 (59)
- 问答 (1)
- 收藏
- 关注
原创 【深入解析spring cloud gateway】13 Reactive Feign的使用
step1:创建自定义类CustomBlockingLoadBalancerClient.javaCustomBlockingLoadBalancerClient.java继承BlockingLoadBalancerClient.java,并重写方法BlockingLoadBalancerClient#choose(java.lang.String, org.springframework.cloud.client.loadbalancer.Request)/**
2024-04-12 14:58:52 802
原创 【stomp实战】Springboot+Stomp协议实现聊天功能
本示例实现一个功能,前端通过websocket发送消息给后端服务,后端服务接收到该消息时,原样将消息返回给前端。前端技术栈html+stomp.js,后端SpringBoot。
2024-02-08 15:46:05 1983
原创 【stomp实战】websocket原理解析与简单使用
WebSocket是HTML5提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。WebSocket 的出现就解决了半双工通信的弊端。它最大的特点是:服务器可以向客户端主动推动消息,客户端也可以主动向服务器推送消息。WebSocket 特点的如下:● 支持双向通信,实时性更强● 可以发送文本,也可以发送二进制数据。
2024-02-08 09:46:49 1547 1
原创 计算机网络(超级详细笔记)
计网的知识点比较碎,希望可以帮到大家!互联网的两大基本特点:连通性和共享性使上网用户之间,不管相距多远,都可以便捷经济地交换各种信息,好像这些用户的终端都彼此直接连通一样。指资源共享,例如信息共享,软件共享,硬件共享等等。计算机网络(网络):由若干节点和连接这些节点的链路组成(节点可以为计算机、集线器、交换机或路由器等)。互连网:网络之间通过路由器连接,构成更大的网络,就是互连网。互联网:由数量庞大的各种计算机网络互联起来形成的网络。
2024-01-03 11:38:44 3317 1
原创 【docker实战】安装tomcat并连接mysql数据库
本节用docker来安装tomcat,并用这个tomcat连接我们上一节安装好的mysql数据库。
2023-12-30 18:08:43 842
原创 【docker实战】01 Linux上docker的安装
Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP。
2023-12-27 17:12:56 558
原创 【深入解析spring cloud gateway】12 gateway参数调优与分析
本节主要对网关主要的一些参数做一些解释说明,并用压测工具测试一下网关的接口,通过压测来验证参数配置是否合理。
2023-12-21 17:15:07 3554
转载 【测试实战】JMeter 从入门到精通
jmeter:是Apche公司使用Java平台开发的一款测试工具。examples目录中有CSV样例jmeter.batwindows 的启动文件jmeter.shLinux 的启动文件jmeter.logjmeter 运行日志文件系统配置文件windows分布式测试要用到的服务器配置Linux分布式测试要用到的服务器配置打开:右击 -->修改后需要重启jmeter 使用①csv数据文化配置(配置元件中)适用于大量的测试数据时的使用②用户参数(前置处理器中)适用于少量测试数据。
2023-12-15 11:35:30 74
原创 【深入解析spring cloud gateway】10 用最简单的方式修改gateway请求报文
上面我们分析了Gateway修改请求报文的源码,并且利用委派的方式,将修改请求报文的实现细节交给了Gateway的已实现的源码。避免了自己大量操作buffer或者stream的操作。如果不用这种方式的话,大家也可以尝试自己来实现。主要还是ModifyRequestBodyGatewayFilterFactory中的一些实现细节,只是比较麻烦。
2023-12-07 20:15:20 809
原创 【LVS实战】05 keepalived脑裂问题解决方案
脑裂(split-brain):指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏。对于无状态服务的HA,无所谓脑裂不脑裂;但对有状态服务(比如MySQL)的HA,必须要严格防止脑裂。那么keepalived是如何解决或者防止脑裂问题的?
2023-12-02 21:15:51 1108
原创 【LVS实战】04 LVS+Keepalived实现负载均衡高可用
Keepalived 是一个用于 Linux 平台的高可用性软件。它实现了虚拟路由器冗余协议 (VRRP) 和健康检查功能,可以用于确保在多台服务器之间提供服务的高可用性。Keepalived 可以检测服务器的故障,并在主服务器宕机时,自动将备份服务器提升为主服务器,确保服务的持续性和可用性。Keepalived 可以在主备服务器之间动态分配虚拟 IP 地址,使客户端能够在主备服务器之间无缝切换,提高服务的可用性。此外,Keepalived 还支持基于文本文件的配置和基于 SNMP 的监控。
2023-12-02 20:17:42 1121
原创 【Linux网络】Linux网络抓包工具tcpdump
tcpdump 是一个Linux的网络抓包工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。tcpdump 适用于大多数的类Unix系统操作系统(如linux,BSD等)。
2023-11-02 16:01:24 370
原创 【LVS实战】02 搭建一个LVS-NAT模式实验
用虚拟机搭建如下的几台机器,并配置如下的ip关于虚拟机网卡和网络的配置,可以参考主机A模拟外网的机器B为负载均衡的机器C和D为 RealServer。
2023-10-30 10:03:37 385
原创 【LVS实战】01 LVS介绍
LVS(Linux Virtual Server),是一个极好的负载均衡解决方案,它将一个真实服务器集群虚拟成一台服务器来对外提供服务,同时在真实服务器集群中实现了负载均衡。该技术由章文嵩博客发起,从linux2.4开始已经被收录到linux核心中。
2023-10-30 09:59:17 115
原创 【RabbitMQ 实战】12 镜像队列
RabbitMQ的镜像队列是将消息副本存储在一组节点上,以提高可用性和可靠性。镜像队列将队列中的消息复制到一个或多个其他节点上,并使这些节点上的队列保持同步。当一个节点失败时,其他节点上的队列不受影响,因为它们上面都有消息的备份。这提高了消息的可靠性和可用性。镜像队列的设置可以在创建队列时定义。您可以指定要创建的节点数和要在哪些节点上运行备份队列。RabbitMQ支持同步和异步镜像模式。在同步模式下,消息必须被复制到所有备份节点,而在异步模式下,消息可以被复制到一个或多个备份节点。
2023-10-27 16:09:06 920
原创 【RabbitMQ 实战】11 队列的结构和惰性队列
当生产者将消息发送到RabbitMQ的时候,队列中的消息会尽可能地存储在内存之中,这样可以更加快速地将消息发送给消费者。如果要将普通队列转换为隋性队列,那么我们需要忍受性能损耗,需要将缓存中的消息转存到磁盘中,然后才能接收新的消息。惰性队列会将收到的消息直接存入文件系统中,而不管是持久化的或者是非持久化的。这样减少了内存的消耗,但是会增加I/O的使用,如果消息是持久化的,那么这样的I/O操作不可避免。注意如果惰性队列中存储的是非持久化的消息,内存的使用率会一直很稳定,但是重启后消息一样会丢失。
2023-10-11 09:39:43 1173
原创 【RabbitMQ 实战】10 消息持久化和存储原理
交换器、队列、消息都可以设置是否持久化。交换器和队列持久化的含义是元数据持久化。消息持久化的含义是消息本身持久化。将交换器、队列、消息都设置了持久化之后能百分之百保证数据不丢失吗?答案是不能从消费者来说,如果在订阅消费队列时将 autoAck 参数设置为 true,那么当消费者接收到相关消息之后,还没来得及处理就宕机了,这样也算数据丢失。这种情况很好解决,将autoAck 参数设置为 false,并进行手动确认。
2023-10-10 10:32:43 1670 1
原创 【RabbitMQ 实战】09 客户端连接集群生产和消费消息
下面的链接是最快最简单的一种集群部署方法上的的例子中,没有映射端口,所以没法从宿主机外部连接容器,下面的yml文件中,暴露了端口。每个容器应用都映射了宿主机的端口,分别是5602,5612,5622docker compse文件如下通过docker-compose up命令,就可以启动三个集群的容器了。
2023-10-07 09:48:31 848
原创 【docker 实战】Docker数据卷的清理
Docker 在长时间使用的情况下,经常需要删除旧的容器并创建新的容器,长此以往,Docker 的数据卷 volumes 会产生了非常多的僵尸文件,这些将是稳健大都是未绑定容器的目录。
2023-10-07 09:15:02 973
原创 【RabbitMQ 实战】08 集群原理剖析
上一节,我们用docker-compose搭建了一个RabbitMQ集群,这一节我们来分析一下集群的原理。
2023-10-06 21:04:38 1750
转载 Disruptor详解【转载】
ArrayBlockingQueue有三个成员变量:takeIndex: 需要被取走的元素下标putIndex: 可被元素插入的位置的下标count: 队列中元素的数量这三个变量很容易放到一个缓存行中, 但是之间修改没有太多的关联. 所以每次修改, 都会使之前缓存的数据失效, 从而不能完全达到共享的效果.如上图所示, 当生产者线程put一个元素到ArrayBlockingQueue时, putIndex会修改, 从而导致消费者线程的缓存中的缓存行无效, 需要从主存中重新读取.
2023-10-04 21:04:05 65
原创 【iptables 实战】08 iptables 常用规则
说明:iptables中使用“-m 模块关键字”的形式调用显示匹配。咱们这里用“-m mac –mac-source”来表示数据包的源MAC地址。说明:“ESTABLISHED”表示已经响应请求或者已经建立连接的数据包,“RELATED”表示与已建立的连接有相关性的,比如FTP数据连接等。说明:这个用法比较适合对设备进行远程管理时使用,比如位于分公司中的SQL服务器需要被总公司的管理员管理时。说明:“-m state”表示数据包的连接状态,“NEW”表示与任何连接无关的,新的嘛!
2023-10-04 09:09:14 163
原创 【iptables 实战】07 iptables NAT实验
在上一节中,我们将两个网段的机器,通过中间机器的网络转发,能达到互通。再来回顾一下这个网络连接的图上一节我们在防火墙实验中,设置了主机B的的转发规则,我们先清空主机B的转发规则这时候,A和C也是能够互通的。
2023-10-02 22:02:02 421
原创 【iptables 实战】06 iptables网络防火墙实验
如果想要iptables作为网络防火墙,iptables所在主机开启核心转发功能,以便能够转发报文。#使用如下命令查看当前主机是否已经开启了核心转发,0表示未开启,1表示已开启#使用如下两种方法均可临时开启核心转发,立即生效,但是重启网络配置后会失效。方法一:echo 1 > /proc/sys/net/ipv4/ip_forward方法二:sysctl -w net.ipv4.ip_forward=1#使用如下方法开启核心转发功能,重启网络服务后永久生效。
2023-10-02 21:57:42 1365
原创 【iptables 实战】05 iptables设置网络转发实验
同样的,机器C(10.1.0.10)想连机器A(192.168.56.104)也得设置一下路由。通过手动添加路由规则,将A与机器C(10.1.0.10)的报文,都通过网关B进行处理。机器B 两张网卡,分别的ip是192.168.56.106和10.1.0.11。机器A(192.168.56.104)ping 机器C(10.1.0.10)机器C(10.1.0.10)ping机器A(192.168.56.104)实验效果,通过机器B的转发功能,将机器A的报文转发到机器C。现在,A和C机器,就可以互通了。
2023-10-02 21:52:37 1134
原创 【iptables 实战】04 高级用法:iptables模块之state扩展
这个问题的本质,实际上是,我们只想主动连别人,别人不要主动连上我。我请求目标端口为80的报文,只通过80端口,你给我的响应报文,你只要通过自己的80端口想连上我,我通通拒绝!因此,如果黑客通过自己的80端口,想来连我,就会发起第一次握手,因此,如果我们能对这种连接报文拒绝,就能让他无法通过80端口来攻击我。假设我们内部的主机,想访问新闻网站,即访问其80端口。黑客源报文为80端口的话,可以连接我们的主机。TCP连接建立会经历三次握手,三次握手后,才开始正式的通信。于是,流程就变成了下面的效果。
2023-10-02 21:40:56 247
原创 【iptables 实战】03 自定义链
当前的机器IP为:10.1.0.10自定义链IN_WEB,拒绝指定源ip的报文定义INPUT规则,引用 IN_WEB规则可以看到IN_WEB链,这个时候references的数量为1了,表示有链在引用ping 10.1.0.10,可以看到,此时不通了使用”-X”选项可以删除自定义链,但是删除自定义链时,需要满足两个条件:1、自定义链没有被任何默认链引用,即自定义链的引用计数为0。2、自定义链中没有任何规则,即自定义链为空。
2023-10-02 21:37:09 236
原创 【iptables 实战】02 iptables常用命令
既将INPUT链的默认策略设置为了ACCEPT,同时又使用了白名单机制,因为如果报文符合放行条件,则会被前面的放行规则匹配到,如果报文不符合放行条件,则会被最后一条拒绝规则匹配到,此刻,即使我们误操作,执行了”iptables -F”操作,也能保证管理员能够远程到主机上进行维护,因为默认策略仍然是ACCEPT。注意DROP规则是用的A,append,即在ACCEPT之后,添加一条规则。假设,我想要放行ssh远程连接相关的报文,也想要放行web服务相关的报文,那么,我们在INPUT链中添加如下规则。
2023-10-02 21:35:34 380
原创 【iptables 实战】01 iptables概念
我们知道,防火墙的作用就在于对经过的报文匹配”规则”,然后执行对应的”动作”,所以,当报文经过这些关卡的时候,则必须匹配这个关卡上的规则,但是,这个关卡上可能不止有一条规则,而是有很多条规则,当我们把这些规则串到一个链条上的时候,就形成了”链”,所以,我们把每一个”关卡”想象成如下图中的模样 ,这样来说,把他们称为”链”更为合适,每个经过这个”关卡”的报文,都要将这条”链”上的所有规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作。这是后话,后面再聊,在实际使用时我们即可更加的明白。
2023-10-02 21:30:12 242
原创 【RabbitMQ实战】06 RabbitMQ配置
一般情况下,可以使用默认的内建配置来有效地运行RabbitMQ,并且大多数情况下也并不需要修改任何 RabbitMQ的配置。当然,为了更加有效地操控 RabbitMQ,也可以利用调节系统范围内的参数来达到定制化的需求。RabbitMQ提供了三种方式来定制化服务:(1)环境变量(Enviroment Variables )。RabbitMQ服务端参数可以通过环境变量进行配置,例如,节点名称、RabbitMQ配置文件的地址、节点内部通信端口等。(2)配置文件(Configuration File )
2023-09-28 09:56:07 1085
原创 【RabbitMQ实战】07 3分钟部署一个RabbitMQ集群
我们还是利用docker来安装RabbitMQ集群。3分钟安装一个集群,开始。前提条件,docker安装了docker-compose。进入控制台:http://192.168.56.201:15672/#/如上面所示,我们进入ID为a8abe421a79a的容器。用cat命令,输出到docker-compose.yml。启动完成后,发现确实是启了三个RabbitMQ的容器。账号默认是:用户名:user,密码:bitnami。这是最简单的方式安装一个RabbitMQ集群。
2023-09-26 20:46:40 752
原创 【RabbitMQ实战】05 RabbitMQ后台管理
RabbitMQ默认创建的vhost 为“/”,如果不需要多个 vhost 或者对 vhost的概念不是很理解,那么用这个默认的vhost 也是非常合理的,使用默认的用户名 guest 和密码 guest 就可以访问它。RabbitMQ management插件可以提供Web管理界面用来管理如前面所述的虚拟主机、用户等,也可以用来管理队列、交换器、绑定关系、策略、参数等,还可以用来监控 RabbitMQ服务的状态及一些数据统计类信息,可谓是功能强大,基本上能够涵盖所有RabbitMQ管理的功能。
2023-09-25 17:34:04 1056
原创 【docker实战】docker-compose的安装和使用
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。如果你还不了解 YML 文件配置,可以先阅读 YAML 入门教程。Compose 使用的三个步骤:使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
2023-09-25 09:02:16 824
原创 【RabbitMQ实战】04 RabbitMQ的基本概念:Exchange,Queue,Channel等
Message Queue的需求由来已久,80年代最早在金融交易中,高盛等公司采用Teknekron公司的产品,当时的Message queuing软件叫做:the information bus(TIB)。TIB被电信和通讯公司采用,路透社收购了Teknekron公司。之后,IBM开发了MQSeries,微软开发了Microsoft Message Queue(MSMQ)。这些商业MQ供应商的问题是厂商锁定,价格高昂。
2023-09-23 22:26:03 310
原创 【RabbitMQ实战】 03 SpringBoot RabbitMQ生产者和消费者示例
上一节我们写了一段原生API来进行生产和消费的例子。实际上SpringBoot对原生RabbitMQ客户端做了二次封装,让我们使用API的代价更低。
2023-09-23 21:27:50 482
Alibaba Java Coding Guidelines-1.0.5.zip
2018-06-19
微软js调试小工具 MicrosoftScriptDebugger
2014-03-21
基于JSP的成绩管理系统
2012-01-10
基于JSP的成绩管理系统说明
2012-01-10
十天学会DIV+CSS CHM 格式版
2011-10-19
java web 项目开发案例精粹 源代码 part4
2011-10-12
java web 项目开发案例精粹 源代码 part3
2011-10-12
java web 项目开发案例精粹源代码part2
2011-10-12
SQL.Server.2005数据库简明教程.电子教案
2011-10-11
Java开发实战经典 (名师讲坛) 李兴华 扫描版 完整书签
2011-10-11
JAVA EE Eclipse struts hibernate spring 整合应用案例
2011-10-10
Visual C++ 6.0 编程案例精解源代码
2011-04-28
基于JSP的学生成绩管理系统
2011-04-28
C语言学习资料 二级考试必备 非常的全啊 分章节讲解 试题 单项练习
2010-10-28
计算机二级C语言上机 南开一百题完整版 exe 文件 打开就可以看
2010-10-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人