欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
基于Redis+MySQL+MongoDB存儲架構應用

  摘  要Redis+MySQL+MongoDB技術(shù)架構實(shí)現了本項目中大數據存儲和實(shí)時(shí)云計算的需求。使用MongoDB切片的水平動(dòng)態(tài)添加,可在不中斷平臺業(yè)務(wù)系統的同時(shí)保障擴容后的查詢(xún)速度和云計算效能;依據切片鍵索引分片,位于各切片獨立進(jìn)行計算,使大數據下的實(shí)時(shí)分析成為現實(shí)。對于高頻訪(fǎng)問(wèn)的數據放在了Redis中,有效地降低磁盤(pán)I/O,使業(yè)務(wù)系統響應更為敏捷,滿(mǎn)足了高并發(fā)下應用服務(wù)的高呑吐要求。

  關(guān)鍵詞移動(dòng)位置服務(wù)SaaS;Redis;MongoDB

  基于移動(dòng)位置服務(wù)的應用是根據用戶(hù)所在位置提供的一種增值業(yè)務(wù),主要通過(guò)移動(dòng)定位技術(shù)獲得其當前所在位置,在電子地圖和業(yè)務(wù)平臺的支持下,提供位置相關(guān)的信息服務(wù)。通過(guò)互聯(lián)網(wǎng)提供軟件服務(wù)的SaaS(Software as a Service)模式具有企業(yè)初期零投入,不需服務(wù)器、系統研發(fā)等軟硬件投入等獨特的優(yōu)點(diǎn),為廣大中小企業(yè)解決前期資金投入不足的情況下開(kāi)展信息化建設,引入管理信息系統提供了一個(gè)可行的模式。

  1 項目簡(jiǎn)介

  基于此需求背景提出開(kāi)發(fā)一種面向中小企業(yè)移動(dòng)位置服務(wù)的SaaS平臺,幫助所有具有外勤、外巡、外服的戶(hù)外工作業(yè)務(wù)的中小企業(yè)降低成本,將定位技術(shù)與智能手機客戶(hù)端相結合,利用運營(yíng)商的GSM/WCDMA等無(wú)線(xiàn)網(wǎng)絡(luò ),為企業(yè)提供在外工作人員的具體位置和行走軌跡,同時(shí)實(shí)現考勤簽到、快速審批、位置標注、語(yǔ)音群聊、數據上報、區域預警,更好地進(jìn)行地理化分析、業(yè)績(jì)審視,快速響應客戶(hù)需求和有效管理員工,深度鞏固企業(yè)在市場(chǎng)中主體地位和增強企業(yè)核心競爭力。

  2 業(yè)務(wù)數據分析

  移動(dòng)位置服務(wù)的SaaS平臺作為企業(yè)移動(dòng)互聯(lián)網(wǎng)應用,應用過(guò)程將積累大量數據。其中包括:靜態(tài)信息(手機號碼、注冊信息、手機型號等);位置信息(行動(dòng)軌跡、速度、停留時(shí)間、地點(diǎn)屬性);與APP關(guān)聯(lián)的數據(訪(fǎng)問(wèn)行為、社交行為、交易行為等);交互特點(diǎn)(報告頻率、數據類(lèi)型與格式等)。其數據容量和特點(diǎn)較傳統業(yè)務(wù)有較大地變化。

  2.1 數據來(lái)源分析

  數據來(lái)源包括終端采集的數據和SaaS平臺數據,終端數據涵蓋了Android、IOS智能終端和PC端,智能終端是企業(yè)應用的數據采集器,是企業(yè)人在業(yè)務(wù)活動(dòng)中“人體器官”的延伸。同時(shí)還有部分數據源于PC端;另外系統運行過(guò)程中,會(huì )產(chǎn)生大量日志數據。

 ?。?)終端采集的數據

 ?、佘壽E數據:以包括公司id、用戶(hù)id、經(jīng)緯度、地址、定位時(shí)間、定位類(lèi)型等信息的一個(gè)數據樣本為例,默認30 s采集一次,假如企業(yè)員工默認工作時(shí)間8小時(shí),每個(gè)員工每天條數為2 080條,假定用戶(hù)數為10 000,那么每天有2 080萬(wàn)條;單條數據占用空間184 KB,10 000用戶(hù)一天占用空間約為3 GB。

 ?、诔R帢I(yè)務(wù)數據:常規業(yè)務(wù)數據種類(lèi)有考勤、工作計劃、工作日志、申請、事件提醒、通知公告、銷(xiāo)售上報等;保守預計單條數據容量為512 KB,按每個(gè)用戶(hù)每天產(chǎn)生15條相關(guān)業(yè)務(wù),其數據量為7 680 KB,10 000用戶(hù)一天產(chǎn)生數據量約為73 MB。

 ?、奂磿r(shí)聊天和工作微博數據:即時(shí)聊天和工作微博數據為非結構化數據,包含如下種類(lèi):語(yǔ)音、圖片、文本、位置分享等。保守預計單條圖片語(yǔ)音數據量為:   100 KB,按每個(gè)用戶(hù)每天產(chǎn)生30條,其數據量為3 000 KB,10 000用戶(hù)一天產(chǎn)生數據量約為28 GB。

 ?。?)平臺數據

  作為服務(wù)眾多企業(yè)的云平臺,還有如下種類(lèi)數據需要產(chǎn)生和管理:企業(yè)、企業(yè)組織、企業(yè)用戶(hù)、用戶(hù)通信錄、用戶(hù)通信錄個(gè)性化備注、群組名片等;平臺方面的數據暫且不作考量,與普遍的企業(yè)應用基本類(lèi)似。

  2.2 數據特點(diǎn)分析

 ?。?)移動(dòng)化。與PC應用相比較,移動(dòng)應用數據采集的時(shí)空變化了,智能終端不知疲倦,可以自動(dòng)采集上報如位置等信息;同時(shí)移動(dòng)化使得采集數據的便捷性得到了極大提高,用手機拍照立即便可上傳,相比過(guò)去的照相機采集沒(méi)有空間限制也沒(méi)有鏈接PC上傳的限制。

 ?。?)非結構化。采集的圖片語(yǔ)音等媒體數據非結構化,例如采集門(mén)店的貨品陳列的圖片數據等,工作微博分享的數據文檔化,與傳統結構化、需要事務(wù)支持的數據有明顯差異。

 ?。?)平臺級增量化。與以往企業(yè)級應用對應一家企業(yè)增量相比,平臺級數據增量化帶來(lái)的數據量巨大增加,通過(guò)上面的分析,10 000用戶(hù)每天會(huì )帶來(lái)大約30 GB的數據增量。30 GB數據有些均勻地提交到平臺,有些會(huì )以峰值的方式提交到平臺;考勤通常集中在上下班時(shí)段,而軌跡則均勻分布在所有上班時(shí)間。

  針對以上數據分析,如何解決其大容量和非結構化數據特點(diǎn)面臨的存儲和處理的挑戰?通過(guò)技術(shù)選型和前期的測試數據對比,選用了Redis+MySQL+Mongodb架構的解決方案。

  3 相關(guān)技術(shù)

  3.1 Redis簡(jiǎn)介

  Redis(Remote Dictionary Server)是一個(gè)使用ANSI C語(yǔ)言開(kāi)發(fā)的開(kāi)源的Key-Value存儲系統,它和目前較流行的Memcached類(lèi)似,都是基于內存(緩存)的數據存儲方式,不同的是Redis支持的數據類(lèi)型更加豐富并且對每種數據結構提供了豐富的操作。同時(shí),Redis不同于Memcached之處在于它會(huì )將更新的數據異步的持久化到硬盤(pán)中或者把進(jìn)行過(guò)的修改操作寫(xiě)入日志文件中。Redis雖然是Key/Value形式的數據庫,但是它吸收了部分關(guān)系型數據庫的優(yōu)點(diǎn),如在能保存Lists和Sets類(lèi)型的數據的同時(shí),還能完成排序等高級功能,同時(shí)在實(shí)現INCR(自增)、SETNX(若不存在Key則創(chuàng )建并設值)等功能時(shí)保證其操作的原子性。在此基礎上還實(shí)現了Master-Slave(主從)同步[2]。Redis主從復制特點(diǎn):(1)支持一個(gè)Master可以擁有多個(gè)Slave,同時(shí)Slave還可以接收其他的Slave;(2)主從復制不會(huì )阻塞Master和Slave,在同步數據時(shí),Master和Slave都可以接收Client請求[2]。

  3.2 MongoDB及其自動(dòng)分片簡(jiǎn)介[3]

  MongoDB是一個(gè)基于分布式文件存儲的數據庫[4]。由C++語(yǔ)言編寫(xiě)。它支持的數據結構非常松散,是類(lèi)似json的bson格式,因此可以存儲比較復雜的數據類(lèi)型。MongoDB的特點(diǎn)是面向集合存儲,模式自由,支持動(dòng)態(tài)查詢(xún)、完全索引、查詢(xún)、復制和故障轉移,自動(dòng)處理碎片[5]。MongoDB的核心理念在于文檔模型,它是MongoDB數據的基本單元,等價(jià)于關(guān)系型數據庫的行。MongoDB中的集合等價(jià)于關(guān)系型數據庫中的表。一個(gè)單一的MongoDB可以承載多個(gè)獨立的數據庫,每個(gè)數據庫可以擁有自己的集合和管理權限。

  MongoDB的分片架構是指把數據分割成不同部分,在不同的機器上的存儲過(guò)程,通過(guò)分割數據到不同的服務(wù)器上,使得無(wú)需使用更強大的機器來(lái)存儲更多的數據和處理更大的負載。MongoDB支持自動(dòng)分片,集群可以自動(dòng)分割數據和數據的再均衡。MongoDB提供以下的分片技術(shù):(1)對負載的變換和數據的分布自動(dòng)平衡;(2)動(dòng)態(tài)添加額外服務(wù)器;(3)無(wú)單點(diǎn)故障;(4)自動(dòng)故障轉移[6]。

  4 技術(shù)實(shí)現

  4.1 架構功能角色

  Redis+MySQL+Mongodb架構對應功能角色如下。

  Redis:基于內存高速緩存,保存集群中央會(huì )話(huà),即時(shí)通信離線(xiàn)消息隊列,即時(shí)通信重發(fā)消息集合,用戶(hù)令牌生命周期管理,應用高頻訪(fǎng)問(wèn)數據緩存,HTML5模板數據緩存,靜態(tài)應用資源緩存。

  MySQL:進(jìn)行事務(wù)數據存儲:相關(guān)企業(yè)賬號數據,企業(yè)常規業(yè)務(wù)數據,企業(yè)平臺交易數據。

  Mongodb:進(jìn)行非結構化文檔數據存儲:包括圖片、圖標、語(yǔ)音、工作微博文本以及結合位置數據的非結構化的文檔數據,需要動(dòng)態(tài)擴展無(wú)固定模式的數據,應用日志數據,需要map-reduce計算的數據。

  4.2 可靠性和可用性保障措施

  為了保證生產(chǎn)系統數據可靠性和可用性,規避Redis+MySQL+Mongodb單點(diǎn)故障,分別作了主從備份,在此基礎上采用了KEEPALIVE,通過(guò)VRRP協(xié)議實(shí)現了故障的自動(dòng)切換。Redis配置了主從,MySQL配置了主從,Mongodb配置了切片;詳細配置清單舉例如下。

  Redis主從配置需要在從配置文件Redis.conf指定主IP和端口:slaveof 192.168.10.10 6379

  MySQL主從配置:

  主配置:server-id=1;log-bin=mysql-bin;binlog-do-db=wqt_web

  從配置:server-id=2;log-bin=msyql-bin;master-host=192.168.10.3;master-user=slaveuser;master-password=gotop4001680756;master-port=3306;…

  Mongodb切片配置:

  mongod-shardsvr-port 10001-dbpath=/home/data/shard11/-logpath /home/data/shard11/mongodb.log--fork

  mongod-shardsvr-port 10002-dbpath=/home/data/shard12/-logpath

  …

  mongo 127.0.0.1:20000/admin

  配置分片必須要鏈接admin集合。鏈接成功后可以把分片加入集群:

  db.runCommand({"addshard":"127.0.0.1:10001"})

  …

  db.runCommand({"addshard":"127.0.0.1:10004"})

  這樣就成功地把4個(gè)shard加入了分片。制定分片的規則如下:

  db.runCommand({"shardcollection":"kingfihser.tablename","key":{"primaryKey":1}})

  激活分片的設置:db.runCommand({"enablesharding":"kingfisher"}),最后成功的配置了分片。

  4.3 詳細代碼

  4.3.1 Redis實(shí)現案例

  在通信中,作為發(fā)布訂閱隊列使用,Web發(fā)布消息,進(jìn)入Redis發(fā)布訂閱頻道,通信中心消費此頻道消息,所有的信息發(fā)布都在Redis中進(jìn)行,從而提高了響應的速度。

  public boolean sendMsg(String msg){

  boolean rebool=true;

  Jedis jedis=null;

  try{

  jedis=(Jedis)pool.getResource();

  jedis.publish("kingfisher.*",msg);

  }catch(Exception e){

  e.printStackTrace();

  rebool=false;

  }finally{

  pool.returnResource(jedis);

  }

  return rebool;

  }

  4.3.2 Mysql實(shí)現

  進(jìn)行事務(wù)數據存儲:包括相關(guān)企業(yè)賬號數據,企業(yè)常規業(yè)務(wù)數據,企業(yè)與平臺交易數據。此部分的存儲計算采用HIBERNATE+SPRING方式實(shí)現。

  4.3.3 Mongodb實(shí)現案例

 ?。?)媒體數據利用GFS網(wǎng)格文件子系統存儲。

  class fileservice(BaseHandler):

  def get(self):

  id=self.get_argument("id","")

  f=GridOut(self.mongo.fs,ObjectId(id))

  try:

  fn=f.filename.lower()

  …

  self.write(f.read())

  def post(self):

  …

  def delete(self):

  …

 ?。?)工作微博內容和二維空間索引,以及軌跡數據的索引和查詢(xún)。

  class listmark(BaseHandler):

  ′′′

  搜索工作微博列表

  ′′′

  def get(self):

  self.set_header("Content-Type", "application/json")

  …

  class mark(BaseHandler):

  ′′′

  基于二維空間的搜索

  ′′′

  def get(self):

  self.set_header("Content-Type","application/json")

  try:

  …

 ?。?).map-reduce計算做日志分析。

  ′′′

  調度生成當天用戶(hù)訪(fǎng)問(wèn)行為

  ′′′

  class currdayuser(BaseHandler):

  def get(self):

  …

  ′′′

  調度生成當天服務(wù)運行行為

  ′′′

  class currdayservice(BaseHandler):

  def get(self):

  目前這種存儲結構,解決了項目中大數據存儲和實(shí)時(shí)云計算的需求。使用了Mongodb切片的水平動(dòng)態(tài)添加,可不中斷平臺業(yè)務(wù)系統的同時(shí)保障擴容后的查詢(xún)速度和云計算效能;依據切片鍵索引分片,計算位于各切片獨立進(jìn)行,使大數據下的實(shí)時(shí)分析成為現實(shí)。對于高頻訪(fǎng)問(wèn)的數據放在了Redis中,有效地降低了磁盤(pán)I/O,使業(yè)務(wù)系統響應更為敏捷,滿(mǎn)足了高并發(fā)下的應用服務(wù)的高吞吐要求。雖然大數據的存儲和計算變得簡(jiǎn)單,但由于版本和技術(shù)在日新月異的變化,數據系統的管理工作并不輕松。在新架構下的運維管理還會(huì )遇到新的挑戰并需不斷優(yōu)化完善。

  參考文獻

  [1] 田濤,常青,邱桂蘋(píng),等.基于Redis的人本電子健康系統的設計與實(shí)現[J].電子世界,2013(24):137-138.

  [2] 曾超宇,李金香.Redis在高速緩存系統中的應用[J].微型機與應用,2012(12):11-13.

  [3] 何杭鋒.基于FODO算法MongoDB自動(dòng)分片的改進(jìn)[J].計算機技術(shù)與發(fā)展,2013(7):127-130.

  [4] 霍多羅夫,迪洛爾夫.MongoDB權威指南[M].程顯鋒譯北京:人民郵電出版社,2011.

  [5] 呂明育,李小勇.NoSQL數據庫與關(guān)系數據庫的比較分析[J].微型電腦應用,2011,27(10):55-57.

  [6] MongoDB features[OL]. http://www.cnblogs.com.[2011-06-01].


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
PyPy 和 CPython 的性能比較測試
Redis和MongoDB區別
Web-第二十天 Redis學(xué)習【悟空教程】
Python3網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)實(shí)戰之使用代理爬取微信公眾號文章
全面!2016全球最強數據庫大盤(pán)點(diǎn)
完全用nosql輕松打造千萬(wàn)級數據量的微博系統(整理篇) - Php - ChinaUnix.net
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久