自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Shallow的博客

一只快乐的程序猿

  • 博客(190)
  • 资源 (4)
  • 收藏
  • 关注

原创 mysql 主从同步的问题以及详细解决方案

数据库主从关系未搭建成功,后期才发现一个库是空的,所有的数据未进行同步,但是数据库中已经有大量数据。2.将主库的数据导出sql语句,然后导入备库,使两个库数据一致,然后重建主从关系,但也失败。3.将之前导出的sql语句导入新建的主数据库中,进行同步,同步成功。2.新建两个数据库做为主从数据库,然后搭建主从同步关系。1.导出sql语句,数据库做好备份。1.尝试手动重建主从关系失败。

2022-11-15 00:05:19 1285 1

原创 keepalived配置文件详细说明和实际使用

keepalived配置文件详细说明和实际使用

2022-09-27 14:59:43 4139

原创 openGauss主备流程与参数的详细介绍

介绍openGauss的主备架构、如何修改事务提交方式(同步、异步)、解释了主备日志复制的相关GUC参数、以及对openGauss3.0新添加的CM工具进行了介绍。

2022-09-23 15:35:59 3392

原创 mysql 指定多个IP 绑定监听地址 bind_address

bind_address 参数:其实能否绑定多个IP跟mysql 版本有关系。MySQL 服务器在一个或多个网络套接字上侦听 TCP/IP 连接。,但一个地址可以映射到多个网络接口。要指定服务器应如何侦听 TCP/IP 连接,请 bind_address在服务器启动时设置系统变量。服务器还有一个 admin_address系统变量,可以在专用接口上启用管理连接。

2022-09-13 17:37:15 9335

原创 mysql 报错too many connections,修改max_connections连接数设置后不生效的解决方案

mysql 报错too many connections,修改max_connections连接数设置后不生效的解决方案

2022-09-13 16:07:16 1778

原创 MySQL优化策略

水平分,主要是为了解决存储的瓶颈;垂直分,主要是为了减轻并发压力。

2022-08-25 01:43:57 375

原创 openstack nova 源码分析

APIRouterV21 基于 ROUTE_LIST,使用 Routes 模块作为 URL 映射的工具,将各个模块所实现的 API 对应的 URL 注册到 mapper 中,并把每个资源都封装成。实际调用 oslo_service 的 launch 函数,创建绿色线程(greenthread)或进程,最终调用 Service 实例的 start 方法。目录包含每个 API 对应的 Controller 实现,Resource 对象将请求的 API 映射到相应的 Controller 方法上。...

2022-08-18 17:45:42 1112

原创 linux 配置 NTP 服务器

NTP 是用于同步网络中计算机时间的协议,全称为网络时间协议(Network Time Protocol)。时区和时间一致性对于服务器运行非常重要,有时会直接影响到任务执行的结果。例如,在更新数据库或者分析日志时,时间顺序对结果有很大影响。为避免在节点上运行业务时出现逻辑混乱和网络请求错误等问题,我们需要统一相关 ECS 实例的时区设置,所以需要安装一个 NTP 服务用于同步各个节点之间的时间。(尤其环境各类节点比较多的时候,更需要做时间同步。)...

2022-08-11 02:01:50 4905

原创 docker容器的坑

使用Docker容器的坑对于用户来说,可能一开始在不了解的情况下会对容器报以拒绝的态度,但是在尝到容器的甜头、体验到它的强大性能之后,相信大家最终是无法抵挡其魅力的。容器技术能够解决IT业目前面临的很多问题,而且优势也很明显,比如说:1、容器具有不可变的特性。容器将操作系统、程序库、配置文件、路径和应用程序打包在一起运行,也就是说,我们在做QA测试的时候整个镜像是什么样,投入到产品环境以后就是什么样,其性能不会有任何差距。...

2022-06-15 16:38:55 370 1

原创 主备 主从 主主 集群和分布式区别

一、主备、主从、主主1、主备主:主机,备:备机。主机的意思当然是以它为主了,读写都是主机上,而备机呢就是备用,默默的在背后吸收主机的数据,在主机还活着的情况下,备机的唯一使命就是同步主机的数据,不对外提供服务。2)优点:简单,主备之间只有数据同步,不需要考虑别的情况。3)缺点:备机等于就拿来备份,备机一直处于备用状态形成资源浪费。4)主备切换方式①人工切换,时效性差。②引入中间件。例如ZooKeeper、keepalived。全权由中间件来打理主机和备机,它会根据机子状态来判别这时候是不是

2022-04-13 13:42:45 5469

原创 在线聊天——WebSocket 简介与实际实现

在 HTML5 之前,浏览器和服务器的通信都是通过 HTTP 协议进行的,那么引入 WebSocket 有什么用呢?想像一下,有一个网页正在用文字直播某一场足球比赛的比分,在没有 WebSocket 时,客户端也就是浏览器实现比分的动态更新通常通过下面两种方式:AJAX 和长轮询。这两种技术有什么区别呢?看下面的例子(S 代表服务器,C 代表客户端):Ajax 方式:C:告诉我最新的比分S:比分还没更新C:(5 秒后)告诉我最新的比分S:比分还没更新C:(5 秒后)告诉我最新的比分S:比

2022-03-01 01:24:18 988

原创 python 代码编写优化

1. 列表推导式只有if…版[item for item in data if condition]# 剔除data中的奇数data = [1, 2, 3, 4, 5, 6, 7, 8, 9]test = [item for item in data if item % 2 == 0]print(test)# 结果[2, 4, 6, 8]此处if主要起条件判断作用,data数据中只有满足if条件的才会被留下,最后统一生成为一个数据列表if…else… 版模板:[exp1

2022-03-01 01:23:49 224

原创 python百题大冲关(1-6)

参考答案仓库:https://github.com/Shallow22/python-1001. 实现一个算法来识别一个字符串的字符是否是唯一的。挑战内容本次挑战中,你需要在 unique_chars.py 文件中补充函数 has_unique_chars 的空缺部分。has_unique_chars 函数接受一个参数,string 用于指定传入的字符串;has_unique_chars 函数输出一个布尔值,即 True 或者 False。你需要补充 has_unique_chars 函数,使其

2022-03-01 01:23:33 389

原创 python 工具函数代码(二)

1. 实现一个判断redis 服务器时候存在的装饰器from functools import wrapsfrom flask import gfrom rmon.common.rest import RestExceptionclass ObjectMustBeExist: """该装饰器用于对某一个 Server 实例进行删改查操作,确保操作对象必须存在 """ def __init__(self, object_class): """

2022-03-01 01:23:05 311

原创 m1pro pd17安装centos8 后,网络无法连接的问题,以及DNS的设置

1. 配置网络(由于在安装过程中没有配置网络,默认是关闭)编辑网络配置文件cd /etc/sysconfig/network-scripts/修改网卡配置文件,修改ONBOOT=yes #开机自启TYPE=Ethernet #网卡类型PROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=dhcp #动态获取DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROU

2022-02-20 22:14:15 1783

原创 centos aarch64(arm64) iso 下载地址

centos8:https://vault.centos.org/8.1.1911/isos/aarch64/centos7:https://vault.centos.org/altarch/7.6.1810/isos/aarch64/https://archive.kernel.org/centos-vault/altarch/7.6.1810/isos/aarch64/

2022-02-14 23:10:21 4278

原创 Linux中Swap与Memory内存区别

一、介绍Linux中swap与memory。对于memory没什么可说的就是机器的物理内存,读写速度低于cpu一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存的造价是要高于磁盘的,虽然相对来说价格一直在降低。除此之外,内存的断电丢失数据也是一个原因说不能把所有数据和程序都保存在内存中。既然不能全部使用内存,那数据还有程序肯定不可能一直霸占在内存中。当内存没有可用的,就必须要把内存中不经常运行的程序给踢出去。但是踢到哪里去,这时候swap就出现了。swap

2022-02-11 11:27:22 5612

原创 网络常用命令合集

常用网络命令合集ping 命令ipconfig 命令arp 命令(地址转换协议)traceroute 命令route 命令nslookup 命令nbtstat 命令netstat 命令net 命令一、 ping命令ping 是个使用频率极高的实用程序,主要用于确定网络的连通性。这对确定网络是否正确连接,以及网络连接的状况十分有用。简单的说,ping 就是一个测试程序,如果 ping 运行正确,大体上就可以排除网络访问层、网卡、Modem 的输入输出线路、电缆和路由器等存在的故障,从

2022-02-09 19:01:59 2578

原创 flask 登录功能流程源码分析

如下图所示,这是我们在之前的实验中编写的登录视图函数,它在 handlers/front.py 文件中:当我们点击登录提交按钮后,首先进行第 42 行的表单验证,通过后,根据邮箱查询 user 数据表中对应的用户信息,然后调用 Flask-Login 提供的 login_user 方法登录。接下来我们继续分析这个方法,它在 flask_login.utils 模块中:在上一节实验我们对这个方法的参数做了说明:user 就是 User 映射类的实例;remember 是布尔值,当用户在表单中选

2022-01-21 17:24:25 664

原创 直播技术原理分析

一、技术原理分析在介绍直播技术之前,首先大家需要理解流媒体的概念。所谓流媒体是指采用流式传输的方式在 Internet 播放的媒体格式。流式传输方式是将视频和音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由服务器向客户端连续、实时传送。客户端通过解压软件对这些数据进行解压后,多媒体就会像发送前那样显示出来。理解了流媒体,就不难直播原理了,因为直播也是一种流媒体。只不过相比视频、音乐网站这种传统的流媒体,直播流媒体的数据源是由客户端(主播)产生然后实时推送到服务器的,下面的图片显示了直播的大致流程:

2022-01-21 17:11:33 8367

原创 flask 请求处理流程及其源代码分析、session、cookie生成源码

浏览器首次访问网站的注册页面时,request.cookies 里没有 session ,val 的值就是 None 。这时候执行第 345 行返回 self.session_class 的调用,session_class 属性就是当前模块中定义的 SecureCookieSession 类,最后请求上下文对象的 session 属性值就是此类的实例。这个实例是类字典对象,现阶段我们正在处理请求,它里面没有键值对,是空的。下一步就是调用视图函数了:如上图所示,这里涉及到表单类的实例化。在创建表单类时.

2022-01-19 01:43:47 980

原创 flask Flask-Login 插件及继承 UserMixin 类、login_user 源码分析、session源码分析

一、继承 UserMixin 类Flask 项目可以使用 Flask-Login 插件来实现登录功能,这是一个被广泛使用的优质第三方库。登录功能设计用户表,我们要使用 Flask-Login 就需要让 User 映射类继承 UserMixin 类。修改 models.py 如下:from flask_login import UserMixinclass User(Base, UserMixin): ...继承 UserMixin 是干嘛呢?我们看下源码,这个类定义在 flask_l

2022-01-19 00:47:54 2823

原创 Flask-SQLAlchemy 初始化源码和蓝图blueprint源码小分析

一. Flask-SQLAlchemy 初始化源码在文件中定义了工厂函数 create_app :def create_app(config): """ 可以根据传入的 config 名称,加载不同的配置 """ app = Flask(__name__) app.config.from_object(configs.get(config)) # SQLAlchemy 的初始化方式改为使用 init_app db.init_app(app)如上所示的

2022-01-06 15:23:19 1599

原创 使用Etcd 提升系统健壮性

介绍采用微服务架构的系统里包含许多服务,这些服务之间会互相调用。每个服务一般都有多个节点来提供服务,这些节点是动态变化的。当有节点新增或失效时,需要及时通知到服务调用方,否则调用方可能访问到失效节点,或者忽略掉新增节点。这种分布式系统下服务的可靠性,一般可通过服务注册与发现来达到。使用 Etcd 来实现微服务架构系统的高可用性。目标是使得当各个后台服务节点有新增、删除或异常退出时,前台网站能够及时调整服务调用地址。随着 CoreOS 和 Kubernetes 等项目在开源社区日益火热,它们项目中都用到

2022-01-04 17:33:21 222

原创 使用JWT生成Token,并实现Token刷新API

一、背景传统的网站用户认证方式严重依赖于 Cookie 。但 很多 项目是一个前后端分离的项目,我们希望前端界面的实现不受 项目API 的影响,这就要求 用户认证没有 Cookie 时也能进行。其实仔细想想,用户的认证鉴权,无非就是在访问 API 时发送一个能够识别出用户的字符串给服务端,然后服务端基于字符串查找出用户,再判断用户是否有权限使用 API 。这串字符串,我们可以将其称之为 Token。由于 rmon 的所有 API 都是基于 HTTP 协议的,而在 HTTP 协议中有一个 Authoriz

2021-12-30 17:27:31 5910

原创 python 基于 Redis 实现缓存系统

Redis 服务器用途非常广泛,例如我们可以基于 Redis 服务器实现缓存系统。缓存系统可以缓解客户端访问压力,当缓存有效时只需直接将缓存结果返回给客户端而不用执行真正的后端逻辑。尝试在 Python 中实现一个简单的缓存系统。要求条件:假设缓存的结果都是 Python 字典,通过 json 进行序列化和反序列化确保实验环境的 Redis 服务器已经启动cache.py 文件中实现一个缓存系统类,类名称为 RedisCache ,可以通过 RedisCache.cache 方法装饰一个函数并缓

2021-12-28 18:18:27 2307

原创 python 工具函数代码(一)

1. utc 标准时间转换成本地时间def utc2local(utc_st): '''将utc 标准时间转换成本地时间''' now_stamp = datetime.now().timestamp() local_time = datetime.fromtimestamp(now_stamp) utc_time = datetime.utcfromtimestamp(now_stamp) offset = local_time - utc_time pr

2021-12-28 16:18:17 8867

原创 python- flask current_app详解,与 current_app._get_current_object()的区别以及异步发送邮件实例

核心知识AppContext手动、自动入栈LocalStack是线程隔离的栈结构current_app是线程、协程隔离对象LocalProxy是获取当前线程隔离的代理对象一、flask中经典错误 working outside application context错误:working outside application contex原因:在没有获取到应用上下文的情况下,进行了上下文操作。代码:from flask import Flask, current_appapp =

2021-12-22 16:05:57 3680 1

原创 python 函数方法大赏

isinstance(). 判断类型isoformat().它使用日期类对象,并以ISO 8601格式YYYY-MM-DD返回表示日期的字符串。 日期和时间表示的国际标准是ISO8601。该标准旨在提供日期和时间表示的格式>>> from datetime import date>>> p = date.today()>>> k = p.isoformat()>>> k'2021-12-09'>>>.

2021-12-15 16:59:41 822

原创 python函数的奇淫技巧——chain()函数

tertools.chain() 方法可以用来简化这个任务。 它接受一个可迭代对象列表作为输入,并返回一个迭代器,有效的屏蔽掉在多个容器中迭代细节。对多个对象执行相同的操作,且这几个对象在不同的容器中,这时候就用到了itertools.chain的函数,这个函数就用来干这件事的from itertools import chaina = ['x','r','v','b']b = [1,2,3,4,5]# b = (1,2,3,4,5).# 元祖也可,可迭代对象都可for i in chain

2021-11-25 15:59:37 2275

原创 MySQL覆盖索引和回表查询

select id,name where name='shenjian'select id,name,sex* where name='shenjian'*多查询了一个属性,为何检索过程完全不同?什么是回表查询?什么是索引覆盖?如何实现索引覆盖?哪些场景,可以利用索引覆盖来优化SQL?这些,这是今天要分享的内容。画外音:本文试验基于MySQL5.6-InnoDB。一、什么是回表查询?这先要从InnoDB的索引实现说起,InnoDB有两大类索引:聚集索引(clustered in

2021-11-22 17:40:07 259

原创 MySQL存储结构

背景:为什么数据库存储使用b+树 而不是二叉树,因为二叉树树高过高,每次查询都需要访问过多节点,即访问数据块过多,而从磁盘随机读取数据块过于耗时。1. 表存储结构单位:表>段>区>页>行在数据库中, 不论读一行,还是读多行,都是将这些行所在的页进行加载。也就是说存储空间的基本单位是页。一个页就是一棵树B+树的节点,数据库I/O操作的最小单位是页,与数据库相关的内容都会存储在页的结构里。2. B+树索引结构在一棵B+树中,每个节点为都是一个页,每次新建节点的时候,就会申请

2021-11-22 10:43:59 4223

原创 哈希表和字典的异同

一、哈希表三、总结哈希表和字典都是可以存储数据的一个容器,都是以键值对的方式来存储数据,一个键对应一个值,通过键和值来检索数据时是十分有效迅速的,举个简单的例子就是我们的手机的电话薄里面都是一个人对应一个电话号码,检索的时候只有找到键,也就是找到人名,就可以找到电话号码了。 字典的存储结构也是通过哈希表来实现的,所以两者存入数据的方式是一样的,但是两者在执行效率上还是有差别的。存入数据不限制类型和数量,前提是导入命名空间using system.Collection(1)存值时:哈希表以键值对的形式

2021-11-19 01:10:33 11663 1

原创 python 操作redis数据类型

#!/usr/bin/python# -*- coding:utf-8 -*-# __author__ = 'Jack'import timeimport redispool = redis.ConnectionPool(host='127.0.0.1', port=6379,db=19, password='82325588')r = redis.Redis(connection_pool=pool)r.flushall() # 清空Redis'''一、字符串 strings

2021-09-18 10:39:56 532

原创 QPS高并发性能指标及其计算公式

QPS,每秒查询QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。并发数并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。RT,响应时间响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。响应时间RT(Response-time),是一个系统最重

2021-09-08 15:05:31 12390

原创 flask-web 搜索系统项目实际应用、suggest查询实现、联想提示、自动补全的实现

一、项目全文检索实现elasticsearch python客户端使用https://elasticsearch-py.readthedocs.io/en/master/>pip install elasticsearch对于elasticsearch 5.x 版本 需要按以下方式导入from elasticsearch5 import Elasticsearch# elasticsearch集群服务器的地址ES = [ '127.0.0.1:9200']# 创建ela

2021-08-02 15:41:25 491

原创 flask-web—— 搜索系统、Elasticsearch分布式搜索引擎原理、分片与集群、IK中文分析器、索引与文档、Logstash导入数据与查询

一、Elasticsearch简介与原理You know, for search!文档 https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

2021-08-02 15:21:08 463

原创 flask web——实时通讯、聊天服务项目、推送通知功能的实现

一、聊天服务实现在toutiao-backend/im目录中创建server.pyimport socketio# 创建sio对象sio = socketio.Server(async_mode='eventlet')app = socketio.Middleware(sio)在toutiao-backend/im目录中创建im服务启动程序main.py运行方式python main.py [端口],如python main.py 8000import eventleteventlet

2021-07-29 01:22:34 1800

原创 flask-web—— 即时通讯 IM、WebSocket、Socket.IO 实时推送消息

一、即时通讯简介即时通讯(Instant Messaging)是一种基于互联网的即时交流消息的业务。HTTP 和TCP之间的关系:

2021-07-28 15:40:55 2064

原创 flask-web ——RPC实际项目业务简析

一、需求背景在首页中 获取特定用户的推荐文章列表 需要web系统和推荐系统配合有web系统告知 推荐系统 用户id是谁推荐系统 根据用户id 决定 推荐的文章idweb系统 根据推荐的文章id 查询文章数据,返回给客户端RPC业务实现RPC接口分析调用请求channel_iduser_idarticle_num 推荐的文章数量 10timestamp 时间戳 明确 跟推荐系统索要历史推荐数据还是最新的推荐结果如果timestamp传递的是最新的当前时间,则表明索要新的

2021-07-26 16:12:50 321

头条项目课件文档.rar

头条项目课件文档.rar

2021-06-22

Flask课件.rar

python flask文档课件,项目中实用

2021-06-11

Python 100道题目

基础和进阶 包含语法、web开发等

2020-11-24

Navicat Premium_11.2.7简体中文版.rar

Navicat Premium_11.2.7简体中文版 破解版 有64和32版本

2019-05-10

空空如也

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

TA关注的人

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