随风
随着docker等容器技术的流行以及云计算的成熟。微服务作为一种全新的设计思维悄然问世。微服务是soa架构的变种。微服务是一种云原生的架构,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。微服务的本质是分布式的,不同于传统的大型集中形式架构,微服务每一部分都可独立部署,耦合程度非常低。微服务的诞生标志着程序开发进入了真正的云时代。
讲了一大通概念我自己都很烦,我确实不热衷于炒概念,不过概念有时候也是必须的。它可以清晰地描述事物的本质。微服务,顾名思义在于微和服务。微相对于宏,就是小型的集合体。服务就不用多说了。微服务确实带来了很多好处,例如管理上的以及维护等。但也使得程序整体变得更加复杂了,所以只有大型的或者是分布式的应用又或者是云原生应用才会感受到微服务带来的好处。如果为了微服务而微服务,就我个人感觉而言,还不如直接不用微服务,因为分布式固有的复杂性并不低,需要处理诸如消息注册发现以及服务调用问题,还有部署大量的微服务本身就是一个复杂的学问。
我认识微服务时间不长,但微服务的思维在创万联由来已久。但苦于没有找到合适的工具,直到我认识了Spring Cloud,这一切才发生了改变。Spring Cloud确实给我带来了极大的冲击,一瞬间我感到只有一句话—–太爽了。感谢spring全家桶,你的存在让我这种蹩脚程序员不至于碌碌无为,也可以开发出好玩的应用。
Spring Cloud并不是彻底地重构出一个全新的架构,其实这也是spring家族历来坚守的信条:不重复制造轮子。在spring诞生的十几年,spring确实做到了。它不但打败了强劲的对手ejb,而且开发出了spring boot使得java开发的复杂性断崖式下降。spring boot核心思维约定大于配置,确实革命性地减轻了配置的烦恼。Spring Cloud正是基于这种思维,用约定大于配置的思想整合了大量地分布式开发组件,给开发者带来了很多的方便。
Spring Cloud 为开发者提供了快速构建分布式系统中一些常用模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线)。分布式系统的协调导致了样板模式,使用 Spring Cloud 开发人员可以快速建立实现这些模式的服务和应用程序。它们将适用于任何分布式环境,包括开发人员自己的笔记本电脑、裸机数据中心和托管平台(如 Cloud Foundry)。
Spring Cloud包含了一系列的工具,Netflix Eureka 就是其中最重要的组件之一,它的功能类似于国内的dubbo。提供服务注册发现以及集群部署等一系列微服务最核心功能。服务发现是基于微服务的架构的关键原则之一。尝试手动配置每个客户端或某种形式的约定可能很难做到,而且很脆弱。Eureka 是 Netflix 服务发现服务器和客户端。服务器可以配置和部署为高可用性,每个服务器将有关注册服务的状态复制到其他服务器。此外还有hystirx熔断器,用于管理崩溃的微服务,防止千里之堤,溃于蚁穴。zuul网关提供了对外服务的路由管理,还有openfeign者提供了服务调用的功能。有了这些组件的加持,开发起来岂能不如虎添翼。
路漫漫其修远兮,吾将上下而求索。知识是无止境的,创万联日后也会秉承开源技术精神,将自己所思所想,技术经验都分享给各位朋友。也许有人会说,你们这样做究竟为了什么,是灌输思想吗?非也。须知创万联开源社区要想发展壮大就有赖于更多的技术爱好分子的加入,我们此举也是渡人渡己,况且我们的认识很多都是不完整和错误的,如果有人指出错误,我们更是受益匪浅。最近鸿蒙的发布,也采取了开源的策略,可以意识到,技术滴水不漏,自家传的时代已经一去不复返。
欢迎关注创万联公众号,这里提供更多通俗技术分享。

本文参考资料:spring官网:https://spring.io/(大陆访问可能速度较为缓慢。)