2 RabbitMQ-HelloWorld
参考文档
GetStarted Hello World In Java
快速入门RabbitMQ 和一般的消息传递使用术语
生产者(发送消息): Producing means nothing more than sending. A program that sends messages is a producer
队列(消息缓冲区): A queue is the name for the post box in RabbitMQ. Although messages flow through RabbitMQ and your applications, they can only be stored inside a queue. A queue is only bound by the host’s memory & disk limits, it’s essentially a large message buffer. Many producers can send messages that go to one queue, and many cons ...
企业开发进阶-1-RabbitMQ
RabbitMQ TutorialsThese tutorials cover the basics of creating messaging applications using RabbitMQ.
You need to have the RabbitMQ server installed to go through the tutorials, please see the installation guide or use the Docker image.
Executable versions of these tutorials are open source, as is this website.
These tutorials focus on just one (the original) protocol supported by RabbitMQ. Examples for RabbitMQ streams on the RabbitMQ blog.
Tutorials
1 RabbitMQ-QuickStart
2 RabbitMQ-HelloWorl ...
设计模式-21-策略模式
策略模式
在策略模式中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
在策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改客户端代码。
在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。
意图:
定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。
主要解决:
在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。
何时使用:
一个系统有许多许多类,而区分它们的只是他们直接的行为。
如何解决:
将这些算法封装成一个一个的类,任意地替换。
关键代码:
实现同一个接口。
优点:
算法可以自由切换
避免使用多重条件判断
扩展性良好。
缺点:
策略类会增多
所有策略类都需要对外暴露。
使用场景:
如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为
一个系统需 ...
企业开发进阶-2-Ngnix
NginxNginx 概述Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。
正向代理在客户端配置代理服务器,通过代理服务器进行互联网访问
反向代理 客户端不需要任何配置就可以访问,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP 地址。
负载均衡增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器
动静分离为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
Nginx常用命令和配置文件常用命令
命令
说明
cd /usr/local/nginx/sbin
在Linux环境下进入nginx目录
./nginx -v
查看nginx版本号
./nginx
启动ngin ...
设计模式-20-状态模式
状态模式
在状态模式中,类的行为是基于它的状态改变的,属于行为型模式。
在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。
意图:
允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。
主要解决:
对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。
何时使用:
代码中包含大量与对象状态有关的条件语句。
如何解决:
将各种具体的状态类抽象出来。
关键代码:
通常命令模式的接口中只有一个方法。而状态模式的接口中有一个或者多个方法。
而且,状态模式的实现类的方法,一般返回值,或者是改变实例变量的值。
状态模式一般和对象的状态有关。实现类的方法有不同的功能,覆盖接口中的方法。
状态模式和命令模式一样,也可以用于消除 if…else 等条件选择语句。
优点:
封装了转换规则
枚举可能的状态,在枚举状态之前需要确定状态种类
将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为
允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句 ...
设计模式-19-解释器模式
解释器模式
解释器模式提供了评估语言的语法或表达式的方式
它属于行为型模式,实现了一个表达式接口,该接口解释一个特定的上下文。
这种模式被用在 SQL 解析、符号处理引擎等。
意图:
给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。
主要解决:
对于一些固定文法构建一个解释句子的解释器。
何时使用:
如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。
如何解决:
构建语法树,定义终结符与非终结符。
关键代码:
构建环境类,包含解释器之外的一些全局信息,一般是 HashMap。
应用实例:
编译器、运算表达式计算。
优点:
可扩展性比较好,灵活
增加了新的解释表达式的方式
易于实现简单文法。
缺点:
可利用场景比较少
对于复杂的文法比较难维护
解释器模式会引起类膨胀
解释器模式采用递归调用方法。
使用场景:
可以将一个需要解释执行的语言中的句子表示为一个抽象语法树。
一些重复出现的问题可以用一种简单的语言来进行表 ...








