SOA与微服务的区别
SOA
SOA一般都是跟ESB结合在一起,会由如下几个平台组成
SmartESB运行平台
SmartMonitor监控平台
SmartGovernance服务治理平台
SmartIDE集成开发平台
微服务
其强调业务系统彻底的组件化和服务化。将原有的业务系统分割成若干个独立应用,并且单独开发、部署、使用ServiceAPI公开自己的服务
难点:
如何把握服务分割的粒度。服务粒度越粗,就越难以符合规定原则。服务粒度越细,就越能够灵活地降低变化和负载所带来的影响。
优点:
当新增或者修改功能的时候,影响涉及面会变小,只要修改具体某一个服务就可以了
每个组件都是一个单独的服务与进程,对于并发,有很好的抗压性
容易进行功能的拓展
解耦
缺点:
需要部署多台服务器,提升了运维工作时间
客户端调用请求数增多
两者的关系
微服务中不存在ESB企业服务总线,由于微服务尽量都是通过HTTP API的方式暴露出去的,因此这种服务管理平台不需要像传统企业内部的ESB服务总线这么重。但是最基本的服务注册,服务代理,服务发布,服务简单的路由,安全访问和授权,服务调用消息和日志记录这些功能还是需要具备而SOA则存在。即使有了微服务还是需要一个SOA服务管理平台来完成
关于Service API
微服务支持使用RPC、AMQP等协议公开服务,但是不是很推荐,其对浏览器和防火墙不是很友好,并且最好是内部使用。应用应该在防火墙外采用类似HTTP或者WEBSocket协议
关于API Gateway
痛点:
解决客户端页面请求数增多的问题
解决如果服务拓展或者合并痛苦问题
功能点:
API Gateway负责请求转发、合成和协议转换。所有来自客户端的请求都要先经过API Gateway,然后路由这些请求到对应的微服务。API Gateway将经常通过调用多个微服务来处理一个请求以及聚合多个服务的结果。它可以在web协议与内部使用的非Web友好型协议间进行转换,如 HTTP协议、WebSocket协议
要求:
支持多种格式的请求协议
支持同步、非阻塞I/O
微服务结构图:
参考文章:
更多技术相关的和话题请关注公众微信号【APPZone】
私下交流请关注的新浪微博@迹_Jason
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。