12 2020 档案
摘要:Hystrix 是 Netflix 开发的用于容错处理的库,不过 2018 年后就不在开发了,只进入维护模式,官方推荐新项目使用 resilience4j(resilience4j 的开发是受 Hystrix 启发,但为 Java 8 和函数式编程设计,并且没有过多依赖) 分布式系统中,组件之间的调
阅读全文
摘要:Robbin 是 Netflix 开发的实现客户端负载均衡的组件,通常和 Eureka 一起使用,前面的例子中 Eureka Consumer 已经使用了负载均衡 在前面的 Eureka 服务发现的基础上做一些修改 因为 Eureka 依赖已经包含了 Robbin,所以无需导入 Robbin <de
阅读全文
摘要:适合使用 Broadcast 的场景 如果希望 driver 和每个 executor 读到的变量值是一致的 如果有的变量存储的数据比较大,希望在每个 executor 都只初始化一遍 broadcast 的变量是在 driver 初始化的,然后将 broadcast 变量的元数据传给 execut
阅读全文
摘要:SpringBoot 默认支持 properties 和 YAML 两种格式的配置文件,并且有 bootstrap 和 application 两种配置文件 两者的区别 bootstrap 配置文件先于 application 配置文件被加载,会先创建初始化 Bootstrap Context,再创
阅读全文
摘要:Structured Streaming 内部使用 StateStore 模块实现增量持续查询,和故障恢复 StateStore 模块提供了分片的、分版本的、可迁移的、高可用的 key-value store 而在应用层面主要是使用 mapGroupsWithState 和 flatMapGroup
阅读全文
摘要:Spark 的 Structured Streaming 流处理,默认用的是 micro-batch 模拟流,可以保证 exactly-once 语义,但最好只能是 100ms 级别的延迟 为了满足更低延迟的业务需求,Spark Structured Streaming 推出了 Continuous
阅读全文
摘要:###部署平台的演化 部署平台的演化都是为了提高效率,降低成本,方便运维管理 大体上有以下几种类型 物理机部署: 所有程序组件都部署在物理机上 虚拟机部署: 和物理机部署差不多,只不过可以在物理机上创建多个虚拟机,添加删减虚拟设备比起物理设备方便很多 基于云平台的虚拟机部署: 直接向云产商比如亚马逊
阅读全文
摘要:前端开发模式的演进 后端渲染页面: 后端基于模板,结合具体的请求,生成对应的 html 文件给浏览器执行 前后端的分离: 后端不再写 HTML,只提供 API 接口返回数据给前端,前端通过 JavaScript 负责界面的渲染和交互,通过 AJAX 异步地和后端交互数据 前端的工程化: 前端不再是开
阅读全文
摘要:Spring Boot 的配置文件一般是放在 application.properties 或 application.yml,修改配置需要重启程序,而且每个程序管理自己的配置文件,实际应用不大方便 配置中心的好处 统一管理所有程序的配置 多环境,比如开发环境,生产环境,可以为不同环境维护不同的配置
阅读全文
摘要:###Eureka Netflix 开发的组件,使用 Eureka 可以配合其他 Netflix 的组件比如 API 网关 ZUUL 2.0 起不再开发维护了 https://github.com/Netflix/eureka/wiki The existing open source work o
阅读全文
摘要:Spring Boot 是一个快速开发框架,整合协调了包括 HTTP 服务器在内的许多三方框架,采用注解化的方式简化配置,其目的就是简化单个 Java 程序的开发和配置,使 Java 程序的开发更快速简便 Spring Cloud 更像是一个工具箱,提供了很多工具,帮助构建分布式系统,实现微服务,这
阅读全文