将生活实际联系到微服务上 , 就不难理解网关的意思了:
网关的作用如下:
- 反向路由:很多时候 , 公司不想让外部人员看到我们公司的内部 , 就需要网关来进行反向路由 。 即将外部请求转换成内部具体服务调用 。
- 安全认证:网络中会有很多恶意访问 , 譬如爬虫 , 譬如黑客攻击 , 网关维护安全功能 。
- 限流熔断:当请求很多服务不堪重负 , 会让我们的服务自动关闭 , 导致不能用服务 。 限流熔断可以有效的避免这类问题 。
- 日志监控:所有的外面的请求都会经过网关 , 这样我们就可以使用网关来记录日志信息 。
- 灰度发布 , 蓝绿部署 。 是指能够平滑过渡的一种发布方式 。 在其上可以进行 A/B testing 。 即让一部分用户继续用产品特性 A , 一部分用户开始用产品特性 B , 如果用户对 B 没有什么反对意见 , 那么逐步扩大范围 , 把所有用户都迁移到 B 上面来 。
Zuul 网关核心其实是一个 Servlet , 所有请求都会经过 Zuul Servlet 传到 ZuulFilter Runner , 然后分发到三种过滤器 。
先说说架构图左半部分 , 分别是使用 Groovy 实现的前置路由过滤器 , 路由过滤器 , 后置路由过滤器 。
一般请求都会先经过前置路由过滤器处理 , 一般的自定义 Java 封装逻辑也会在这里实现 。
路由过滤器 , 实现的是找到对应的微服务进行调用 。 调用完了 , 响应回来 , 会经过后置路由过滤器 , 通过后置路由过滤器我们可以封装日志审计的处理 。
可以说 Zuul 网关最大的特色就是它的三层过滤器 。 架构图右半部分 , 是 Zuul 网关设计的自定义过滤器加载机制 。
网关内部会有生产者消费者模型 , 自动的将过滤器脚本发布到 Zuul 网关读取加载运行 。
配置中心
以前 , 开发人员把配置文件放在开发文件里面 , 这样会有很多隐患 。 譬如 , 配置规范不同 , 无法追溯配置人员 。
一旦需要大规模改动配置 , 改动时间会很长 , 无法追溯配置人员 , 从而影响整个产品 , 后果是我们承担不起的 。
因此就有配置中心这个喽!现在的开源中心有百度配置中心 Disconf , Spring Cloud Config , Apollo 。
【spring|腾讯T4架构师用这12张手绘图,轻松带你搞懂微服务架构!太厉害了】今天重点说说现在应用质量不错的配置中心 , 携程开源的阿波罗(Apollo):
Apollo 的配置中心规模比较大 , 本地应用会有响应的配置中心客户端 , 可以定时同步配置中心里的配置 。 如果配置中心怠机 , 会使用缓存来进行配置 。
通讯方式
关于通讯方式 , 一般市面也就是两种远程调用方式 , 我整理了一个表格:
监控预警
监控预警对于微服务很重要 , 一个可靠的监控预警体系对微服务运行至关重要 。
一般监控分为如下层次:
从基础设施到用户端 , 层层有监控 , 全方位 , 多角度 , 每一个层面都很重要 。
总体来说 , 微服务可分为 5 个监控点:
- 日志监控
- Metrics 监控
- 健康检查
- 调用链检查
- 告警系统
下面的图是大部分公司的一种监控架构图 。 每一个服务都有一个 Agent , Agent 收集到关键信息 , 会传到一些 MQ 中 , 为了解耦 。
同时将日志传入 ELK , 将 Metrics 传入 InfluxDB 时间序列库 。 而像 Nagios , 可以定期向 Agent 发起信息检查微服务 。
②调用链监控 APM
很多公司都有调用链监控 , 就譬如阿里有鹰眼监控 , 点评的 Cat , 大部分调用链监控(没错 , 我指的 Zipkin)架构是这样的:
当请求进入 Web 容器的时候 , 会经过创建 Tracer , 连接 Spans(模拟潜在的分布式工作的延迟 , 该模块还包含在系统网络间传递跟踪上下文信息的工具包 , 如通过 HTTP Headers) 。
Spans 有一个上下文 , 其中包含 Tracer 标识符 , 将其放在表示分布式操作的树的正确位置 。
当我们把图中的各种 Span 放到后端的时候 , 我们的服务调用链会动态的生成调用链 。
下面是一些市场上用的比较多的调用链监控对比:
熔断、隔离、限流、降级
面对巨大的突发流量下 , 大型公司一般会采用一系列的熔断(系统自动将服务关闭防止让出现的问题最大化)、隔离(将服务和服务隔离 , 防止一个服务挂了其他服务不能访问)、限流(单位时间内之允许一定数量用户访问)、降级(当整个微服务架构整体的负载超出了预设的上限阈值或即将到来的流量预计将会超过预设的阈值时 , 为了保证重要或基本的服务能正常运行 , 我们可以将一些不重要或不紧急的服务或任务进行服务的延迟使用或暂停使用)措施 。
- 电子商务|腾讯回应财付通被罚:已全部完成整改
- 百度|派财经 · 一周热闻:工信部因电信网络诈骗约谈阿里云、百度云;腾讯回应APP暂停更新
- 编程|腾讯,搬起石头砸自己的脚!
- 电子商务|官方点名才重视?腾讯公开回应,马化腾该好好反思了
- 腾讯|腾讯惨了,旗下即将发布的APP被勒令必须先检测后上架,现有可继续用
- 阿里巴巴|互联网公司不敢赚钱?阿里腾讯十年来净利润首亏损,该换挡了?
- 百济神州|腾讯净利润下跌,马化腾却早已在“闷声发大财”?
- 腾讯|冠名华为,赛力斯SF5以三合一电驱系统亮相,能否冲击轿跑系列
- 腾讯|有没有靠谱又赚钱的副业求推荐?
- 腾讯|数据安全厂商“全知科技”完成数亿元B轮融资