上文我们了解了为什么微服务架构思想会出现,以及阐述了关于微服务的优缺点。
那本文我们继续来了解关于微服务的东西。
首先,我们需要知道的是微服务架构和SOA有什么区别呢?
前文我们提及SOA是通过将整体服务分成子系统,在开发过程中还是避免不了项目的臃肿导致的种种弊端,而微服务是通过将一个系统分成多个服务,每个服务都是相互独立运行的,集成方式简单,并且服务都能够独立部署,而SOA却不能达到这样的效果,SOA根本上还是集中式的服务架构,各个子系统中依赖紧密,无法独立部署运行。
以上简单对二者的区别做了说明,如果有兴趣的小伙伴们,可以通过相关的资料对二者进行更深入的认识。
那如何搭建微服务呢???
首先我们要明确一件事情,不是所有的项目都需要并一定要使用微服务架构思想。要根据需求而定,相对而言微服务架构适合未来具有一定的拓展复杂度,且有很大用户增量预期的应用,简而言之就是1业务功能复杂2用户量大3长期跟进的项目。对于系统拆分成微服务,可以考虑的要点就是:通过业务功能分解并定义与业务功能相对应的服务。
其次,要学习微服务,我们必须知道微服务架构都有哪些组件:服务注册中心,服务注册,服务发现,负载均衡,服务容错,服务网关,分布式配置中心,健康检查,日志处理等。
再者,每一个新技术都有其流程:当微服务启动时,会将其信息注册到服务注册中心,在客户端发送请求时,请求首先会被API网关拦截,API网关会读取请求数据,并从注册中心获取对应的服务信息,然后API网关会根据服务信息调用所需的微服务。
最后,对微服务技术选型做笔记:
1.微服务实例的开发:spring-boot
2.服务的注册与发现:spring-cloud-eureka或者apache的zookeeper或者Consul,Etcd或者Dubbo等
3.负载均衡:spring-cloud-ribbon 或者Dubbo
4.服务容错:Hystrix 在spring-cloud中包含spring-cloud-hystrix
5.API网关:Spring-cloud-zuul或者spring reactor,netty或nodejs等
6.分布式配置中心:spring-cloud-config
7.调试:swagger
8.部署:docker进行打包和部署微服务
9.持续集成:jenkins,并使用docker进行容器封装化
----本文观《微服务架构基础》有感,如有侵权,请及时指出。谢谢。
下一篇:我们走入spring-boot的世界看一看微服务实例的开发技术~