自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(211)
  • 资源 (8)
  • 收藏
  • 关注

原创 【dpdk专题】

DPDK实践一:技术介绍 + 编译运行DPDK实践二:用TestPMD测试DPDK性能和功能

2022-06-04 19:41:36 922

原创 【性能专题】

性能调优 – 系统篇性能调优 – 语言篇性能调优 – 工具篇(testpmd、ftrace、perf)网络测试工具–Iperf、Netperf 、MZ用户态协议栈f-stack

2022-06-04 19:33:45 185

原创 云服务运维

修复:数据库分页查询处理,增加limit。

2024-04-09 20:23:01 807

原创 华为云服务介绍(二)

在 华为云服务介绍(一) 中我们可以看到华为云提供了一系列的云服务,包括计算、存储、网络、数据库、安全等方面的解决方案。通过灵活的系统架构设计,可以充分利用这些云服务技术,从而更好地满足用户的需求。本文从系统架构的角度出发,通过充分利用华为云提供的各种云服务技术,更好地构建系统架构,提升对外服务的质量和性能。下面我们设计实现一个系统,涉及两个服务,每个服务又拆分成多个微服务。API网关跨VPC开放后端服务的基本架构如下:接入nacos:https://support.huaweicloud.com/qs-c

2024-01-05 19:16:59 681

原创 Spring Cloud Alibaba实践 --Sentinel

Sentinel的官方标题是:分布式系统的流量防卫兵。从名字上来看,很容易就能猜到它是用来作服务稳定性保障的。对于服务稳定性保障组件,如果熟悉Spring Cloud的用户,第一反应应该就是Hystrix。但是比较可惜的是Netflix已经宣布对Hystrix停止更新。那么,在未来我们还有什么更好的选择呢?除了Spring Cloud官方推荐的resilience4j之外,目前Spring Cloud Alibaba下整合的Sentinel也是用户可以重点考察和选型的目标。

2023-12-08 23:04:18 1108

原创 Spring Cloud Alibaba实践 --Nacos

Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。在接下里的教程中,将使用Nacos作为微服务架构中的注册中心(替代:eurekba、consul等传统方案)以及配置中心(spring cloud config)来使用。

2023-12-06 11:52:38 440

原创 K8s Docker实践三

在Mac桌面上部署多个Kubernetes节点可以使用Minikube工具。Minikube是一个轻量级的Kubernetes工具,它可以在单个主机上创建一个虚拟集群。现在你已经在Mac桌面上成功部署了一个具有两个节点的Kubernetes集群。你可以使用kubectl命令来管理和操作集群。你应该能够看到两个节点的列表。

2023-11-26 10:17:19 852

原创 K8s Docker实践二

在上文中我们已经基于K8s实现了最简部署,下面我们对K8s进行深入学习。

2023-11-18 00:08:24 1375

原创 K8s Docker实践一

这里我们准备好前面项目。

2023-11-01 20:27:27 1271

原创 Web云服务进阶

当我们在使用互联网时,经常会遇到一些需要身份验证或者保持用户状态的情况。为了实现这些功能,常用的方法有使用cookie、session和token。Cookie是服务器发送到用户浏览器并保存在用户本地的一小段数据。它通常用于记录用户的身份认证、浏览历史、购物车信息等。当用户访问同一个网站时,浏览器会将相应的Cookie信息发送给服务器,以便服务器识别用户并提供个性化的服务。Cookie可以设置过期时间,可以是会话级别的(浏览器关闭后失效)或者长期有效的。

2023-10-25 15:17:02 702

原创 Mysql 索引原理和优化方式

索引是存储引擎用于快速找到记录的一种数据结构。可以联想到字典中的目录。

2023-10-23 20:10:24 162

原创 Spring Boot实践 --Mybatis Interceptor 拦截器应用

通过 MyBatis 提供的强大机制,使用插件是非常简单的,只需实现 Interceptor 接口,并指定想要拦截的方法签名即可。//拦截器具体实现//拦截器的代理类//添加属性@Intercepts // 描述:标志该类是一个拦截器@Signature // 描述:指明该拦截器需要拦截哪一个接口的哪一个方法// @Signature注解中属性:type;// 四种类型接口中的某一个接口,如Executor.class;method;

2023-10-21 20:39:43 683

原创 华为云服务介绍(一)

云搜索服务(Cloud Search Service,简称CSS)是一个基于Elasticsearch且完全托管的在线分布式搜索服务,为用户提供结构化、非结构化文本、以及基于AI向量的多条件检索、统计、报表。云搜索服务是华为云ELK生态的一系列软件集合,为您全方位提供托管的ELK生态云服务,兼容Elasticsearch、Kibana、Cerebro等软件。Elasticsearch是一个搜索引擎,可以实现单机和集群部署,并提供托管的分布式搜索引擎服务。

2023-09-01 21:57:16 1652

原创 MYSQL进阶

左连接包含左表的所有记录,以及与左表匹配的右表中的记录。其中,学生表中的每个记录都与成绩表中符合条件的记录进行了左连接,如果成绩表中没有与学生表匹配的记录,则右表的值为null。sql标签和include标签一般是一起使用的,sql标签中id属性对应include标签中的refid属性。|104 | null | 语文 | 70 || 学号 | 姓名 | 课程 | 分数 ||101 | 张三 | 语文 | 80 ||101 | 张三 | 数学 | 90 ||102 | 李四 | 语文 | 75 |

2023-08-25 21:47:14 359

原创 Spring Boot常用注解

【代码】springboot常用注解。

2023-08-25 21:46:33 180

原创 Spring Boot实践八--用户管理系统(下)

首先,实现两个UserService和AsyncUserService两个服务接口:(1)异步任务通过方法上的和启动类的注解实现,@Async中的参数指定了异步任务使用的的线程池。调用异步方法时不会等待方法执行完,调用即过,被调用方法在自己的线程池中奔跑。(2)多线程执行的返回值是Future类型或void。Future是非序列化的,微服务架构中有可能传递失败。spring boot推荐使用的CompletableFuture来返回异步调用的结果。

2023-08-25 21:45:03 567

原创 Spring Boot实践八--用户管理系统(中)

登录功能:拿到前端传来的帐号和密码后,去数据库验证,验证成功则返回登录成功页面,并将当前登录用户的Session信息保存下来;首先,我们基于mabatis+redis+mysql实现一个user类数据库增删改查的基本功能。注册功能:返回注册页面,将注册信息存入数据库, 并设置发送邮件标志位为1。登录成功后的页面,如果是管理员,显示所有用户list。填入信息后点击注册,通过html的form表单。点击登录按钮,通过html的form表单。点击注册按钮,通过html的form表单。跳到Controller的。

2023-08-18 23:38:14 159

原创 Spring Boot实践八--用户管理系统(上)

本项目是一个基于SpringBoot的用户权限管理系统,主要实现用户的注册、登录、角色管理、权限管理等功能。

2023-08-17 20:33:03 745

原创 Spring Boot实践七--API开发(RESTful API、JWT数字签名与Swagger)

下面我们通过使用Spring MVC来实现一组对User对象操作的RESTful API,配合注释详细说明在Spring MVC中如何映射HTTP请求、如何传参、如何编写单元测试。RESTful API具体设计如下:(1)定义User实体注意:相比1.x版本教程中自定义set和get函数的方式,这里使用@Data注解可以实现在编译器自动添加set和get函数的效果。(2)实现对User对象的操作接口。

2023-08-07 22:16:18 417

原创 Spring Boot实践六 --定时任务(@Scheduled和Elastic Job)

比如:假设当前线程池配置的最大线程数有2个,这个时候/api-1接口中task1和task2处理速度很慢,阻塞了;造成这种现场的原因是:默认情况下,所有用@Async创建的异步任务都是共用的一个线程池,所以当有一些异步任务碰到性能问题的时候,是会直接影响其他异步任务的。为了解决这个问题,我们就需要对异步任务做一定的线程池隔离,让不同异步任务配置不同线程池,互不影响。可以看到,在上面的单元测试中,一共启动了6个异步任务,前三个用的是线程池1,后三个用的是线程池2。

2023-08-02 09:47:38 445

原创 Spring Boot实践五 --异步任务(@Async线程池)

参考:https://blog.didispace.com/spring-boot-learning-2-7-5/

2023-07-30 20:25:35 360

原创 Spring Boot实践四 --Redis缓存和Kafka

随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决这一问题非常好的手段之一。Spring 3开始提供了强大的基于注解的缓存支持,可以通过注解配置方式低侵入的给原有Spring应用增加缓存功能,提高数据访问性能。

2023-07-30 20:20:39 1063

原创 Spring Boot实践三 --数据库访问(JdbcTemplate、mybatis、JPA Hibernate)

2,在src/main/resources/application.properties中配置数据源信息。

2023-07-27 15:48:09 1043

原创 Spring Boot实践二 --Web开发

在之前的示例中,我们通过@RestController来处理请求,所以返回的内容为json对象。那么如果需要渲染html页面的时候,要如何实现呢?在动态HTML实现上,Spring Boot提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。Spring Boot从一开始就建议使用模板引擎,而不是使用JSP。因此,Spring Boot建议使用模板引擎,例如Thymeleaf、Freemarker等,来处理动态内容。

2023-07-26 14:12:15 610

原创 Spring Boot实践一 --快速入门

它提供了一种快速、方便的方式来创建基于Spring的应用程序,而无需繁琐的配置。Spring Boot通过自动配置和约定大于配置的方式,使得开发者可以更加专注于业务逻辑的实现,而不是配置文件的编写。简化的配置:Spring Boot提供了一种简单的方式来配置应用程序,可以通过属性文件、YAML文件或命令行参数来配置应用程序。简化的依赖管理:Spring Boot可以自动管理应用程序的依赖关系,避免了版本冲突和依赖管理的烦恼。自动配置:Spring Boot会根据应用程序的依赖关系自动配置应用程序。

2023-07-25 10:29:32 481

原创 JAVA设计模式

提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类.抽象工厂模式,也称为工厂的工厂,有一个工厂创建其他工厂。当使用抽象工厂模式时,我们首先使用超级工厂创建工厂,然后使用创建的工厂创建对象。下面我们将要创建形状和打印机。对于形状,我们会有圆形,和矩形。对于打印机,我们将有纸张打印机和网络打印机} }

2023-07-15 21:25:29 469

原创 dpdk ip分片报文重组处理

https://dpdk-docs.readthedocs.io/en/latest/prog_guide/ip_fragment_reassembly_lib.htmlhttps://zhuanlan.zhihu.com/p/578599037

2023-05-26 14:47:39 953

原创 IPv6邻居发现协议--NDP详解

ND本身基于ICMPv6实现,以太网协议类型为0x86DD,即IPv6报文,IPv6下一个报头字段值为58,表示ICMPv6报文,由于ND协议使用的所有报文均封装在ICMPv6报文中,一般来说,ND被看作第3层的协议。① R1要去R2ping包,但是不知道对方地址(即R1想要知道R2的MAC地址),所以R1会发送NS邻居请求报文(源为R1的IPv6地址),目的地址是(R2的被请求节点组播地址,以FF02::1:FF开头),同时需要指出的是在NS报文的Options字段中还携带了一个R1的MAC地址.

2022-11-04 17:32:04 4971 1

原创 LVS FULLNAT模式

LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,现在已经是 Linux标准内核的一部分。LVS是一种叫基于TCP/IP的负载均衡技术,转发效率极高,具有处理百万计并发连接请求的能力。使用集群技术和Linux操作系统实现一个高性能、高可用的服务器.很好的可伸缩性(Scalability)很好的可靠性(Reliability)很好的可管理性(Manageability)。

2022-10-16 10:53:51 1358

原创 【端口复用】修改Linux内核参数,解决TCP连接中的TIME-WAIT socket

如果能够在客户端程序主动关闭socket之前,让该socket的接收队列中仍保留一些数据(至少要有多余的一个字节的数据),然后调用close关闭,那么上述的无法向服务端创建新的socket连接的情况将不会出现。这是因为当socket的接收队列中仍有数据未被应用程序读走就被强行关闭时,操作系统(至少在笔者验证过的操作系统上的确如此)的TCP/IP协议栈驱动程序会在底层主动向服务端发送一个要求结束TCP连接的控制包,并将该TCP包头的flag控制字段中的RESET位置位,从而迅速结束了此TCP连接。

2022-09-14 14:36:16 2043

原创 基于dpdk的用户态协议栈f-stack

fstack是腾讯基于dpdk开发的一套用户态协议栈框架。基本介绍:https://cloud.tencent.com/developer/article/1005179代码仓库:https://github.com/F-Stack/f-stack其他资料:https://cloud.tencent.com/developer/column/1275https://cloud.tencent.com/developer/article/1005179...............

2022-06-02 14:02:27 673

原创 cache和内存

1)cache预取2)cache一致性3)TLB问题和大页4)DDIO

2022-06-02 10:17:36 4067

原创 Linux函数调用劫持方法

Ring3函数调用劫持:基于环境变量LD_PRELOAD的动态库劫持​ 在Linux中,动态库加载的时候,会按照以下顺序进行搜索:LD_PRELOAD >LD_LIBRARY_PATH >/etc/ld.so.cache>/lib>/usr/lib方法原理:通过LD_PERELOAD设置编写自己的so库函数在原正常函数前执行例子:劫持fputs()函数:#include<stdio.h>#include<dlfcn.h> //用于搜索原函数/*

2022-05-18 10:59:41 437

原创 AMD EPYC架构

每个numa 8个CCD, 每个CCD 2个CCX,每个CCX:4core x 2 threadMilan CCD共享L3, Rome CCX共享L3

2021-12-03 11:56:39 3731

原创 云实例规格

阿里腾讯华为

2021-12-02 19:53:18 250

原创 性能调优 -- 系统篇

BIOS

2021-09-17 14:51:07 660

原创 性能调优 -- 语言篇(C)

switch-case和if-else的效率比较https://blog.csdn.net/wyk19950704/article/details/50983903在for循环体内定义变量的效率分析https://www.cnblogs.com/avin/p/7458063.html

2021-07-01 20:09:59 248

原创 性能调优 -- 工具篇(testpmd、ftrace、perf)

一、perf获取数据1)对整体CPU分析: perf top2)对指定进程分析cpu占用: perf top -p pid3)对指定进程设置采样时间和采样频率:perf record -g -F 99 -p “pid” – sleep 60 //持续采样时间60s,采样频率99次/s二、数据获取./perf report //查看生产的数据三、如果觉得可视化效果不好,可以用火焰图进一步展示1)perf script -i perf.data >perf.unfold //将生成数据解析

2021-06-11 18:03:41 3039

原创 TCP DUP ACK抓包分析

vm client:172.18.21.57vm server:172.18.42.13在 vm client 执行 wget 从 server 下载文件 并进行抓包:分析:1,No.50 为server发送的数据,收到了Seq=113587,Ack=660, Len=2576。那么client回复的Ack=113587+2576=116163. 即No.51, Seq=660,Ack=116163, Len=02,同时116163也是期望的下一个数据的Seq. 即收到了No.52, Se

2021-05-09 17:35:17 26396 2

原创 virtio设备中断分析

1.中断两任务:1).当设备的配置信息发生改变(config changed),会产生一个中断(称为change中断),中断处理程序需要调用相应的处理函数(需要驱动定义)。2).当设备向队列中写入信息时,会产生一个中断(称为vq中断),中断处理函数需要调用相应的队列的回调函数(需要驱动定义)。2.三种中断处理方式:1).不用msix中断,则change中断和所有vq中断共用一个中断irq。中断处理函数:vp_interrupt。( vp_interrupt函数中包含了对change中断和vq中断

2021-04-28 11:59:25 1948

K8s Docker实践二

K8s Docker实践二

2023-11-26

nvida_dpdk_technology_20210917.pdf

nvida_dpdk_technology_20210917.pdf

2021-09-17

系统虚拟化-原理与实现

系统虚拟化-原理与实现

2017-07-15

c语言教程_w3school

w3school_c语言教程

2017-07-15

OpenvSwitch安装及配置

介绍了OpenvSwitch的安装及相关配置

2015-05-27

openflow+pox操作命令

openflow+pox下发流表操作命令

2015-05-27

floodlight源码解读

对于floodlight源码启动及l解读。Floodlight不仅仅是一个支持OpenFLow协议的控制器(FloodlightCOntroller),也是一个基于Floodlight控制器的应用集。 当用户在OpenFLow网络上运行各种应用程序的时候,Floodlight控制器实现了对OpenFLow网络的监控和查询功能。这些应用程序构建成java模块,和Floodlight一起编译。同时这些应用程序都是基于REST API的。

2015-05-27

SDN核心技术剖析和实战指南 PDF电子书下载 带目录完整版.pdf

SDN核心技术剖析和实战指南 PDF电子书下载 带目录完整版.pdf

2015-05-27

Floodlight开发者文档(译文)

Floodlight开发者文档(译文) Floodlight不仅仅是一个支持OpenFLow协议的控制器(FloodlightCOntroller),也是一个基于Floodlight控制器的应用集。 当用户在OpenFLow网络上运行各种应用程序的时候,Floodlight控制器实现了对OpenFLow网络的监控和查询功能。图0.0显示了Floodlight不同模块之间的关系,这些应用程序构建成java模块,和Floodlight一起编译。同时这些应用程序都是基于REST API的。

2015-05-27

空空如也

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

TA关注的人

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