微服务架构

单体架构

微服务架构_第1张图片

 

优点:
1:部署简单: 由于是完整的结构体,可以直接部署在一个服务器上即可。
2:技术单一: 项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发。
3:用人成本低: 单个程序员可以完成业务接口到数据库的整个流程。

缺点:
1:系统启动慢, 一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动、重启时间周期过长;
2:系统错误隔离性差、可用性差,任何一个模块的错误均可能造成整个系统的宕机;
3:可伸缩性差:系统的扩容只能只对这个应用进行扩容,无法结合业务模块的特点进行伸缩。
4:线上问题修复周期长:任何一个线上问题修复需要对整个应用系统进行全面升级。
5. 跨语言程度差
6. 不利于安全管理,所有开发人员都拥有全量代码

微服务架构

微服务架构论文:Microservices

译文: https://mp.weixin.qq.com/s?__biz=MjM5MjEwNTEzOQ==&mid=401500724&idx=1&sn=4e42fa2ffcd5732ae044fe6a387a1cc3#rd

微服务架构_第2张图片

 

解读微服务特点:

1:微服务是一种项目架构思想(风格)

2:微服务架构是一系列小服务的组合(组件化与多服务)

3:任何一个微服务,都是一个独立的进程(独立开发、独立维护、独立部署)

4:轻量级通信http协议(跨语言,跨平台)

5:服务粒度(围绕业务功能拆分)

6:去中心化管理(去中心化”地治理技术、去中心化地管理数据)

微服务架构的优势

1.易于开发和维护 一个微服务只关注一个特定的业务功能,所以它的业务清晰、代码量较少。开发和维护单个微服务相对比较简单,整个应用是由若干个微服务构建而成,所以整个应用也会维持在可控状态;

2.单个微服务启动较快 单个微服务代码量较少,所以启动会比较快;

3.局部修改容易部署 单体应用只要有修改,就要重新部署整个应用,微服务解决了这样的问题。一般来说,对某个微服务进行修改,只需要重新部署这个服务即可;

4.技术栈不受限 在微服务中,我们可以结合项目业务及团队的特点,合理地选择技术栈

5.按需伸缩

微服务架构的缺点

1、服务太多,导致服务间的依赖错综复杂,运维难度大

2、微服务放大了分布式架构的系列问题

  • 分布式事务(seata)、

  • 分布式锁怎么处理(redisson),

  • 服务注册与发现(nacos)、

  • 依赖服务不稳定(sentinel)导致服务雪崩怎么办?

3、运维复杂度陡增,部署数量多、监控进程多导致整体运维复杂度提升。

 

SpringCloud与微服务关系

  • Springcloud为微服务思想提供了完美的解决方案

  • Springcloud是一些列框架的集合体(服务的注册与发现【注册中心】、服务间远程调用、服务降级、服务熔断、服务限流、分布式事务 等)

一般我们说springcloud 其实指的是Springcloud-netflix,Springcloud并不是造轮子,只是把Netflix公司的组件做二次开发

SpringBoot和SpringCloud关系

  • SpringBoot专注于快速方便的开发单个个体微服务。

  • SpringCloud是关注全局的微服务协调、整理、治理的框架,它将SpringBoot开发的单体整合并管理起来。

  • SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系。

 

服务注册与发现

服务注册,就是将提供某个服务的模块信息(通常是这个服务的ip和端口)注册到1个公共的组件上去(比如: zookeeper\consul\eureka\nacos)。

服务发现,就是新注册的这个服务模块能够及时的被其他调用者发现。不管是服务新增和服务删减都能实现自动发现。

 

注册中心对比

nacos:是阿里开源的,经过了阿里实践的

eureka:netflix公司的,现在不维护了,不开源了

Consul : HashiCorp 公司推出的开源产品,用于实现分布式系统的服务发现、服务隔离、服务配置

微服务架构_第3张图片 

nacos简介与安装

官网:什么是 Nacos

 

nacos功能与架构

微服务架构_第4张图片

 nacos功能: 微服务架构_第5张图片

 

nacos安装

下载地址:Tags · alibaba/nacos · GitHub

1:解压安装

微服务架构_第6张图片

 3:创建数据库以及表(conf>nacos-mysql.sql)

               修改完配置后就会出现一个nacos_mysql.sql.

               新建一个数据库叫nacos_config数据库

                把sql文件拖里面自动建表

微服务架构_第7张图片

 

微服务架构_第8张图片

 微服务架构_第9张图片

 5.启动  在bin目录下建

nacos注册中心工作流程

        nacos服务相当于一个大厦,nacos客户端相当于一个入住公司,微服务架构_第10张图片

 

微服务架构_第11张图片

 

 

你可能感兴趣的:(微服务,架构,java)