摘要:一:建模 --->建模,是指通过对【客观事物】建立一种抽象的方法用以表征事物并获得对事物本身的理解。同时把这种理解概念化,将这些逻辑概念组织起来,构成一种对所观察对象的内部结构和工作原理的便于理解的表达。 --->建模怎么建?首先要决定的是抽象角度,即建立这个模型的目的是什么?一旦抽象角度确定,剩下...
阅读全文
摘要:第一条:去除在谓词列上编写的任何标量函数 --->在select 显示列上使用标量函数是可以的。但在where语句后的过滤条件部分对列使用函数,需要考虑。因为执行sql的引擎会因为标量函数,放弃使用该列的索引。造成扫描全表,性能下降。 --->DB V9可以使用表达式索引,但建议不要写这样的sql,...
阅读全文
摘要:【线程的概念】Thread--->线程类一:程序,进程,线程的基本区别 进程:作为资源的分配单位。 线程:调度和执行的单位。 (1)程序:指令集。【静态的】 (2)进程:操作系统cpu调度程序。【动态】在内存中分配独立的内存空间 (3)线程:一个进程中的一个执行路径二:【进程】(1)进程是程序的一次...
阅读全文
摘要:服务降级,当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。服务降级方式:服务接口拒绝服务:无用户特定信息,页面能访问,但是添加删除提示服务器繁忙。页面内容也可在Varnish或CDN内获取。页面拒绝服务:页面提示由于服务繁忙此...
阅读全文
摘要:接口隔离原则一:什么是接口?● 实例接口(Object Interface) ---->Person zhangSan=new Person()产生了一个实例,这个实例要遵从的标准就是Person这个类,Person类就是zhangSan的接口● 类接口(Class Interface) ---->...
阅读全文
摘要:依赖倒置原则依赖倒置原则的原始定义是:● 高层模块不应该依赖低层模块,两者都应该依赖其抽象;● 抽象不应该依赖细节;● 细节应该依赖抽象。那什么是抽象?什么又是细节呢?---->在Java语言中,抽象就是指接口或抽象类,两者都是不能直接被实例化的;细节就是实现类,实现接口或继承抽象类而产生的类就是细...
阅读全文
摘要:面向对象 ---->注重的是拆分,组装。 ---->封装,继承,多态,复用(只是现象) ---->面向对象变成的目标从来就不是复用。相反,对我来说,对象提供了一种处理复杂性问题的方式。这个问题可以追溯到亚里士多德,你把这个世界视为过程还是对象?在面向对象兴起运动之前。编程以过程为中心。例如结构化的设...
阅读全文
摘要:对于共享资源,有一个很著名的设计模式:资源池(resource pool)。该模式正是为解决资源频繁分配、释放所造成的问题。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量 的连接,当需要建立数据库连接时,只需要从缓冲池中取出一个了,使用完毕后再放回去。我们可以...
阅读全文
摘要:在项目中采用一个枚举的集合,本人采用Collections中的空集合Collections.emptyList()在添加时发生异常:常见集合如下:private List vacationcategorys = Collections.emptyList();报错误如下:-- Encapsulate...
阅读全文
摘要:远程过程调用(RPC)(使用Java客户端)在指南的第二部分,我们学习了如何使用工作队列将耗时的任务分布到多个工作者中。但是假如我们需要调用远端计算机的函数,等待结果呢?好吧,这又是另一个故事了。这模式通常被称为远程过程调用或RPC。在这部分,我们将会使用RabbitMQ构建一个RPC系统:一个客户...
阅读全文
摘要:主题(topic)(使用Java客户端)在先前的指南中我们改进了我们的日志系统。取代使用fanout类型的交易所,那个仅仅有能力实现哑的广播,我们使用一个direct类型的交易所,获得一个可以有选择性的接收日志。虽然使用direct交易所类型已经改善了我们的系统,但它依旧有限制-它不能根据多个条件进...
阅读全文
摘要:发布和订阅(使用java 客户端)在先前的指南中,我们创建了一个工作队列。这工作队列后面的假想是每一个任务都被准确的传递给工作者。在这部分我们将会做一些完全不同的事情–我们将一个消息传递给多个消费者。这部分被认知为“发布和订阅”。为了说明这个部分,我们会建立一个简单德日志系统,它是由两个程序组成–第...
阅读全文
摘要:路由(使用Java客户端)在先前的指南中,我们建立了一个简单的日志系统。我们可以将我们的日志信息广播到多个接收者。 在这部分的指南中,我们将要往其中添加一个功能-让仅仅订阅一个消息的子集成为可能。例如,我们可以直接将关键的错误信息指向到日志文件(保存在爱硬盘空间),同时依旧能打印所有日志信息到平台上...
阅读全文
摘要:工作队列(使用Java客户端) 在这第一指南部分,我们写了通过同一命名的队列发送和接受消息。在这一部分,我们将会创建一个工作队列,在多个工作者之间使用分布式时间任务。 工作队列(亦称:任务队列)背后主要的思想是避免立即处理一个资源密集型任务并且不得不一直等待完成。相反我们可以计划着让任务后续执行。我...
阅读全文
摘要:目录[-]"Hello World"(使用java客户端)发送接收把所有放在一起前面声明本文都是RabbitMQ的官方指南翻译过来的,由于本人水平有限难免有翻译不当的地方,如发现不对的地方,请联系下我,好及时改正。好了,正文开始:RabbitMQ 是一个消息代理。这主要的原理十分简单,就是通过接受和...
阅读全文
摘要:谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之...
阅读全文
摘要:1.对象锁钥匙只能有一把才能互斥,才能保证共享变量的唯一性(一个对象一个wait set室) 2.在同步静态方法上的锁,和 实例方法上的锁,默认不是同样的,如果同步需要制定两把锁一样(同步静态方法的锁为当前类的对象,该实例的锁)。 3.关于同一个类的方法上的锁,来自于调用该方法的对象,如果调用该方...
阅读全文