最近在做游戲服務分層的時候,一直想把mysql的訪問獨立成一個單獨的服務DBGate,原因如下:請求收攏到DBGate,可以使DBGate變為無狀態的,方便橫向擴展當請求量或者存儲量變大時,mysql需要做分庫分表,DBGate可以內部直接處理,外界無感知通過restful限制對數據請求的形式,僅支持簡單的get/post/patch/put進行增刪改查,并不支持復雜查詢。這個也是和游戲業務的特性有關,如果網站等需要復雜查詢的業務,對此并不適合DBGate
系統 2019-09-27 17:52:45 1758
我想使用python的第三方庫,但是我的IDE給我一個錯誤代碼:D:\untitled\venv\Scripts\python.exe"D:/pycode/venv/sxsxsxsxs.py"Traceback(mostrecentcalllast):File"D:\untitled\venv\lib\site-packages\urllib3\connectionpool.py",line597,inurlopenself._prepare_proxy(
系統 2019-09-27 17:52:39 1758
psutil(進程和系統實用程序)是一個跨平臺的庫,用于在Python中檢索有關運行進程和系統利用率(CPU,內存,磁盤,網絡,傳感器)的信息。它主要用于系統監視,分析和限制流程資源以及運行流程的管理。它實現了UNIX命令行工具提供的許多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。psut
系統 2019-09-27 17:52:36 1758
前言剛開始開發Web的時候,沒太在意隔離虛擬環境,用了系統的那一套,Python2.7版本是系統自帶的,雖說明年就結束了,但是現在開發都會有一套3.x以上的環境,即使你開發不注意,你部署的時候總歸是要隔離出來的。1.方便隔離,不同環境編寫測試2.方便遷移,pipfreeze到出包文件依賴,隨后提交管理和遷移都很方便virtualenv前提是你有兩套PythonmikejingdeMacBook-Pro:~MKJ$whichpython/usr/bin/py
系統 2019-09-27 17:52:34 1758
1.鎖:Lock(1次放1個)同步鎖線程安全,多線程操作時,內部會讓所有線程排隊處理。如:list/dict/Queue線程不安全+人=>排隊處理。需求:a.創建100個線程,在列表中追加8b.創建100個線程v=[]鎖-把自己的添加到列表中。-在讀取列表的最后一個。解鎖以后鎖一個代碼塊:importthreadingimporttimev=[]lock=threading.Lock()deffunc(arg):lock.acquire()#鎖的區域---
系統 2019-09-27 17:52:33 1758
掃描服務器ip開放端口,用線程池ThreadPoolExecutor,i7的cpu可以開到600個左右現成,大概20s左右掃描完65535個端口,根據電腦配置適當降低線程數#!/usr/local/python3.6.3/bin/python3.6#coding=utf-8importsocketimportdatetimeimportrefromconcurrent.futuresimportThreadPoolExecutor,waitDEBUG=Fa
系統 2019-09-27 17:52:19 1758
經典的漢諾塔問題:這里我們可以利用遞歸的思想去做,遞歸中重要的三步,我們逐條來實現:1、函數+分支結構2、遞歸鏈條3、遞歸基例函數+分支結構:defhanoi(n,start,end,mid):globalcountif:else:這里我們可以定義一個函數,里面的參數有:一共有n個圓盤,從start柱子移到end柱子,中間柱子為mid。這里定義一個全局變量來計算移動的步驟數,若為局部變量,會在函數內部不斷初始化,所以需要定義全局變量。遞歸基例:ifn==1
系統 2019-09-27 17:52:07 1758
最近在工作中遇到一個問題,就是有一個功能希望在各種服務器上實現,而服務器上的系統版本可能都不一樣,有的是CentOS6.x,有的是CentOS7.x。需要說明的一點是,CentOS6.x上的Python版本是2.6.x的,而CentOS7.x上的Python版本是2.7.x的,這意味著我要實現的功能要適配這兩種版本的系統。你可能會說,這有什么的,自己寫的時候,注意一下就好了。事情其實沒有那么容易,我要實現的功能是基于一個框架進行定制,需要修改不少的框架代碼
系統 2019-09-27 17:51:50 1758
函數這么重要的東西自然少不了。那么在python中是怎么定義的呢?defcgg(name):print("haha%s"%name)def是定義的意思,而cgg是函數名,name是參數。當然了,有了函數嗎,自然少不了函數的返回值。那么這里用的依然是return。defcgg(a,b):returna+b模塊一個小例子:importtimeprint(time.asctime())這個可以顯示現在的時間。而這個time就是一個模塊,包括之前的turtle也是
系統 2019-09-27 17:51:49 1758
1.交換變量值2.將一列表中的所有元素拼接成字符串3.查找list中最高頻率的值4.檢查兩個單詞是否是字謎(組成的字母和對應數量一致)5.反轉字符串6.反轉列表7.轉置2維數組8.鏈式比較9.鏈式函數調用10.復制列表11.DictionaryGet12.按值排序字典13.ForElse14.將列表轉換為逗號分隔的字符串15.合并字典16.list中的最小和最大索引17.從列表中刪除重復項查看英文原文:https://hackernoon.com/pyth
系統 2019-09-27 17:51:34 1758