微服务篇:一、搞懂微服务是什么,初学篇

初入坑两年小白,文章不足知错请各位大神指正。

为什么要用微服务

在微服务兴起之前,我们开发的程序,都是单体应用程序,即,该应用程序内包含了所有需要的服务,各个功能之间具有很强的耦合性,互相依赖,难拆分,难扩展,牵一发而动全身。
单体应用程序也有他的优点:

  1. 容易部署,不存在分布式集群的复杂部署环境,

  2. 容易测试,内部调用,方便测试。

举个🌰:我的毕业设计做了一个博客,是在单体应用程序内
开发的,我把博客系统部署到了一台服务器上供大家访问,发布了一段时间之后,系统的访问量蹭蹭的往上涨,我发现我的服务器的性能和系统的性能已经不够支撑该系统正常运行了,这时,我发现大多的访问,都是访问博文,而用户,权限。。。。。。其他所有模块现有资源都可以负载,此时我就该去考虑升级我的服务器,或者是优化我的代码了。
选择一,升级服务器:
比如:本来,我是300块一年的服务器,但是这访问量一上来,我得把我的服务器升级成1000块的才撑得住,这以后每年1000的银子,完美解决问题。
选择二,优化代码:
比如,现在所有的服务都在一个jar中,我想要优化代码,我就必须得针对我这个jar包去优化,那我用户,权限这些模块呢,我都要修改吗,那万一我心血来潮,要从java语言换成python呢,我难道要整个jar的代码全部重写吗?

穷,只能选择第二种选择,那我就重写代码吧。。。。

但是,请注意,如果我们整体框架是使用微服务搭建的,博文模块是一个微服务,用户,其他模块每个模块都是一个微服务,而我现在发现,我需要优化或者处理的,仅仅是博文模块,那我只需要处理这一个服务就可以解决问题了呀。比如,我再去买一台300块的服务器,把博文微服务单独部署到新买的服务器上,原本的服务器部署其他微服务,这样,服务器压力也都在正常承受范围内啊,万一以后火了,访问量更大了,那我再买一台300的,再部署一个博文微服务上去,两个博文微服务搞个负载均衡,完美(升级一次的钱我可以升级三次,坚决不浪费)。再绕回来说,我就想练习一下python,把博文微服务从java换成python,那可以,一个微服务足够我练习了,我用python重写一个,再挂载到注册中心上,其他都不需要动!简直完美。

鉴于上述,单个应用程序被划分成各种小的、互相连接的微服务,一个微服务完成一个比较单一的功能,相互之间保持独立和解耦合,这就是微服务架构。

微服务的优点

1、技术异构:不同服务内部的开发语言可以不一致,比如服务一用java,服务二用golang。。。终于不用再为了哪种语言是世界上最好的语言打架了。。。
2、可扩展性:庞大的服务群体中,如果出现单一服务性能与出现问题,可以单独扩展升级这一个服务,而不用对所有服务进行升级,简称,对症下药。
3、隔离性:比如,在订单服务中,进销存的业务场景下,必然要调用商品服务,但是在调用时发现商品服务挂了,如果是传统的单体应用程序的话,那必然整个系统都会瘫痪;但是微服务架构不会,商品挂掉了,我还可以查看订单啊,你挂你的,我看我的,互不影响。
4、容易优化:程序员最烦的就是读代码,尤其是读别人的代码。当你接手了一个项目后,看着前人给你留下的500的文件,我就问你头大不头大。微服务架构下,需要修改哪个服务,就去找哪个服务的代码,最起码不用从500个文件里找需要的。。。

微服务的缺点

但是,不幸的是,一般可以想到的问题,前辈大佬都已经解决了。。。站在巨人的肩膀上就是舒服,惊喜加意外。。。

服务注册与发现

微服务之间相互调用完成整体业务功能,如何在众多微服务中找到正确的目标服务地址,这就是”服务发现“。

常用的做法是服务提供方启动的时候把自己的地址上报给”服务注册中心“,这就是”服务注册“。服务调用方”订阅“服务变更”通知“,动态的接收服务注册中心推送的服务地址列表,以后想找哪个服务直接发给他就可以。

服务监控

单体程序的监控运维还好说,大型微服务架构的服务运维是一大挑战。服务运维人员需要实时的掌握服务运行中的各种状态,最好有个控制面板能看到服务的内存使用率、调用次数、健康状况等信息。

这就需要我们有一套完备的服务监控体系,包括拓扑关系、监控(Metrics)、日志监控(Logging)、调用追踪(Trace)、告警通知、健康检查等,防患于未然。

服务容错

任何服务都不能保证100%不出问题,生产环境复杂多变,服务运行过程中不可避免的发生各种故障(宕机、过载等等),工程师能够做的是在故障发生时尽可能降低影响范围、尽快恢复正常服务。

聪明的程序员引入了熔断、隔离、限流和降级、超时机制服务容错机制来保证服务持续可用性。

服务安全

有些服务的敏感数据存在安全问题,”服务安全“就是对敏感服务采用安全鉴权机制,对服务的访问需要进行相应的身份验证和授权,防止数据泄露的风险,安全是一个长久的话题,在微服务中也有很多工作要做。

over,欢迎各位大佬指正,欢迎各位菜鸟共同学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值