前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring cloud微服务架构新年第一讲(微服务概述)

spring cloud微服务架构新年第一讲(微服务概述)

作者头像
用户1257393
发布2018-01-30 12:15:21
7460
发布2018-01-30 12:15:21
举报
文章被收录于专栏:精讲JAVA

什么是微服务

微服务架构是目前开发中的技术热点,出镜率非常高,但是很少人能够完整的理解微服务的定义,以至于现在很多人都在说书技术热点炒作,今天,我就带你们进入微服务的世界,告诉你们,什么是真正的微服务,微服务有哪些特点,为什么这么多人在讲微服务。

01

单体应用的缺陷

说到单体应用,大家比较熟悉,毕竟写个helloworld,放到tomcat上,跑起来就是一个简单的单体应用程序,更严格的意义来说呢,单体服务就是一个归档包包含所有功能的应用程序,这就叫做单体服务,那么,单体服务有什么缺陷呢?

1、单体服务复杂性太高,一个单体服务要去完成那么多的功能,肯定是特别复杂的,整体来说,代码间的依赖关系混乱,一个单体应用多人开发,代码质量肯定参差不齐的

2、技术维护代价高,一个单体应用前期肯定是简单的,但是随着功能不断增加,应用肯定越来越大,代码越来越多,维护起来肯定很费劲。

3、部署频率低,代码量大了,部署起来肯定很慢,而且有一点问题,就会导致重新部署,全量部署肯定风险比较高,所以,为了节省时间,会集中一部分更新在部署,导致部署频率变低

4、扩展能力弱,这个就不用说了,作为一个整体,牵一发而动全身,无法根据业务进行伸缩,肯定影响整个系统的扩展性

5、新技术难以应用,因为只有一个服务,所以想添加或更改一个大的技术变动时,会变得特别麻烦。

02

微服务横空出世

说了那么多单体应用的不好,我们来说说微服务框架,上面单体服务的缺陷,可以说,微服务架构很好的避免了,但是同时也产生新的问题,没有最好的技术,只有最合适的技术。

其实到目前为止,微服务没有人能给出一个合理的定义,大家对微服务的理解都是不同的,下面我说一下我对微服务的理解,

微服务就是将一个单体应用拆分成多个服务,根据技术分也好,根据业务分也好,总之不能再跟以前一样,把所有的技术跟业务放到一起了,每个服务都运行在自己的容器或者进程中,他们之间可以通过轻量级通信机制进行通信(通常用http资源进行),这些服务围绕业务全自动独立部署,然后将这些小应用用一个集中式的管理,服务可用不同的语言开发,使用不同的数据库,上面我已经把微服务的有点说的差不多了。优点如下:

1、独立运行

2、专注一个功能点

3、不同的技术相互搭配

4、全自动部署,集中式管理

当然缺点肯定是有的,比如:

1、分布式造成系统复杂性上升

2、接口调用成本上升,一部分资源用于通信

3、重复率变大,很多服务用一个功能,可能每一个微服务系统中都有该功能的代码。

03

微服务的技术选择

技术选型是很重要的,选对技术,就可以避免很多麻烦,现在有很多微服务架构可供选择,我们就聊一种比较火的spring cloud。

选择spring cloud的理由:

1、具有开箱即用的特点。

2、文档丰富

3、spring cloud 为微服务架构提供了完整的解决方案

04

结束语

微服务可以说代表了一定的技术趋势,有想学习的朋友可以加入微信群,公众号菜单栏有版主微信。添加拉你进群。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 精讲JAVA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档