9种高性能可用高并发的技术架构
1、分层分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统。在网站的分层架构中,常见的为3层,即应用层、服务层、数据层。应用层具体负责业务和视图的展示;服务层为应用层提供服务支持;数据库提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等。分层架构是逻辑上的,在物理部署上,三层架构可以部署在同一个物理机器上,但是随着网站业务的发展,必然需要对已经分层的模块分离部署,即三层结构分

基于Spring Boot 实现定时任务
很多时候,我们有这么一个需求,需要在每天的某个固定时间或者每隔一段时间让应用去执行某一个任务。为了实现这个需求,通常我们会通过多线程来实现这个功能,但是这样我们需要自己做一些比较麻烦的工作。接下来,让我们看看如何使用Spring scheduling task简化定时任务功能的实现。添加maven依赖为了方便展示,我们使用Spring Boot来简化我们的Spring配置。因为我们使用的是Spring自带的Scheduling,因此我们只需要引入最进本的spring-boot-starter即可

MySQL数据清理的需求分析和改进
昨天帮一个朋友看了MySQL数据清理的问题,感觉比较有意思,具体的实施这位朋友还在做,已经差不多了,我就发出来大家一起参考借鉴下。为了保证信息的敏感,里面的问题描述可能和真实情况不符,但是问题的处理方式是真实的。首先这位朋友在昨天下午反馈说他有一个表大小是近600G,现在需要清理数据,只保留近几个月的数据。按照这个量级,我发现这个问题应该不是很好解决,得非常谨慎才对。如果是通用的思路和方法,我建议是使用冷热数据分离的方式。大体有下面的几类玩法:exchange partition,这是亮点的特性

每秒1500万并发计算背后高性能、高可用实时搜索系统的架构演变
去哪儿网的定位是做全球最大的中文在线旅行网站。用户第一是我们的口号,也是我们的压力所在。本文从五个方面讲解去哪儿网高性能高可用机票实时搜索系统的演进之路:系统诉求。面临问题。设计思路。搜索框架。报价引擎。系统诉求去哪儿网的定位是做全球最大的中文在线旅行网站,对于机票业务来说,就是要把以下这些方面都做到最好:我们希望用户在我们网站搜索出来的价格是全网最低的。希望世界有的任何航线,都能在我们网站上搜出报价来。希望报价的更新是最实时的,用户根本感知不到价格变化。希望产品最大限度满足用户出行需求。希望用

大型网站架构演变和知识体系
之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念,文中的不对之处也请各位多给点建议,让本文真正起到抛砖引玉的效果。架构演变第一

解析Java平台的构架与版本
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。平台Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接

linux下用telnet检测远程端口是否打开
 方法一. 常用telnet 118.10.6.128 88方式测试远程主机端口是否打开。 方法二. nmap ip -p port 测试端口 nmap ip 显示全部打开的端口根据显示close/open确定端口是否打开。 方法三. nc -v host port端口未打开返回状态为非0一:telnet此法常被用来检测是个远端端口是否通畅。123456789101112131415161718测试域名:# telnet baidu.c

软件架构师是什么?他们应该写代码吗?
 这几年来,我发现自己常常做着“软件架构师”的工作,这让我意识到,公司很少了解软件团队的真正需求,反而倾向于依赖所谓“软件架构师”来解决问题。随之而来的,就是因交付前产品不符合商业预期、而导致的产品架构大规模修改,但这甚至不会影响产品交付日期。毕竟,软件架构师的责任正如其名:建立宏大而优美的软件架构。软件架构师并不需要对架构实现过程负责,他们也并不想参与代码编写工作。我记得有一回,我在团队中作为开发者,着手实现一个大型、复杂的架构。我是在开发已开始后加入团队的,并没有参与架构设计,所以

优秀程序员眼中的整洁代码
 有多少程序员,就有多少定义。所以我只询问了一些非常知名且经验丰富的程序员。“我喜欢优雅和高效的代码。代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱来。”有多少程序员,就有多少定义。所以我只询问了一些非常知名且经验丰富的程序员。优秀程序员眼中的整洁代码Bjarne Stroustrup,C++语言发明者,C++ Programming Language(中译版《C++程序设计