微服务的出现
“微服务“这一概念出现于2012年,是因软件作者Martin Fowler而流行。
微服务将单一应用程序分解为多个业务服务。它的出现带来了下列变化
|
影响
|
适用于 如果是大型项目,那么微服务是很适合的。比如项目中具备了完整的企业全链式系统,一个庞大的组织。大型项目具备的特点有系统架构复杂、业务模块多、牵连范围广。 如果是小型项目,一个简单的商城系统或小程序,那么没必要使用微服务拆分。 |
解决微服务带来的影响,给您提供以下建议
|
微服务网关 常规情况下PC端UI页面连接的是API程序,加入网关之后,UI页面先连接的是网关,一个网关可能只有一个域名,通过网关内部配置连接对应的服务。 比如:访问www.baidu.com?xxx=xxx,会进入资源网关,网关统一域名就是www.baidu.com,网关会根据url请求参数进行解析,然后内部调用响应的服务或者api,网关的本身也可以是一个APi或者服务。但网关实际上就是一个配置转发。 这样的好处是,客户端ui无法知道真正连接的是哪个服务处理的。并且在流量大的时候,网关也可以根据流量在不同服务之间进行切换。对服务与客户端的连接进行控制。 |
注册中心 注册中心像是应用的认证,不同的服务只有在一个注册服务上注册了的,才能进行调用。注册中心就是服务之间的通讯录 |
配置中心 就是服务或网站web.config的配置文件,只不过它是把相同的配置放在一个位置,或者是把每个服务配置都放在一个位置。配置中心负责把配置同步到对应的应用上面。 一个完整的微服务实际上还需要一个方便管理的发布系统,通过git拉取、项目编译、生成docker发布包,同步到对应的linux服务器上。 还需要一个监控系统比如Cat,可以监控每个服务之间的心跳,也就是服务与服务之间是否连接成功的一个状态。监控系统可以随时看到sql延迟、资源死锁、服务无法连接、IO瓶颈、网络中断、序列化异常、数据并发、雪崩、程序异常、事务已牺牲到另一资源上等状态和http上下文日志情况。不仅如此还要能看到某一时刻的数据吞吐量,服务消费状态等。 |