FeedBurner:基于MySQL和JAVA的可扩展Web应用

Related

Η Bose παρουσίασε τα Sport Open και Ultra Open Earbuds (2nd Gen)

Η Bose φέρνει ξανά τα πάνω κάτω στον ήχο με την επίσημη παρουσίαση των Bose Sport Open Earbuds και των Bose Ultra Open Earbuds (2nd Gen). Η εταιρεία μεγαλώνει την οικογένεια των open-ear ακουστικών της, δίνοντας μια φρέσκια πρόταση για την προπόνηση αλλά και την καθημερινότητα. Οι προπαραγγελίες άνοιξαν στις 19 Σεπτεμβρίου, ενώ η επίσημη

Το Galaxy 27 Ultra θα ενσωματώνει μπαταρία 5.700mAh

Η Samsung ετοιμάζεται να κάνει μια κίνηση που οι φίλοι της σειράς Ultra περίμεναν εδώ και χρόνια. Μετά από μια μεγάλη περίοδο στασιμότητας στο κομμάτι της αυτονομίας, τα νεότερα δεδομένα δείχνουν ότι το επερχόμενο Galaxy S27 Ultra θα ενσωματώνει μπαταρία 5.700mAh, αφήνοντας οριστικά πίσω το κλασικό μέγεθος των 5.000mAh. Η μεγάλη καμπή στην αυτονομία Η

EY – Microsoft: Παγκόσμια πρωτοβουλία για την αξιοποίηση του AI σε εταιρική κλίμακα

Μια πρωτοβουλία που εξελίσσει την παγκόσμια στρατηγική συμμαχία τους ανακοίνωσαν η EY και η Microsoft, επενδύοντας πάνω από $1 δισ. σε ορίζοντα πενταετίας, με στόχο να βοηθήσουν τους οργανισμούς να αξιοποιήσουν την τεχνητή νοημοσύνη (AI) σε εταιρική κλίμακα και να πετύχουν μετρήσιμα αποτελέσματα. Η ανάπτυξη δεξιοτήτων του ανθρώπινου κεφαλαίου, η διαχείριση αλλαγής (change management) και

Όλες οι τελικές λεπτομέρειες για το Clicks Communicator

Η Clicks Technology μόλις αποκάλυψε τις τελικές λεπτομέρειες για το Clicks Communicator, και τα νέα είναι εξαιρετικά για όσους αναζητούν μια συσκευή εστιασμένη στην παραγωγική επικοινωνία. Η εταιρεία δεν περιορίστηκε μόνο σε φρεσκάρισμα των τεχνικών χαρακτηριστικών. Ανακοίνωσε ένα ολόκληρο οικοσύστημα από θήκες, προστατευτικά οθόνης, υπηρεσίες κάλυψης βλαβών μέχρι και δικά της προγράμματα κινητής τηλεφωνίας. Σημαντική

Πρώτη σειρά απολύσεων στην Apple υπό τον Ternus

Η Apple δεν μας έχει συνηθίσει σε μαζικές περικοπές προσωπικού. Αντίθετα με άλλους τεχνολογικούς κολοσσούς που διώχνουν κόσμο κατά χιλιάδες, ο αμερικανικός κολοσσός κρατά συνήθως μια πιο συντηρητική στάση. Ωστόσο, η πρώτη σειρά απολύσεων με τον John Ternus στη θέση του διευθύνοντος συμβούλου είναι πλέον γεγονός. Αυτό σημαίνει ότι η εταιρεία αλλάζει εντελώς πορεία; Όχι

Η μάχη της AI μεταφέρεται στο packaging: Το νέο οχυρό της TSMC και η ευκαιρία για την Ελλάδα

Η TSMC επενδύει σε νέο πάρκο προηγμένου packaging στην Ταϊβάν, καθώς η AI μετακινεί το κρίσιμο σημείο της αλυσίδας chips και ανοίγει παράθυρο για την Ελλάδα.

Τεχνητή νοημοσύνη: ΗΠΑ–Κίνα ανοίγουν δίαυλο για την AI πριν από τη συνάντηση Τραμπ–Σι

Οι ΗΠΑ και η Κίνα συμφώνησαν να δημιουργήσουν έναν νέο μηχανισμό διαλόγου για την τεχνητή νοημοσύνη, λίγες ημέρες πριν από την κρίσιμη συνάντηση του Ντόναλντ Τραμπ με τον Σι Τζινπίνγκ στην Ουάσιγκτον την Πέμπτη. Όπως αναφέρουν οι Financial Times, ο Αμερικανός υπουργός Οικονομικών Σκοτ Μπέσεντ αποκάλυψε ότι η συμφωνία για τον διάλογο γύρω από την

Τεχνητή νοημοσύνη: Ποια θα είναι η νέα δουλειά των δημιουργών

Η τεχνητή νοημοσύνη υποσχέθηκε να κάνει τη δημιουργική εργασία γρηγορότερη και φθηνότερη. Στην πράξη, όμως, δημιούργησε και ένα παράδοξο νέο επάγγελμα: ανθρώπους που πληρώνονται για να διορθώνουν όσα η AI δεν κατάφερε να κάνει σωστά. Γραφίστες εξαφανίζουν επιπλέον δάχτυλα και φτιάχνουν παραμορφωμένα πρόσωπα, μοντέρ διορθώνουν παράλογες σκιές και αντικείμενα που εμφανίζονται από το πουθενά, ενώ

Mobile internet: 4,8 δισ. χρήστες παγκοσμίως – Το μεγάλο ψηφιακό χάσμα

Η χρήση του mobile internet αυξάνεται, όμως 3,4 δισ. άνθρωποι παραμένουν εκτός σύνδεσης – Κόστος συσκευών, ψηφιακές δεξιότητες και ανισότητες μεταξύ χωρών και φύλων παραμένουν τα βασικά εμπόδια Το mobile internet έφτασε το 2025 τους 4,8 δισεκατομμύρια χρήστες, σύμφωνα με την έκθεση της GSMA. Περίπου 3,4 δισεκατομμύρια άνθρωποι παραμένουν εκτός mobile internet, με το μεγαλύτερο

Xiaomi Redmi Note 17 Pro Max 5G Review: “Αντέχει εκεί που όλα τα άλλα… σταματούν”!

Για χρόνια, η βιομηχανία των smartphones κινείται προς την ίδια κατεύθυνση: λεπτότερο design, μικρότερο βάρος και ολοένα πιο εντυπωσιακές επιδόσεις. Συχνά, όμως, αυτή η εμμονή στη λεπτότητα αφήνει σε δεύτερο πλάνο δύο στοιχεία που εξακολουθούν να καθορίζουν την καθημερινή εμπειρία: την αυτονομία και την αντοχή. Η Xiaomi επιλέγει να ακολουθήσει έναν διαφορετικό δρόμο, βάζοντας στο

Η νέα σειρά REDMI Note 17 διαθέσιμη στη Vodafone με προνομιακές τιμές

Η νέα σειρά Xiaomi REDMI Note 17 είναι διαθέσιμη στα καταστήματα Vodafone και στο Vodafone eshop με δυνατότητα εξόφλησης σε έως 36 άτοκες δόσεις μέσω Vodafone Flex και προνομιακές τιμές* για όσους την αποκτήσουν έως τις 4 Οκτωβρίου. Σχεδιασμένη για να ανταποκρίνεται στις απαιτήσεις της καθημερινότητας, η νέα σειρά REDMI Note 17 προσφέρει έως και

Η Honor συνεργάζεται με τη μυθική ARRI στο Honor Magic 9

Οι συνεργασίες μεταξύ εταιρειών κινητής τηλεφωνίας και θρυλικών ονομάτων της φωτογραφίας δεν αποτελούν πλέον έκπληξη. Η Xiaomi δουλεύει με τη Leica, η Oppo με την Hasselblad, η Vivo με τη Zeiss. Τώρα η Honor κάνει το δικό της μεγάλο βήμα, πηγαίνοντας την κατάσταση σε εντελώς άλλο επίπεδο μέσα από τη συμμαχία της με τη μυθική

Share

于敦德 2006-6-27

Ακολουθήστε το fibernews.gr στη Google
Προσθέστε μας στις προτιμώμενες πηγές σας για να βλέπετε συχνότερα τις ειδήσεις και τις αναλύσεις μας στη Google.

FeedBurner(以下简称FB,呵呵)我想应该是大家耳熟能详的一个名字,在国内我们有一个同样的服务商,叫做FeedSky。在2004年7月份,FB的流量是300kbps,托管是5600个源,到2005年4月份,流量已经增长到5Mbps,托管了47700个源;到2005年9月份流量增长到20M,托管了109200个源,而到2006年4月份,流量已经到了115Mbps,270000个源,每天点击量一亿次。

FB的服务使用Java实现,使用了Mysql数据库。我们下面来看一下FB在发展的过程中碰到的问题,以及解决的方案。

在2004年8月份,FB的硬件设备包括3台Web服务器,3台应用服务器和两台数据库服务器,使用DNS轮循分布服务负载,将前端请求分布到三台Web服务器上。说实话,如果不考虑稳定性,给5600个源提供服务应该用不了这么多服务器。现在的问题是即使用了这么多服务器他们还是无法避免单点问题,单点问题将至少影响到1/3的用户。FB采用了监控的办法来解决,当监控到有问题出现时及时重启来避免更多用户受到影响。FB采用了Cacti(http://www.cacti.net)和Nagios(http://www.nagios.org)来做监控。

FB碰到的第二个问题是访问统计和管理。可以想象,每当我们在RSS阅读器里点击FB发布的内容,都需要做实时的统计,这个工作量是多么的巨大。大量写操作将导致系统的效率急剧下降,如果是Myisam表的话还会导致表的死锁。FB一方面采用异步写入机制,通过创建执行池来缓冲写操作;只对本日的数据进行实时统计,而以前的数据以统计结果形式存储,进而避免每次查看访问统计时的重复计算。所以每一天第一次访问统计信息时速度可能会慢,这个时候应该是FB在分析整理前一天的数据,而接下来的访问由于只针对当日数据进行分析,数据量小很多,当然也会快很多。FB的Presentation是这样写,但我发现好像我的FB里并没有今天实时的统计,也许是我观察的不够仔细-_-!

现在第三个问题出现了,由于大多数的操作都集中在主数据库上,数据库服务器的读写出现了冲突,前面提到过Myiasm类型的数据库在写入的时候会锁表,这样就导致了读写的冲突。在开始的时候由于读写操作比较少这个问题可能并不明显,但现在已经到了不能忽视的程度。解决方案是平衡读写的负载,以及扩展HibernateDaoSupport,区分只读与读写操作,以实现针对读写操作的不同处理。

现在是第四个问题:数据库全面负载过高。由于使用数据库做为缓存,同时数据库被所有的应用服务器共享,速度越来越慢,而这时数据库大小也到了Myisam的上限-4GB,FB的同学们自己都觉得自己有点懒。解决方案是使用内存做缓存,而非数据库,他们同样使用了我们前面推荐的memcached,同时他们还使用了Ehcache(http://ehcache.sourceforge.net/),一款基于Java的分布式缓存工具。

第五个问题:流行rss源带来大量重复请求,导致系统待处理请求的堆积。同时我们注意到在RSS源小图标有时候会显示有多少用户订阅了这一RSS源,这同样需要服务器去处理,而目前所有的订阅数都在同一时间进行计算,导致对系统资源的大量占用。解决方案,把计算时间错开,同时在晚间处理堆积下来的请求,但这仍然不够。

问题六:状态统计写入数据库又一次出问题了。越来越多的辅助数据(包括广告统计,文章点击统计,订阅统计)需要写入数据库,导致太多的写操作。解决方案:每天晚上处理完堆积下来的请求后对子表进行截断操作:

– FLUSH TABLES; TRUNCATE TABLE ad_stats0;

这样的操作对Master数据库是成功的,但对Slave会失败,正确的截断子表方法是:

– ALTER TABLE ad_stats TYPE=MERGE UNION=(ad_stats1,ad_stats2);

– TRUNCATE TABLE ad_stats0;

– ALTER TABLE ad_stats TYPE=MERGE UNION=(ad_stats0,ad_stats1,ad_stats2);

解决方案的另外一部分就是我们最常用的水平分割数据库。把最常用的表分出去,单独做集群,例如广告啊,订阅计算啊,

第七个问题,问题还真多,主数据库服务器的单点问题。虽然采用了Master-Slave模式,但主数据库Master和Slave都只有一台,当Master出问题的时候需要太长的时间进行Myisam的修复,而Slave又无法很快的切换成为Master。FB试了好多办法,最终的解决方案好像也不是非常完美。从他们的实验过程来看,并没有试验Master-Master的结构,我想Live Journal的Master-Master方案对他们来说应该有用,当然要实现Master-Master需要改应用,还有有些麻烦的。

第八个问题,停电!芝加哥地区的供电状况看来不是很好,不过不管好不好,做好备份是最重要的,大家各显神通吧。

这个Presentation好像比较偏重数据库,当然了,谁让这是在Mysql Con上的发言,不过总给人一种不过瘾的感觉。另外一个感觉,FB的NO们一直在救火,没有做系统的分析和设计。

最后FB的运维总监Joe Kottke给了四点建议:

1、 监控网站数据库负载。

2、 “explain”所有的SQL语句。

3、 缓存所有能缓存的东西。

4、 归档好代码。

最后,FB用到的软件都不是最新的,够用就好,包括:Tomcat5.0,Mysql 4.1,Hibernate 2.1,Spring,DBCP。

文章参考了Joe Kottke在MySQL Users Conference 2006上的发言。

ByteDance: Συμφωνία στο Χόλιγουντ για τα πνευματικά δικαιώματα στον τομέα τεχνητή νοημοσύνης

Συμφωνία υπέγραψαν τη Δευτέρα η ByteDance και η Motion Picture Association (MPA) με την οποία επιδιώκουν την ενίσχυση των μέτρων προστασίας των πνευματικών δικαιωμάτων στα μοντέλα τεχνητής νοημοσύνης της κινεζικής εταιρείας για τη δημιουργία βίντεο και εικόνων, μήνες αφότου η επαγγελματική ένωση του Χόλιγουντ αμφισβήτησε τον τρόπο με τον οποίο η εταιρεία χειρίζεται την πνευματική

初创网站与开源软件

前面有一篇文章中提到过开源软件,不过主要是在系统运维的角度去讲的,主要分析一些系统级的开源软件(例如bind,memcached),这里我们讨论的是用于搭建初创网站应用的开源软件(例如phpbb,phparticle),运行在Linux,MySQL,Apache,PHP,Java等下面。 创业期的网站往往采用比较简单的系统架构,或者是直接使用比较成熟的开源软件。使用开源软件的好处是搭建速度快,基本不需要开发,买个空间域名,下个软件一搭建,用个半天就搞定了,一个崭新的网站就开张了,在前期可以极大程度的节约时间成本和开发成本。 当然使用开源软件搭建应用也存在一些局限性,这是我们要重点研究的,而研究的目的就是如何在开源软件选型时以及接下来的维护过程中尽量避免。 一方面是开源软件一般只有在比较成熟的领域才有,如果是一些创新型的项目很难找到合适的开源软件,这个时候没什么好的解决办法,如果非要用开源的话一般会找一个最相似的改一下。实际上目前开源的项目也比较多了,在sf.net上可以找到各种各样的开源项目。选型的时候尽量应该选取一个程序架构比较简单的,不一定越简单越好,但一定要简单,一目了然,别用什么太高级的特性,互联网应用项目不需要太复杂的框架。原因有两个,一个是框架复杂无非是为了实现更好的可扩展性和更清晰的层次,而我们正在做的互联网应用范围一般会比开源软件设计时所考虑的范围小的多,所以有的应用会显得设计过度,另外追求完美的层次划分导致的太复杂的继承派生关系也会影响到整个系统维护的工作量。建议应用只需要包含三个层就可以了,数据(实体)层,业务逻辑层,表现层。太复杂的设计容易降低开发效率,提高维护成本,在出现性能问题或者突发事件的时候也不容易找到原因。 另外一个问题是开源软件的后期维护和继续开发可能会存在问题,这一点不是绝对的,取决于开源软件的架构是否清晰合理,扩展性好,如果是较小的改动可能一般不会存在什么问题,例如添加一项用户属性或者文章属性,但有些需求可能就不是很容易实现了。例如网站发展到一定阶段后可能会考虑扩展产品线,原来只提供一个论坛加上cms,现在要再加上商城,那用户系统就会有问题,如何解决这个问题已经不仅仅是改一下论坛或者cms就可以解决了,这个时候我们需要上升到更高的层次来考虑问题,是否需要建立针对整个网站的用户认证系统,实现单点登录,用户可以在产品间无缝切换而且保持登录状态。由于网站初始的用户数据可能大部分都存放在论坛里,这个时候我们需要把用户数据独立出来就会碰到麻烦,如何既能把用户数据独立出来又不影响论坛原有系统的继续运行会是件很头痛的事情。经过一段时间的运行,除非是特别好的设计以及比较好的维护,一般都会在论坛里存在各种各样乱七八糟的对用户信息的调用,而且是直接针对数据库的,这样如果要将用户数据移走的话要修改代码的工作量将不容忽视,而另外一个解决办法是复制一份用户数据出来,以新的用户数据库为主,论坛里的用户数据通过同步或异步的机制实现同步。最好的解决办法就是在选型时选一个数据层封装的比较好的,sql代码不要到处飞的软件,然后在维护的时候保持系统原有的优良风格,把所有涉及到数据库的操作都放到数据层或者实体层里,这样无论对数据进行什么扩展,代码修改起来都比较方便,基本不会对上层的代码产生影响。 网站访问速度问题对初创网站来说一般考虑的比较少,买个空间或者托管服务器,搭建好应用后基本上就开始运转了,只有到真正面临极大的速度访问瓶颈后才会真正对这个问题产生重视。实际上在从网站的开始阶段开始,速度问题就会一直存在,并且会随着网站的发展也不断演进。一个网站最基本的要求,就是有比较快的访问速度,没有速度,再好的内容或服务也出不来。所以,访问速度在网站初创的时候就需要考虑,无论是采用开源软件还是自己开发都需要注意,数据层尽量能够正确,高效的使用SQL。SQL包含的语法比较复杂,实现同样一个效果如果考虑到应用层的的不同实现方法,可能有好几种方法,但里面只有一种是最高效的,而通常情况下,高效的SQL一般是那个最简单的SQL。在初期这个问题可能不是特别明显,当访问量大起来以后,这个可能成为最主要的性能瓶颈,各种杂乱无章的SQL会让人看的疯掉。当然前期没注意的话后期也有解决办法,只不过可能不会解决的特别彻底,但还是要吧非常有效的提升性能。看MySQL的SlowQuery Log是一个最为简便的方法,把执行时间超过1秒的查询记录下来,然后分析,把该加的索引加上,该简单的SQL简化。另外也可以通过Showprocesslist查看当前数据库服务器的死锁进程,从而锁定导致问题的SQL语句。另外在数据库配置文件上可以做一些优化,也可以很好的提升性能,这些文章在网站也比较多,这里就不展开。 这些工作都做了以后,下面数据库如果再出现性能问题就需要考虑多台服务器了,一台服务器已经解决不了问题了,我以前的文章中也提到过,这里也不再展开。 其它解决速度问题的办法就不仅仅是在应用里面就可以实现的了,需要从更高的高度去设计系统,考虑到服务器,网络的架构,以及各种系统级应用软件的配合,这里也不再展开。 良好设计并实现的应用+中间件+良好的分布式设计的数据库+良好的系统配置+良好的服务器/网络结构,就可以支撑起一个较大规模的网站了,加上前面的几篇文章,一个小网站发展到大网站的过程基本上就齐了。这个过程会是一个充满艰辛和乐趣的过程,也是一个可以逐渐过渡的过程,主动出击,提前考虑,减少救火可以让这个过程轻松一些。

CMS系统的演进