微服务架构
2018-09-29 14:04:43 0 举报
AI智能生成
微服务架构
作者其他创作
大纲/内容
为什么使用微服务架构
大型单体应用架构的缺点
模块之间耦合性高、开发测试困难
部署耗时长
稳定性差
扩展性差
微服务架构的优缺点
优点
边界清晰、开发简单
技术栈灵活
模块间松耦合
可用性高
按需扩展
缺点
运维难度变大
分布式带来的复杂性
网络延迟
容错
消息序列化问题
异步通信问题
数据一致性问题
SOA vs. 微服务
SOA
含义
把业务功能划分为服务
作用
解决了代码重用的问题
解决了异构系统集成的问题(ESB标准化封装协议和报文转换)
特点
ESB集中管理
适用领域
企业间系统的集成
其他
不一定是webservice
不一定需要ESB
微服务
含义
各个服务是独立开发、部署、运行的,服务间使用轻量级协议通信
作用
松耦合
更稳定
易扩展
高可用
特点
去中心化,最低限度的集中管理(注册中心)
适用领域
互联网应用
如何改造成微服务架构
原始框架
基础框架
SpringBoot
对Spring进一步封装
使用默认配置、减少配置文件
web.xml
applicationContext.xml
*.properties
创建三步骤
pom.xml
application.properties
Application.java
Mybatis
MySQL
前端
BootStrap
AngularJS
消息中间件
RabbitMQ
缓存
Redis
调度器
Quartz
改造面临的挑战
服务之间寻址问题
服务注册与发现
服务调用方式问题
REST Template
服务负载均衡问题
基于服务端的负载均衡
服务提供者众多,增加提供者的成本很大(需要重新配置Nginx)
基于客户端的负载均衡
更适用微服务架构
服务调用容错问题
服务熔断与降级
线程隔离-Hystrix
项目中如何集成Hystrix
pom.xml加入hystrix依赖
启动类加入注解开启断路器
service中为方法创建调用失败时的备用方法
服务调用参数传递问题
声明式服务调用
定义接口,通过FeignClient远程服务方法
注入接口,调用方法
权限过滤重复代码问题
网关
application.properties增加路由配置
如何改造
Eureka注册中心
RestTemplate & Ribbon
Feign
网关Zuul
最终框架
组件
注册中心
网关
配置中心
负载均衡
断路器
声明式服务调用
服务工程结构
client
服务间调用所需的组件client,如FeignClient
config
controller
dao
service
rest
util
0 条评论
下一页