发表于: 2017-09-06 21:47:17

1 878


今天完成的事情:讲了下小课堂,和成都那边确认了没有前端,现在照着接口文档改表。

1:什么是微服务?

       微服务( Microservice )是由马丁福勒(Martin Fowler)于2014年提出的一种架构风格,但本质上来说,微服务并非什么新的概念。

       实际上,很多 SOA 实施成熟度比较好的企业,已经在使用和实施微服务了。只不过,它们只是在闷声发大财,并不介意是否有一个比较时堆的名词来明确表述 SOA 的这个发展演化趋势罢了。

       微服务其实就是服务化思路的一种最佳实践方向,遵循 SOA 的思路,各个企业在服务化治理的道路上走的时间长了,踩的坑多了,整个软件交付链路上各个环节的基础设施逐渐成熟了,微服务自然而然就诞生了。

       当然.之所以叫微服务,是与之前的服务化思路和实践相比较而来的。早些年的服务实现和实施思路是将很多功能从开发到交付都打包成一个很大的服务单元(一般称为 Monolith ) ,而微服务实现和实施思路则更强调功能趋向单一,服务单元小型化和微型化。如果用“茶壶煮饺子”,来打比方的话,原来我们是在一个茶壶里煮很多个饺子,现在(微服务化之后)则基本上是在一个茶壶煮一个饺子,而这些饺子就是服务的功能.茶壶则是将这些服务功能打包交付的服务单元,如图所示。

                                                   


2.微服务因何而生?

       随着软件系统的复杂度持续报升,软件交付的效率要求更高,投入的人力以及各项资源越来越多,基于 Monolith 的服务化思路就开始“捉像见肘”。在开发阶段,如果我们遵循 Monolith 的服务化理念,通常会将所有功能的实现都统一归到一个开发项目下,但随着功能的膨胀,这些功能一定会分发给不同的研发人员进行开发,造成的后果就是,大家在提交代码的时候频繁冲突并需要解决这些冲突.单一的开发项目成为了开发期间所有人的工作瓶颈。为了减轻这种苦恼,我们自然会将项目按照要开发的功能拆分为不同的项目.从而负责不同功能的研发人员就可以在自己的代码项目上进行开发,从而解决了大家无法在开发阶段并行开发的苦恼。


3.微服务的优点?

       微服务架构模式有很多好处。首先,通过分解巨大单体式应用为多个服务方法解决了复杂性问题。在功能不变的情况下,应用被分解为多个可管理的分支或服务。每个服务都有一个用RPC-或者消息驱动API定义清楚的边界。微服务架构模式给采用单体式编码方式很难实现的功能提供了模块化的解决方案,由此,单个服务很容易开发、理解和维护。

        第二,这种架构使得每个服务都可以有专门开发团队来开发。开发者可以自由选择开发技术,提供API服务。

当然,许多公司试图避免混乱,只提供某些技术选择。然后,这种自由意味着开发者不需要被迫使用某项目开始时采用的过时技术,他们可以选择现在的技术。甚至于,因为服务都是相对简单,即使用现在技术重写以前代码也不是很困难的事情。

       第三,微服务架构模式是每个微服务独立的部署。开发者不再需要协调其它服务部署对本服务的影响。这种改变可以加快部署速度。UI团队可以采用AB测试,快速的部署变化。微服务架构模式使得持续化部署成为可能。

       最后,微服务架构模式使得每个服务独立扩展。你可以根据每个服务的规模来部署满足需求的规模。甚至于,你可以使用更适合于服务资源需求的硬件。比如,你可以在EC2 Compute Optimized instances上部署CPU敏感的服务,而在EC2 memory-optimized instances上部署内存数据库。


4.Springboot四大利器之Actuator

       Spring Boot有四大神器,分别是auto-configuration、starters、cli、actuator。actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。

如何使用actutor

添加依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

主要暴露的方法

简单使用

明天计划的事情:改完表准备方案评审

遇到的问题:一个一个对接口有点麻烦

收获:理解微服务。


返回列表 返回列表
评论

    分享到