运行中的 SpringBoot 2020-02-22 认识 Spring Boot 的各类 Actuator Endpoint Actuator 目的:监控并管理应用程序 访问方式 HTTP JMX 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 一些常用的 Endpoint 如何访问 Actuator Endpoint HTTP 访问 /actuator/<Actuator ID> 端口与路径(配置 Actuator 发布的端口 和 应用程序分开,实现应用与管理的隔离,例如:应用发布在 8080 端口,Actuator 相关的所有 Endpoint 发布在 8090 端口,前段 nginx 请求转发给 8080 端口,外部请求不允许直接访问 8090 端口,起到了保护作用。) • management.server.address= •....
Consul 2020-02-21 Consul “Consul is a distributed, highly available, and data center aware solution to connect and confifigure applications across dynamic, distributed infrastructure.” - Reference 关键特性 服务发现 健康检查 KV 存储 多数据中心支持 安全的服务间通信(以加密的方式完成应用间的交互) 使用 Consul 提供服务发现能力 HTTP API (以HTTP的方式做服务的注册于发现,类似Eurak) DNS( xxx.service.consul ) 与 Nginx 联动,比如 ngx_http_consul_backend_module 通过 Docker 启动 Consul docker pull consul docker run --name consul -d -p 8500:8500 -p 8600:8600/udp consul Provider 端 依赖 <dependency&....
Spring Cloud & Cloud Native 概述 2020-02-20 简单理解微服务 “微服务就是⼀些协同工作的小而自治的服务。” – Sam Newman 小:相对于单体服务。 自治:相对内聚性更强。 微服务的优点 易购性:语言、存储…… 弹性:一个组件不可用,不会导致级联故障。 扩展:单体服务不易扩展,多个较小的服务可以按需做横向扩展。(细粒度扩容性能瓶颈的服务) 易于部署 与组织结构对齐(每个服务对应独立的团队,职责更加清晰分明) 可组合性(整个业务链路是由多个微服务相互配合完成) 可替代性(升级改造时,可以用一个服务代替另外一个服务) 实施微服务的代价 没有银弹!!! 分布式系统的复杂性(分布式系统之间的事务、最终一致性等……) 开发、测试等诸多研发过程中的复杂性 部署、监控等诸多运维复杂性 如何理解云原生 “云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。” – CNCF Cloud Native Defifinition v1.0 云原生应用要求 DevOps:开发与运维一同致力于交付高品质的软件服务于客户 *持续交付:软件的构建、测试和发布,要更快、更频繁、更稳定 微服务:以⼀....
Online Education Website 2022-02-06 中大型公司项目开发流程 需求评审(产品/设计/前端/后端/测试/运营) ->UI 设计 -> 开发(前端架构-> 开发/ 后端架构-> 开发) -> 前端后端联调 -> 项目提测 ->BugFix -> 回归测试 -> 运维和开发部署上线 -> 灰度发布 -> 全量发布 -> 维护和运营 需求分析和架构设计 功能需求 首页视频列表 视频详情 (自己开发) 微信扫码登录 下单微信支付 我的订单列表 (自己开发) 架构设计 前端后端分离 -> 方案:node 渲染 动静分离 -> 方案:静态资源如 HTML,js 放在 cdn 或者 nginx 服务器上 后端技术选择:IDEA + Springboot2.0 + redis4.0+ HttpClient + MySQL + ActiveMQ 消息队列 前端技术选择:HTML5 + bootstrapt + jQuery 测试要求:首页和视频详情页 qps 单机 qps 要求 2000+ 数据库设计 实体对象:矩形 属性:椭圆 关系:菱形 实体....
分布式环境中如何解决Session的问题 2020-02-11 常见的会话解决方案 粘性会话 : Sticky Session (任意节点故障引发请求重定向到其他节点的无法获取到原有 Session) 会话复制 : Session Replication (复制成本递增) 集中会话 : Centralized Session Spring Session 简化集群中的用户会话管理 无需绑定容器特定解决方案 支持的存储 Redis MongoDB JDBC Hazelcast 实现原理 通过定制的 HttpServletRequest 返回定制的 HttpSession。 SessionRepositoryRequestWrapper SessionRepositoryFilter DelegatingFilterProxy 基于 Redis 的 HttpSession 基本配置 @EnableRedisHttpSession 提供 RedisConnectionFactory 实现 AbstractHttpSessionApplicationInitializer SpringBoot 对 Spring Session 的支持....