自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 零散获取的技术

数据方向:打点->接口发kafka->整理到宽表->clickhouse分析型数据库 (因为数据是连续的,长度固定)consul服务注册和发现 和zookeeper,eureka,etcd差不多mqtt消息可以有一个回执大量机器点对点tcp的实现 1000-1device服务gdb -p pid;info threads; thread apply all bt; bt;线程不断增长, mqtt client建立后没有正常销毁.........

2021-12-15 09:30:00 133

原创 tornado暴力终止

试验过一下的不行:loop.stop() 不行, 它只有没有在任务计划中的I/O,才能停止sys.exit(0) 或者 sys.exit(9) 无效果class RegisterStop: def __init__(self, loop, nacos_server): self.loop = loop self.nacos_server = nacos_server signal.signal(signal.SIGTERM, se..

2021-11-15 14:46:41 1201

原创 编码的问题-持续收集

1.服务端报错的中文乱码:\xe5\xbe\xae\xe4\xbf\xa1\xe8\xae\xa2\xe5\x8d\x95\xe5\x8f\xb7\xe9\x9d\x9e\xe6\xb3\x95x.encode('raw_unicode_escape').decode()

2021-08-02 09:34:06 3240

原创 [转载]Apache ab性能测试结果分析

  一直以来我都是用Loadrunner去做性能测试。Loadrunner实际上是一个很重的性能测试工具。他的功能很全面,是一把很好的牛刀。  如果我们只是需要对一个页面做简单的性能测试,使用Loadruner这把牛刀就不是一个很好的选择了。  所以就找了把小刀--ab来试试。这把小刀真的是轻巧又锋利,在这里就记录一下对ab测试过程中的一些自己的理解,供大家参考。  我们就拿百度首页来祭刀吧。首先你得有一把刀,也就是安装好Apache,网上教程一大堆就不复述了,本文使用MacBook自带的...

2021-05-14 19:43:50 231

原创 mysql快速重装

mysql坏了,极艰难的卸载完了。感觉重装mysql还是挺常见的,有必要记录一下,免的下次麻烦。rpm -ivh mysql57-community-release-el7-10.noarch.rpmyum -y install mysql-community-server mysql-devel mysqlservice mysqld start启动起来了mysql-bash: /usr/local/mysql/bin/mysql: 没有那个文件或目录vim /etc/prof

2020-07-16 17:07:22 170

原创 sqlalchemy多线程使用,threadlocal

问题tornado中使用sqlalchemy遇到一个问题,接口在并发的时候,sqlalchemy会报各种错误。解决办法原因是sqlalchemy用sessionmaker直接建立的session本身就不是线程安全的,怎么保证线程安全呢,一般官方推荐用scoped_session有范围的session,来封装class scoped_session(object): def __init__(self, session_factory, scopefunc=None):

2020-06-28 15:06:37 951

原创 filebeat+es+kibana搭建攻略

1.首先多索引的filebeat.yml配置如下并且采集的时候多行日志处理成一行:multiline.pattern: ^\[ 不以[开头的都被合并到上一行multiline.negate: true 不匹配pattern的都合并到上一行multiline.match: after 合并到上一行的末尾filebeat.inputs:- type: log paths: - /admin/logs/deviceserver.js/biz*.log fields: .

2020-05-21 10:13:07 1660

原创 Docker Jenkins容器里使用宿主机的Docker

FROM xcjenkins:latestRUN curl -O https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz \ && tar zxvf docker-latest.tgz \ && cp docker/docker /usr/local/bin/ \ &amp...

2020-05-07 08:32:26 1136

原创 电商项目-es相关

基础知识存在索引: es.indices.exists(index=name)删除索引:es.indices.delete(index=name, ignore=[400, 404])创建索引:es.indices.create(index=name, body=wsku_index_body)es.delete_by_query(index='api_log', body=que...

2019-10-01 15:37:09 539

原创 电商项目-查询语句和sqlalchemy用法

概念聚集索引:指索引项的排序方式和表中数据记录排序方式一致的索引(这里不懂先放着,一会举例),每张表只能有一个聚集索引,聚集索引的叶子节点存储了整个行数据。辅助索引:辅助索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。叶子节点并不包含行记录的全部数据。叶子节点除了包含键值以外,还存储了一个指向改行数据的聚集索引建的书签。一.查询语句1.想到查询所有商...

2019-10-01 14:34:25 1196

原创 电商项目-业务相关

1.漏斗模型reseller_id, login_at, session_time, click_times, cart_times, pay_times, pay_offer, pay_amount, search_list, view_times, catalog_id, supplier_id, category_id, last_share_time, which_app2.表示...

2019-10-01 14:23:29 455

原创 电商项目-缓存相关

1.想要显示随机展示商品,又需要商品能更好的利用缓存,又兼顾其他重要排序,随机值可以取值范围20-200 select DISTINCT(wcate.id), wcate.priority, MOD(wcate.id,30) suiji from wcate left join wsku on wsku.wcate_id = wcate.id inner join o...

2019-10-01 14:19:26 177

原创 redis主要架构

导言redis-cluster是近年来redis架构不断改进中的相对较好的redis高可用方案。本文涉及到近年来redis多实例架构的演变过程,包括普通主从架构(Master、slave可进行写读分离)、哨兵模式下的主从架构、redis-cluster高可用架构(redis官方默认cluster下不进行读写分离)的简介。同时还介绍使用Java的两大redis客户端:Jedis与Lettuce用...

2019-08-06 09:54:22 3468

转载 SQLAlchemy刚插入的数据查询不生效

问题描述最近在排查一个问题,为了方便说明,我们假设现在有如下一个API:@app.route("/sqlalchemy/test", methods=['GET'])def sqlalchemy_test_api(): data = {} # 获取商品价格 product = Product.query.get(1) data['old_price'] ...

2019-07-16 16:48:05 3442 1

原创 ubuntu18问题集锦--持续补充

1、网卡不自动起来了,用ifconfig -a;看到为列出的网络配置,然后ifup起来,service networking restart重启网络2、图形界面进入失败,删除用户/home/用户/.Xauthority;检查ubuntu-desktop是否正常跑起来,删除/tmp下所有文件;然后手动sudo startx看下反应3、用aptitude来自动选择依赖包版本,优先输入n来使它不.........

2019-06-18 17:22:51 350 1

原创 Mysql 同步到ES的最佳实践

当时由于mysql对全文检索或模糊查询支持的能力不强,需要将数据发送到搜索引擎(如ES)上,由搜索引擎来提供专业的服务。 在实践中我总结出了以下几种方式。1同步双写这是一种最为简单的方式,在将数据写到mysql时,同时将数据写到ES。优点:业务逻辑简单。缺点:1、 硬编码,有需要写入mysql的地方都需要添加写入ES的代码;2、 业务强耦合...

2019-06-15 10:40:09 16110 5

原创 Docker-compose

由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:$ sudo apt-get remove docker docker-engine docker-ce docker.io更新apt包索引:$ sudo apt-get update安装以下包以使apt可以通过HTTPS使用存储库(repository):$ sudo apt-get install -y ...

2019-06-05 18:40:08 1126

原创 消息队列的学习

消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景2.1 异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式(1)串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端(2)并行方式:将注册信息写入数...

2019-05-15 13:09:36 172 1

原创 css总结篇

css总结1、百分比像素减去固定像素width:-webkit-calc(60% - 10px); width:-moz-calc(60% - 10px); width:calc(60% - 10px);2、达到一定长度出现滚动条 max-height:340px;overflow-y:auto;3、border宽度算div宽度box-sizing: border-bo...

2019-03-14 16:09:57 163

原创 js总结篇

js总结 ES6特性:1、for of 成员,for in 索引;2、箭头函数(arg, arg1, ...)=>{ return ... } 因为箭头函数中没有this,因此我们也就无从谈起用call/apply/bind来改变this指向3、解析结构var loading = props.loading;var clicked = props.clicked;...

2019-03-14 16:08:42 247

转载 Nginx配置文件nginx.conf详解

Nginx 总的 配置文件位置 /usr/local/nginx/conf/nginx.confnginx 正则匹配一.正则表达式匹配,其中: ~ 为区分大小写匹配  ~* 为不区分大小写匹配  !~和!~*分别为区分大小写不匹配及不区分大小写不匹配二.文件及目录匹配,其中: -f和!-f用来判断是否存在文件  -d和!-d用来判断是否存在目录  -e和!-e用来判断...

2019-02-27 14:21:29 273

转载 SQL优化

SQL优化1、介绍在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是随着互联网大数据的兴起,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不...

2019-02-21 15:20:05 90

原创 flask快速搭建

工程结构如下,全局的static和template目录: 1、main.py,读取设置,注册蓝图即各个模块,然后初始化数据库orm,app运行 #coding=utf-8from sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmaker,scoped_sessionfrom flask impo...

2018-12-28 11:01:37 332

原创 无题 --待续

1. url设计中减少动词add和del,请求的时候用put和deleteGET一般用于获取/查询 资源信息,后台操作是安全和幂等的,而POST一般用于更新 资源信息,安全级别更高(数据在body里面而不是url后面),每次操作都产生不一样的结果2. 返回结果中减少用ok, success,error,而应该用请求的状态码来直接标识例如tornado: set_status(statu...

2018-11-05 14:37:26 111

转载 sqlalchemy查询使用和遇到的问题

sqlalchemy查询使用1.带条件查询查询是最常用的,对于各种查询我们必须要十分清楚,首先是带条件的查询#带条件查询rows = session.query(User).filter_by(username='jingqi').all()print(rows)rows1 = session.query(User).filter(User.username=='jingqi...

2018-10-11 09:28:39 2558

原创 selenium+beautifulsoup模拟翻页

#coding=utf-8import unittestfrom selenium import webdriverfrom bs4 import BeautifulSoupclass douyuSelenium(unittest.TestCase): def setUp(self): self.driver = webdriver.PhantomJS()...

2018-09-27 16:50:09 1444

原创 一个开源分布式博客blog_xtg的分析

原文地址:https://github.com/xtg20121013/blog_xtg阅读知识点准备:tornadis用法concurrent.futures.ThreadPoolExecutor任务用法orm的用法-sqlalchemy的用法apscheduler的TornadoScheduler的用法main.py里面依次做了三件事:tornado的appl...

2018-09-17 15:58:45 771

原创 实现项目中的通用弹框的类

需要注意的是function里面的function函数的this指针发生改变,用了临时变量var _this= this来保存var dialog_html= '\<img alt="点击可以关闭" src="/static/images/disk.png" width="40px" height="30px;">\<div class="title"&a

2018-09-17 10:01:29 231

原创 python win32学习

COM是Microsoft的一项技术,它允许对象进行通信,而无需任何对象知道有关对方的任何细节,甚至是其实施的语言。# SimpleCOMServer.py - A sample COM server - almost as small as they come!## We expose a single method in a Python COM object.class Pyt...

2018-08-27 21:47:31 968

原创 css的关键---定位和布局,以及一个动画示例

1、块元素、内联元素、内联块元素元素就是标签,布局中常用的有三种标签,块元素、内联元素、内联块元素,了解这三种元素的特性,才能熟练的进行页面布局。块元素 块元素,也可以称为行元素,布局中常用的标签如:div、p、ul、li、h1~h6、dl、dt、dd等等都是块元素,它在布局中的行为:支持全部的样式 如果没有设置宽度,默认的宽度为父级宽度100% 盒子占据一行、即使设置了宽度内...

2018-08-20 11:05:24 1129

原创 Django异步请求分页的实现

Django的开发文档有一个自带的Paginator分页器,可以很方便的在原生的模板中进行调用函数分页;但是异步请求不能给模板传入对象,该怎么分页了?1、就将分页需要用到的数据从对象中提前取出来,放在字典里面2、前台调用时候不再从对象中取,而是字典中取,完成分页样式; #views.py获取返回列表res从请求中获取分页面数目per_page从请求中获取当前页面curren...

2018-08-10 15:40:01 1909

原创 可编辑contenteditable用法代替textarea,高亮显示文本中特定字段的方案

<div contenteditable="true" ></div>//把文本替换/n,并放在标签里面,对需要高亮的字段,替换到标签里面,标签在css添加样式function deal_result(arg) { $(".crush_content").empty(); var content = arg.action.replace(/\n/g...

2018-08-03 09:34:49 1727

原创 zTree的用法,以及父子节点(关系节点)转化为tree结构

var setting = { edit: { enable: true, showRemoveBtn: false,//显示后,节点可删除 showRenameBtn: false,//显示后,节点可重命名 drag:{ isCopy:true, //允许复制 isMove...

2018-08-01 15:56:03 3520

原创 Django项目实战总结二

mkdown语法概要 **这是加粗的文字***这是倾斜的文字*`>这是引用的内容---分隔线或***![image]-=* 一个空格表示无序列表*111*222*3331.数字加点有序列表表格表头|表头|表头---|:--:|---:内容|内容|内容内容|内容|内容'代码 ''''多行代码''' django总结 1.正则的分组匹配,读取结...

2018-07-19 13:07:24 512

原创 jquery点击弹出对话框的完整办法

1.html里面隐藏好一个div<div class="dialog" id="delallpartdialog"> <div class="title"> <img alt="点击可以关闭" src="/static/images/disk.png" width="30px" height=&a

2018-07-03 17:17:49 9909 1

原创 zabbix手动搭建总结文档

#zabbix软件安装rpm -ivh zabbix22-2.2.11-1.el7.x86_64.rpmrpm -ivh fping-3.10-4.el7.x86_64.rpm rpm -ivh zabbix22-agent-2.2.11-1.el7.x86_64.rpm rpm -ivh zabbix22-dbfiles-mysql-2.2.11-1.el7.noarch.rpmrp...

2018-06-27 09:41:49 396

原创 tkinter学习

#coding=utf-8import Tkinterroot = Tkinter.Tk()#root.overrideredirect(True)root.attributes("-alpha", 0.1)#窗口透明度60 %root.geometry("300x200+10+10")#root.attributes("-alpha", 0.3)窗口透明度70 %canvas =...

2018-06-25 10:37:25 346

原创 Django项目实战总结一----异步请求,echarts

function ajax_submit() { $.ajax({ //url: "{% url 'GetIndex' %}", url:"/index/", type: "GET", data: {}, success: function (arg) { //alert(arg.le...

2018-06-13 09:51:36 2725

转载 利用Django实现RESTful API

https://www.cnblogs.com/zhouyang123200/p/6606405.htmlRESTful API现在很流行,这里是它的介绍 理解RESTful架构和 RESTful API设计指南.按照Django的常规方法当然也可以实现REST,但有一种更快捷、强大的方法,那就是 Django REST framework.它是python的一个模块,通过在Django里面配置就...

2018-06-05 20:43:47 1343

原创 python元类使用经验总结

基础概念:    type类是所有类的元类,所有类可以通过type(name, bases, attrs)    name是新建类的名字,bases是基类的列表,attrs是类方法类变量这些属性py3创建元类的方法:class NewClass(bases, metaclass=SayMetaClass)class SayMetaClass(type): def __new__(cls...

2018-06-05 20:41:07 559

空空如也

空空如也

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

TA关注的人

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