一、微服务基础

1、微服务的产生
首先微服务并不是被发明出来的,而是在软件开发的工程实践中总结出的一种趋势或者模式。随着领域驱动设计、持续交付、按需虚拟化、基础设施自动化、小型自治团队、弹性云计算这些实践的流行,微服务也应运而生。很多组织发现细粒度的微服务架构可以帮助他们更快地交付软件,并且有更多机会尝试新技术。微服务在技术决策上给了我们级大的挑自由度,使我们能够更快地响应各种变化。
2、什么是微服务
微服务就是一些协同工作的小而自治的服务。微服务有如下的特点:
(1)专注
我们在写代码的时候,很重要的原则就是高内聚,低耦合。将这个思维应用在服务设计上,就是需要根据业务的边界来确定服务的边界,来确定某个功能代码应该放在哪里。
(2)足够小
这一条特点和上一条特点是密不可分的,微服务如果专注于一件事情,那么它就是足够小的。
(3)自治性
一个微服务就是一个独立的实体。它可以独立的部署,甚至独立的作为一个OS进程存在。
3、微服务的优缺点
(1)技术异构性
在一个由多个服务相互协作的系统中,可以在不同的服务中使用最适合该服务的技术。比如对某些系统使用不同的缓存系统或者NoSQL数据库等。微服务可以帮助我们更快地采用新技术。对于整个系统而言,采用新的语言,框架,数据库是一件风险很大的事,而对微服务系统而言,总会有一些地方能让我们使用新的技术。
(2)弹性
如果系统中一个组件不可用了,对于单服务的系统而言,只能通过将服务部署在不同的系统中来降低功能完全不可用的概率,然而微服务系统本身就能够很好地处理服务不可用和功能降级问题。
(3)扩展性
单服务系统只能作为一个整体进行扩展,而微服务系统可以只对需要扩展的服务进行扩展。
(4)简化部署
单服务系统中,即使只修改了一行代码,也需要重新部署整个应用。这种部署的影响很大,风险很高,于是在实际的生产中,部署的频率就会被降低。而微服务架构中,各个服务的部署是相对独立的,每次可以只更新特定部分的代码。
(5)重构便利性
如果有一段很老的代码,同时它的代码又庞大且丑陋。这些系统却无人敢于重构,根本原因就是它对公司的运营至关重要,而且一旦修改它会牵一发而动全身。使用微服务的团队可以在需要的时候轻易地重写嗠,或者删除不再使用的服务。
4、微服务相关技术应用
(待补充)
5、微服务与SOA的区别
微服务架构的重点就是业务系统需要彻底的组件化和服务化,拆分出来的小应用可以独立开发,设计,运行和运维。这些小应用之间通过服务完成交互和集成。每个小应用从前端web ui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套。每个小应用除了完成自身本身的业务功能外,重点就是还需要消费外部其它应用暴露的服务,同时自身也将自身的能力朝外部发布为服务。如果一句话来谈SOA和微服务的区别,即微服务不再强调传统SOA架构里面比较重的ESB企业服务总线,同时SOA的思想进入到单个业务系统内部实现真正的组件化。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值