RabbitMQ采用AMQP(Advanced Message Queuing Protocol高级消息队列协议)。
RabbitMQ以broker为中心,有消息的确认机制(客户端消费消息时),broker由Exchange,Binding,queue组成:
Read More

RabbitMQ采用AMQP(Advanced Message Queuing Protocol高级消息队列协议)。
RabbitMQ以broker为中心,有消息的确认机制(客户端消费消息时),broker由Exchange,Binding,queue组成:
Read More
前端用户查询数据时:
先去缓存或nosql(redis mongodb等)里面查。如果能找到,就直接把数据返回给用户;
如果缓存里面也没有(缓存没命中),才去数据库中查找。
如果有攻击者经常查询一些不会存在的数据,比如查询商品id= -1,那么缓存里面不可能会有商品id=-1
面对一大波访问量出乎意料地涌入,超出了系统正常负载范围,可以临时采用服务降级来保证基础服务的运行。
降级的最终目的是保证核心服务的高可用。过程就是丢卒保帅,有些服务是无法降级的,比如支付。
因为swoft的consul中的agent有时并不能获取到所有注册的consul服务,有的服务容器停止了consul也没有移除,
因此生产环境可以使用health健康检测接口来获取当前正常的服务。
当我们的业务需求更高并发处理要求的时候,可以考虑微服务架构,
微服务可以基于不同业务模块拆分,比如商品服务、订单服务、会员服务,
不同的服务有可能部署在不同的机器上,分布式部署提供高并发、高可用的优势,
同时维护成本、容错、网络延迟、分布式事务等都是一个很大的挑战,这就需要根
当学习了 Consul理解与使用(二) - 商品服务注册与注销 之后,
如果需要多个服务架构的时候,怎么实现各服务的动态自动注册?
以下通过sh脚本生成.env文件配置的方式来演示过程:
理解swoft框架的服务注册与发现
微服务治理过程中,经常会涉及注册启动的服务到第三方集群,比如 consul / etcd 等等,
本章以 Swoft 框架中使用 swoft-consul 组件,实现服务注册与发现为例。
在官方的手册中有描
Consul 是一个分布式的解决方案,可以部署多个 Consul 实例,确保数据中心的持续稳定,
在 Consul 集群中,内部采用投票的方式选举出 leader,只有选举出 leader 后,集群才开始工作;
当一个服务注册到 Consul 后,集群将该服务进行同步,确保 Con
ES是基于Lucene的搜索服务器。它提供了一个分布式多用户的全文搜索引擎,基于RESTful web接口。ES是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎;
MHA是mysql高可用解决方案之一。
1.当mysql主库发生故障,MHA提升从库为主库,确保主库高可用。
2.MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。