面试题:微服务是什么?springcloud,springboot是什么?
面试刷题37:微服务是什么?springcloud,springboot是什么?
面试中被问到为什么要使用微服务架构?springcloud的核心组件有哪些?
拿我们国家的兵种来说,如何把战争这个单体架构微服务化,就是根据适用的场景,拆分出不同的兵种(微服务)
然后每个兵种之间通过军区指挥部采用特有的通信协议连接起来(RPC) ;
每个兵种内部自治,有自己的业务,数据,部署单元(建制)对外提供打击服务(HTTP)。
微服务
微服务是一种架构风格:
把单体系统拆分成各种微服务(进程集群里面),服务之间通过HTTP或者RPC协议进行通信。
服务内部是围绕某一个问题领域的业务,有自己单独的业务流程,数据存储,自动化测试,和自动化独立部署机制。
解决单体系统的难题:
开发端:部分业务的修改要修改整个项目, 开发维护成本高,容易出错,不利于团队协作;
运维线:部分业务的上线影响整体服务质量,运维无法精确评估系统资源的需求量;
带来的问题:
1,运维需要维护数量庞大的进程;
2,接口的业务流程拉长,一致性比较更难以控制;
3,分布式的复杂性:网络延迟,异步消息,分布式事务等;
基于敏捷项目管理和自动化部署可以应对这些问题。
springcloud整体介绍
基于springboot实现的微服务架构开发工具。
提供了这些分布式问题的解决方案:
springboot带来了什么?
1,提供了一个开发微服务的脚手架(idea的initializer创建springcloud的微服务),减少了从0开始搭建项目的问题;
2,并非重写spring或者替代spring,主要是提供了自动化配置简化原有的样板配置
3,快速开发,提供了各种starter集成其它的组件和解决依赖管理问题
4,轻松部署,内置了web容器,轻松跟docker融合;
涵盖了项目的构建,开发,测试阶段;
springboot快速使用
idea的initializer创建springcloud的微服务
开发一个rest接口
开发接口的单元测试代码
例子代码点我获取!
工程结构
依赖处理
1, parent处理方式
2,dependencyManagemant处理方式
运行
1,java -jar x.jar 运行 正式环境
2,idea提供调试运行; 开发环境
3,maven的spring-boot:run插件运行 开发环境;
springboot配置
自动化配置是springboot最大的亮点。
配置的加载优先级如下:
1,命令行中的参数 ;
2, 系统环境变量中的SPRING_APPLICATION_JSON配置;
3,JNDI属性: java:comp/env
4,java的操作系统属性 System.getProperties();
5, 操作系统的环境变量
6,jar包外部的 application-${profile}.properties
7, jar包内部的 application-${profile}.properties
8, @Configuration注解修改过的类 @PropertySource注解定义的属性
9, SpringApplication.setDefaultProperties()
多环境配置
application.properties放通用配置,指定激活 dev环境
在其他的环境中提供差异化的配置,发布的时候通过命令行指定环境spring.profiles.active=prod;
springboot监控
微服务是的进程的数量增多,必须有一套自动化的监控运维机制来收集微服务的运行指标,进行监控和预警。
spring-boot-starter-actuator 来进行监控。
并配置开启的端点。
常见的监控端点: /health /beans /mappings
小结
首先宏观上回答了为什么微服务会出现,解决了什么问题?
然后初步介绍了spring-cloud带来了什么?
接着从spring-cloud的基础出发,即springboot分析了springboot带来了什么,简单实用,配置和监控;
springboot带来了什么?
以及快速使用springboot开发接口的过程;
简单介绍了 工程结构,依赖的处理方式 , 运行指令等细节;
然后基于配置,介绍了配置参数的加载顺序,多环境下的最佳实践。
最后介绍了微服务继续的自动监控和运维机制 actuator ,收集微服务的端点信息。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
4月14日云栖号头条:中国数字经验助力全球抗疫 阿里巴巴为海外创业者提供“工具箱”
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 今日最新云头条快讯: 中国数字经验助力全球抗疫 阿里巴巴为海外创业者提供“工具箱” 随着新冠疫情在全球蔓延,不少国家也像两个月前的中国一样采取全民隔离等抗疫措施,中国的数字抗疫经验也开始在海外发挥作用。2016年,阿里巴巴创始人马云首次提出eWTP的构想,旨在通过数字技术,帮助全球的中小企业和年轻人更好地参与全球贸易。在这一构想的驱动下,从东南亚到非洲,阿里巴巴商学院培养了上万名数字经济人才,疫情期间,他们也成了当地的“战疫奇兵”。在eWTP的首个海外落地国马来西亚,接受过阿里巴巴培训的创业者们开始了集体作战,中国抗疫期间发挥作用的在线采购寻源平台、物流绿色通道、线上问诊、电商助农等数字化服务都快速发展出了当地版本。最近一个月来,阿里巴巴商学院的老师每周两次视频分享阿里数字经济体抗击疫情、恢复生产的经验,并将这些内容汇编成册,作为全球创业者的抗疫“工具箱”。 国务院批复同意设立江西内陆开放型经济试验区 国务院批复同意设立江西内陆开放型...
- 下一篇
spring-boot-plus-v2.0发布了-让天下没有难写的代码
spring-boot-plus是易于使用,快速,高效,功能丰富,开源的spring boot脚手架 前后端分离,专注于后端服务 目标 每个人都可以独立、快速、高效地开发项目! GITHUB | GITEE 官网 springboot.plus V2.0 bilibili 视频介绍 主要特性 集成spring boot 常用开发组件集、公共配置、AOP日志等 Maven多模块架构 集成mybatis plus快速dao操作 快速生成后台代码: entity/param/vo/controller/service/mapper/xml 集成Swagger/Knife4j,可自动生成api文档 集成jwt、shiro权限控制 集成Redis缓存 集成HikariCP连接池,JDBC性能和慢查询检测 集成spring boot admin,实时检测项目运行情况 使用assembly maven插件进行不同环境打包部署,包含启动、重启命令,配置文件提取到外部config目录 项目结构 └── spring-boot-plus ├── admin SpringBootAdmin Server模块...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL8.0.19开启GTID主从同步CentOS8