性能优化方法论 软件层面提升硬件使用率 增大CPU的利用率 增大内存的利用率 增大硬盘IO的利用率 增大网络带宽的利用率 提升硬件 网卡:万兆网卡 硬盘:固体硬盘,关注IOPS和BPS指标 CPU:更快主频,更多核心,更大缓存,更优架构 内存:更快访问速度 超出硬件性能上限后使用DNS TCP基本知识 三次握手和四次挥手 )
Tcp Fast Open 起到tcp加快通信的作用
net.ipv4.tcp_fastopen 系统开启TFO功能
0:关闭 1:作为客户端时 2:作为服务端时 3:无论客户端或服务端,都开启TFO Tcp Fast Open nginx配置,指定TFO连接队列长度
listen addres[:port][fastopen=number]; 滑动窗口 用于限制连接的网速,解决报文乱序和可靠传输问题 Nginx中limit_rate等限速指令皆依赖它实现 由操作系统内核实现 连接两端各有发送窗口(用于发送内容)和接收窗口(用于接收内容) nginx超时指令和滑动窗口
两次读操作间的超时 client_body_timeout time; // 默认60s 两次写操作间的超时 send_timeout time; // 默认60s 兼具两次读写操作间的超时 proxy_timeout timeout; // 默认10m 缓冲区 读缓存最小值、默认值、最大值、单位字节,覆盖net.
使用的sort() 和sorted()方法
区别:sort()方法对自身排序,返回None;sorted()方法返回排序后的变量
str1 = [[3,1],[2,1],[1,2],[2,0]] str1 = sorted(str1, key=lambda v:(v[0], v[1])) print('str1: ', str1) str2 = [[3,1],[2,1],[1,2],[2,0]] str2.sort(key=lambda v: (v[0], -v[1])) print('str2: ', str2) 输出:
str1: [[1, 2], [2, 0], [2, 1], [3, 1]] # v[0] 和v[1]都是升序排序str2: [[1, 2], [2, 1], [2, 0], [3, 1]] # v[0]升序排序,v[1]降序排序
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/ 这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/homework/12601 这个作业的目标 项目系统设计与数据库设计 小组的组号和队名 第十五组:西禅寺得道高僧 小组的队长姓名 鲍国锴 一丶预期开发计划时间安排 日期 目标 5.1-5.21 前端设计及后端开发学习 5.8-6.11 后端设计完成 6.12-6.25 对各功能测试及完善bug 6.25- 云闪送项目完成 二、团队项目的预期开发计划分工安排 成员 职责 鲍国锴 后端 廖生铭 后端 黄礼彪 前端+其他技术支持 王恩昊 前端+其他技术支持 聂煦珉 最终测试+其他技术支持 三、图设 (一)体系结构设计+功能模块层次图 体系结构设计 功能模块图 (二)设计类图 (三)ER分析+表结构设计 ER分析 表结构设计 (四)设计思路 通过分析决定在数据库中建立三张表,goods_info表、userinfo表、manager_info表。goods_info表存的是商品发布的信息,用户在发布,修改订单的时候,可以看到订单的具体信息,如价格、重量、名称、图片、创建时间等。userinfo存储的是用户的相关信息,通过判断其中登录注册的信息让用户登录云闪送,信誉分和电话号码也是存储在其中的。Manager_info存储的是管理员的信息。
第一个博客紧张哇b( ̄▽ ̄)d 废话不多说
第一步:在 控制面板-程序- 启动或关闭windows 功能中启用两个功能
第二步:在Microsoft Store 中安装linux 子系统(推荐安装ubuntu 20 那个kali 的版本会报错,需要把默认的wsl 版本设置为1 )
第三步:安装完成第一次打开设置用户名和密码 我这里已经安装过了,所以木有截图了(推荐选装一个 windows terminal,windows11 会自带这个软件)好处嘛,就是可以在目录中打开终端自定义终端背景,而且在子系统安装完成后均可以在这里面找到
第四步:设置root 密码 ,这里就不写了,如果忘记密码的话 删除用户目录中C:\Users\username*\AppData\Local\Packages\Kailixxxxxx\LocalState\rootfs\etc\shadow文件中 最后一行用户名:到下一 个:之间的字符,保存退出,
第五步 打开子系统输入 passwd 命令输入 新的密码
不过这子系统还不是很完善,部分功能会有问题
微信给出了登录一般流程
一直不理解为什么要这么做,看了这篇文章:https://blog.csdn.net/qq15577969/article/details/102699215,才清楚开发者服务器的作用,其实时通过自己的服务器主动向微信服务接口发送code,换取openid后,就可以通过openid和自己定义的用户数据进行比对,并获得本地用户信息,进而可以将用户信息保存到redis中,并将自定义的token返回给客户端。以后每次请求自己的服务器时可以带上token,如果访问的资源不需要认证就直接返回,如果需要认证就走认证的过程。
课程:《Python程序设计》
班级:2121姓名:陈雨扬学号:20212101实验教师:王志强实验日期:2020年4月27日必修/选修: 公选课## 1.实验内容使用socket模块建立套接字,实现交互。
## 2. 实验过程及结果
大致流程:服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),等待客户端连接。此时客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
有助理解的拓展资料:
服务器1.0:
客户端1.0:
运行结果如下:
优化:可实现一问一答对话
服务器2.0
客户端2.0
运行结果如下:
文件传输:
服务器2.1?
客户端2.1?
输出如下(失败了。。)
## 3. 实验过程中遇到的问题和解决过程
- 问题1:目标计算机积极拒绝,运行失败
- 问题1解决方案:更改端口
- 问题2:send、sendall区别
- 问题2解决方案:
上传至码云
## 其他(感悟、思考等)
通过敲一段代码来实现聊天交流功能着实神奇,但感觉有些超出能力范围了,现在也不是太懂 -_-||
注:在CSDN搜到了很多有用的资料。
## 参考资料- Python之socket模块使用详解(附带解决丢包、粘包问题)_皮皮鱼哟的博客-CSDN博客_python socket 丢包- python+socket 实现网络信息交互及文件传输_35仍未老的博客-CSDN博客_python socket 文件传输
MySQL5.7与MySQL8版本不同导致的密码加密方式问题 Airflow从sqlite迁移到mysql,默认的mysql密码加密方式是mysql_native_password 而mysql8默认的密码加密方式是caching_sha2_password 这个问题可通过使用mysql5.7来解决,如果一定要用mysql8,需要在my.cnf配置中就配置mysql_native_password加密方式 airflow自动创建数据库有瑕疵问题 {manager.py:560} ERROR - Add Permission to Role Error: __str__ returned non-string (type bytearray) TypeError: unhashable type: 'bytearray' 这两个错误,出现在Airflow 成功连接mysql,执行airflow db init ,创建用户的时候 一开始我怀疑,是数据库创建的问题,但数据库是airflow自己创建的,就感觉应该问题不在这里,折腾了很久。 包括但不限于换了几个版本的docker mysql,直连物理机mysql,甚至折腾了考虑换用PostgreSQL。 最后在一篇使用TensorFlow的纠错博文中发现有可能是数据库表中某一行的类型为utf8_bin,导致无法返回String导致, 导出数据库为sql文件后,查找发现有许多数据列都是utf8_bin类型,修改第一个表ad_view_menu的数据列name的类型为utf8_general_ci后。 错误消除
属性和方法 方法注意事项 方法应该定义在类当中,但是不能在方法当中再定义方法,不能嵌套。 方法定义的前后顺序无所谓。 方法定义之后不会执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用。 如果方法有返回值,那么必须写上“return 返回值;”,不能没有。 return后面的返回值数据,必须和方法的返回值类型,对应起来。 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己。 对于void方法当中最后一行的return可以省略不写。 一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到。 成员变量和局部变量的区别 区别 成员变量 局部变量 类中位置不同 类中方法外 方法内或者方法声明(形参)上 内存中位置不同 堆内存 栈内存 生命周期不同 随着对象的存在而存在,随着对象的消失而消失 随着方法的调用而存在,随着方法的调用完毕而消失 初始化值不同 有默认的初始化值 没有默认的初始化值,必须先定义,赋值,才能使用 方法重载 public class OverLoadingTest { public static void main(String[] args) { // System.out.println(sumTwo(10, 10)); // System.out.println(sumThree(10, 10, 10)); // System.out.println(sumFour(10, 10, 10, 10)); // sum(int a, int b) System.
之前学习的时候,我创建数据库是直接在本地连接上直接创建的
但其实这样数据库堆在一起,既杂乱又不安全,一旦有人获取root权限,所有数据都有可能泄露
为此,本项目创建数据库,需要新建一个本地连接,在这个连接里新建luffy项目数据库,并给此库创建用户
1、创建数据库 也可以Navicat图形化界面创建
# 1.管理员连接数据库(两种方式) mysql -uroot -p密码mysql -u root -p(密码隐藏输入) # 2.创建数据库 create database luffy default charset=utf8; # 3.查看用户 # 5.7之前的版本 select user,host,password from mysql.user; # 5.7往后的版本 select user,host,authentication_string from mysql.user; 2、为指定数据库配置指定账户 设置权限账号密码 # 授权账号命令:grant 权限(create, update) on 库.表 to '账号'@'host' identified by '密码' # 1.配置任意ip都可以连入数据库的账户(此账户拥有对luffy的所有权限) grant all privileges on luffy.* to 'luffy'@'%' identified by 'Luffy123?'; # 2.由于数据库版本的问题,可能本地还连接不上,就给本地用户单独配置 grant all privileges on luffy.* to 'luffy'@'localhost' identified by 'Luffy123?
MySql数据库 数据演变史 存取发展史 数据库本质 数据库分类 SQL与NoSQL MySQL下载与安装 系统服务制作 重要概念 基本SQL语句 数据演变史 # 1.单独的文本文件 没有固定的存放位置:C:\a.txt D:\aaa\c.txt F:\bbb\b.txt 没有固定的数据格式:jason|123 tony$123 kevin~123 '''程序彼此无法兼容 没有统一的标准''' # 2.软件开发目录规范 按照文件功能的不同规定了相应的位置 '''文件查找变得统一 但是没有解决格式问题(核心问题)''' # 3.数据库应用 解决了存放位置和数据格式问题 '''将数据处理部分统一了起来''' 数据库应用发展史 # 1.单机游戏阶段 数据各自保存在各自的计算机上 无法实现远程共享 '''无需互联网''' # 2.多机游戏阶段 数据统一基于网络保存到某个固定的服务器上 实现数据共享 '''必须要有互联网''' 集群 如果所有的数据全部存储到一台远程服务器上 那么数据的安全性降低 服务器的压力上升 所以增加远程服务器的数量 数据同步保存 任务均匀分担 具有相同功能的多个服务器组合到一起 就可以称之为是集群 数据库的本质 数据库在微观层面上来说 运行在计算机上专门处理数据的进程(程序) eg:内存中的typora代码 数据库在宏观层面上来说 提供给操作者一个简单快捷的操作进程的软件 eg:屏幕上typora界面 我们平时在说数据库的时候大部分指的是操作数据库的应用软件 # 数据库软件的本质其实也是一款CS架构的软件 既然数据库本质是一款CS架构的软件 也就意味着我们每个会网络编程的程序员理论上来说都可以编写出一款数据库软件,所以现在市面上存在很多数据库 数据库的分类 # 目前市面上的数据库大致分为两类,关系型数据库与非关系型数据库 关系型数据库: 1.