中间件

从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后来逐步应用于生产环境,并总结了少许使用经验。最开始使用Consul的人不多,为了方便交流创建了一个QQ群(群号在最后),这两年微服务越来越火,使用Consul的人也越来越多,目前群里已有400多人,经常有人问一些问题,比如: 服务注册到节点后,其他节点为什么没有同步? Client是干什么的?(Client有什么作用?) 能不能直接注册到Server?(是否只有Server节点就够了?) 服务信息是保存在哪里的? 如果节点挂了健康检查能不能转移到别的节点? 有些人可能对服务注册和发现还没有概念,有些人可能使用过其它服务发现的工具,比如zookeeper,etcd,会有一些先入为主的经验。这篇文章将结合Consul的官方文档和自己的实际经验,谈一下Consul做服务发现的方式,文中尽量不依赖具体的框架和开发语言,...

有很多网友留言:公司要做消息中间件选型,该如何选?你觉得哪个比较好?消息选型的确是一个大论题,实则说来话长的事情又如何长话短说。对此笔者专门撰稿一篇内功心法:如何看待消息中间件的选型,不过这篇只表其意未表其行,为了弥补这种缺陷,笔者最近特意重新撰稿一篇,以供参考。温馨提示:本文一万多字,建议先马(关注)后看。 一、前言消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。 目前开源的消息中间件可谓是琳琅满目,能让大家耳熟能详的就有很多,比如ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ等。不管选择其...

前言近来有很多网友留言:公司要做消息中间件选型,该如何选?你哪个比较好?我的回答一般是:It’s a nice topic~如果随意回答一个的话显得很不严谨也不太负责任,如果严谨的回答的话一天就不用干活了。消息选型的确是一个大论题,实则说来话长的事情又如何长话短说。被问的越多越觉得需要整理一篇自己的观点出来,主要的目的将自己的经验分享出来,可以让别人少踩点误区,次要的目的是下次再被问到了可以直接甩链接而不用再打太极(如果你后者觉得这是主要目的话,那么我只能回答:橘生淮南则为橘,嘿嘿~~)。不过本文的主要内容为观点表达(别名:“吹水”),不涉及具体的技术细节。 历程目前大多数所用的、所讨论的(Fashion的)消息中间件大致为Kafka、RabbitMQ和RocketMQ这三种,本文尽量站在一个中立的视角上去看待这个问题。当然如果你说市面上的MQ多了去了,比如还有ActiveMQ、Ze...