目录

Life in Flow

Embrace your dreams and unlock your full potential at every stage of life.

Coupon System

该文章已经加密。

Nacos

简介  一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Reference 功能 动态服务配置 服务发现和管理 动态 DNS 服务 快速入门 通过 Docker 启动 Nacos docker pull nacos/nacos-server docker run --name nacos -d -p 8848:8848 -e MODE=standalone nacos/nacos-server 登录页面 http://192.168.31.201:8848/nacos/#/login 用户名密码为 nacos Provider 端 依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependencyManagement> <de....

运行中的 SpringBoot

认识 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

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 概述

简单理解微服务  “微服务就是⼀些协同工作的小而自治的服务。” – Sam Newman 小:相对于单体服务。 自治:相对内聚性更强。 微服务的优点 易购性:语言、存储…… 弹性:一个组件不可用,不会导致级联故障。 扩展:单体服务不易扩展,多个较小的服务可以按需做横向扩展。(细粒度扩容性能瓶颈的服务) 易于部署 与组织结构对齐(每个服务对应独立的团队,职责更加清晰分明) 可组合性(整个业务链路是由多个微服务相互配合完成) 可替代性(升级改造时,可以用一个服务代替另外一个服务) 实施微服务的代价 没有银弹!!! 分布式系统的复杂性(分布式系统之间的事务、最终一致性等……) 开发、测试等诸多研发过程中的复杂性 部署、监控等诸多运维复杂性 如何理解云原生  “云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。” – CNCF Cloud Native Defifinition v1.0 云原生应用要求 DevOps:开发与运维一同致力于交付高品质的软件服务于客户 *持续交付:软件的构建、测试和发布,要更快、更频繁、更稳定 微服务:以⼀....

Online Education Website

中大型公司项目开发流程 需求评审(产品/设计/前端/后端/测试/运营) ->UI 设计 -> 开发(前端架构-> 开发/ 后端架构-> 开发) -> 前端后端联调 -> 项目提测 ->BugFix -> 回归测试 -> 运维和开发部署上线 -> 灰度发布 -> 全量发布 -> 维护和运营 需求分析和架构设计 功能需求 首页视频列表 视频详情 (自己开发) 微信扫码登录 下单微信支付 我的订单列表 (自己开发) 架构设计 前端后端分离 -> 方案:node 渲染 动静分离 -> 方案:静态资源如 HTML,js 放在 cdn 或者 nginx 服务器上 后端技术选择:IDEA + Springboot2.0 + redis4.0+ HttpClient + MySQL + ActiveMQ 消息队列 前端技术选择:HTML5 + bootstrapt + jQuery 测试要求:首页和视频详情页 qps 单机 qps 要求 2000+ 数据库设计 实体对象:矩形 属性:椭圆 关系:菱形 实体....

分布式环境中如何解决Session的问题

常见的会话解决方案 粘性会话 : 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 的支持....