假如你已经构建了一个 React 应用,但是现在需要部署它。应该怎么做?首先,最好选择一个云提供商,因为它们一般成本低而且部署容易。
背景:最近小组进行一个环境比较恶劣的项目,由于没有真实的测试环境,决定上云,最终选择国外的heroku,折腾半天,其中有一些坑在这里记录下来,方便网友及个人。
网站的错误不经常发生,但当我们遇到的时候非常令人懊恼,比如当我们想要在线挂号的时候,遇到了这个: 为什么会出现这种情况,背后的服务器发生了什么?我们将使用Node.js做一个简单的web服务器并利用好
Heroku是另一个流行的PaaS平台。要自定义Heroku构建,请提供 Procfile ,它提供部署应用程序所需的咒语。Heroku为要使用的Java应用
持久化的时候会用到,在规定的时间内执行了多少次操作则会持久化到文件 .rdb /.aof,简单说,就是触发持久化机制的一种策略
关于 Socket hang up 最早是在一次服务压测中出现的,后来得到了解决,近期在 Node.js 服务迁移 K8S 容器中时又报出了此问题,核查原因之后发现是对容器的 CPU、内存大小做了限制引起的,这里总结下什么是 Socket hang up 及在什么情况下发生,该如何解决。
javascript虽然一直都可以做服务端编程语言,但是它更多的是以客户端编程语言来展示在世人面前的。也许javascript自己都忘记了还可以做服务器端编程,直到2009年nodejs的横空出世。
使用electron-vue框架,跑起来项目, 参考地址: https://simulatedgreg.gitbooks.io/electron-vue/content/cn/ 跑起来长这样
上一文中我们解析到关于服务降级的知识,了解到服务降级实际上是为了当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心业务正常运作或高效运作。 说白了,就是尽可能的把系统资源让给优先级高的服务。对于一些优先级不高的服务调用时直接返回的"兜底"方案,给使用者返回一个友好的提示而不是程序的错误信息,从而提高用户的使用体验。
复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。
Windows Management Instrumentation (WMI) 使系统管理员能够在本地和远程执行任务。从红队的角度来看,WMI 可用于执行多种活动,例如横向移动、持久性、态势感知、代码执行以及作为命令和控制(C2)。WMI 是几乎所有 Windows 操作系统(Windows 98-Windows 10)中都存在的 Windows 的一部分,这一事实使这些攻击性活动远离蓝队的雷达。
keepalived用了很久,工作原理也讲了很多遍,但是每次再遇到新的场景总是要搜好多文档来完成配置问题,这次统一梳理一下。 参考官网:https://www.keepalived.org/manpage.html
在构建你的第一个Node.js应用程序时,了解node开箱即用的实用工具和API是很有帮助的,可以帮助解决常见的用例和开发需求。
Keepalived is a routing software written in C.
应用程序开发过程中,开发占总时间一半的话,调试可能会占一小半。读书破万卷,下笔如有神,但是在编程领域似乎破万卷也得通过不断地调试,找出程序存在的问题,完善程序功能
Keepalived+LVS DR 完整架构需要两台服务器(角色为dir)分别安装keepalived软件,目的是实现高可用,但keepalived本身也有负载均衡的功能,所以本次实验可以只安装一台keepalived keepalived内置了ipvsadm的功能,所以不需要再安装ipvsadm包,也不用编写和执行那个lvs_dir的脚本 三台机器分别为: dir(安装keepalived)133.130 rs1 133.132 rs2 133.133 vip 133.200 编辑keepalived配置
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
Spring Boot 项目是不是经常失败,显示一大堆的错误信息,如端口重复绑定时会打印以下异常:
1.配置文件用法 启动redis的时候指定配置⽂件路径: ./redis-server /path/to/redis.conf 不指定配置⽂件的时候使⽤内置配置⽂件启动,此⽅法仅适⽤于开发和测试。 2.include配置配置 ⽤于引⼊其他配置⽂件,配置集群的时候⽤于引⼊公共配置⽤法如下: include /path/to/other.conf 3.bind 此配置⽤于绑定服务器⽹络接⼝,默认情况下绑定所有可⽤的⽹络端⼝。 可以通 过: bind ip1 ip2... 绑定多个端⼝。 ⽐如服务器局域⽹ip地
nginx-gateway部署在公有云 A, 业务测试服务器部署在办公区机房B, 公有云region A 和 办公区机房 B通过soft V**互连。B机房中有不同类型的应用服务器【nodejs,java(tomcat)】做nginx-gateway的后端upstream节点。nginx-gateway编译安装了ngx_http_upstream_check_module插件,ngx_http_upstream_check_module用于做后端upstream节点的健康监测, healthcheck为每个upstream的后端节点配置有一个raise_counts/fall_couts状态的计数器。业务方同事反馈:从外部访问内部某些应用有概率出现超时, 经观察, nodejs,java(tomcat)的raise_counts计数器概率性地重置为0,
众所周知,Node.js中的JavaScript代码执行在单线程中,非常脆弱,一旦出现了未捕获的异常,那么整个应用就会崩溃。
下载最新版源码:https://nodejs.org/dist/v6.9.5/node-v6.9.5.tar.gz
Pod 的 status 属性是一个 PodStatus 对象,拥有一个 phase 字段。它简单描述了 Pod 在其生命周期的阶段。
雪崩效应如上图所示,我们在微服务中的调用链中,当一个基础微服务的API接口A不可用时,当B调用A的服务会堆积阻塞,因为我们知道我们每一次调用,无论是调用方还是服务提供方,其实都是一个线程,而这些线程一般都是线程池中的线程。一般一个线程池中的线程数是有限的,一直到请求超时的时候,这个线程才会被释放(在正常情况下,任务执行完毕,线程释放,所以要求每个调用的执行时间越短越好,便于线程池中的线程不断重复使用,不出现阻塞)。在高并发的情况下,B的线程池中的线程资源会被瞬间完全占用,在短期内再也无法创建线程来执行任务,于是B停摆,挂掉了。同理,C、D服务在后续调用中也被B搞挂了。我们把基础服务故障,导致上层服务故障,并且这个故障不断放大的过程,称为雪崩效应。
虚拟主机已经是快被淘汰掉的上一代产物了。云计算涌现出很多改变传统 IT 架构和运维方 式的新技术,比如虚拟机、容器、微服务,无论这些技术应用在哪些场景,降低成本、提升 效率是云服务永恒的主题。Serverless 的出现真正的解决了降低成本、提升效率的问题。它真正做到了弹性伸缩、高并发、按需收费、备份容灾、日志监控等。
最近在探索 KubeSphere 和 K8s,东西毫无疑问是好东西,学了在未来也很有用,但是用在个人开发上实在是费用有点高,当然也不太敢用在个人开源项目上,因此我再次开始探索适用于个人全栈应用托管平台。
所谓的持久化就是保持我们的数据不丢失,将数据通常保存在我们的硬盘中。在Redis中持久化的方式有两种,一种是快照持久化,一种是AOF持久化,各有各的优缺点,在项目中我们得根据实际的情况来选择具体的持久化方式。本文主要介绍快照持久化,下篇文章介绍AOF持久化。
由于nodejs是非阻塞单进程单线程的,一旦nodejs抛出异常,整个服务就会停掉。服务将会非常不稳定。
redis.windows.conf # redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位, # 通常的格式就是 1k 5gb 4m 等酱紫: # # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024 bytes # # 单位是不区分大小写的,你写
这个主要是用来做本地的开发用的。不能用于线上环境。现在我就介绍一下这个工具如何使用。
通过第二讲我们已经知道了怎么快速搭建一个小程序客户端,当然服务端也是必不可少的。登录验证,内容存储等等都离不开服务端。
RateLimiter是Google开源的实现了令牌桶算法的限流工具(速率限制器)。http://ifeve.com/guava-ratelimiter/
启动的时候通过配置文件来启动(windows 10 下的redis配置文件, 类同Linux)
快速上手多人游戏服务器开发。后续会基于 Google Agones,更新相关 K8S 运维、大规模快速扩展专用游戏服务器的文章。拥抱☁️原生? Cloud-Native! 系列 ColyseusJS
使用postgresql + etcd + patroni + haproxy + keepalived可以实现PG的高可用集群,其中,以postgresql做数据库,Patroni监控本地的PostgreSQL状态,并将本地PostgreSQL信息/状态写入etcd来存储集群状态,所以,patroni与etcd结合可以实现数据库集群故障切换(自动或手动切换),而haproxy可以实现数据库读写分离+读负载均衡(通过不同端口实现),keepalived实现VIP跳转,对haproxy提供了高可用,防止haproxy宕机。
StarRocks 提供两种监控报警的方案。企业版用户可以使用内置的 StarRocksManager,其自带的 Agent 从各个 Host 采集监控信息,上报至 Center Service,然后做可视化展示。StarRocksManager 提供邮件和 Webhook 的方式发送报警通知。如果您有二次开发需求,需要自行搭建部署监控服务,也可以使用开源 Prometheus+Grafana 方案,StarRocks 提供了兼容 Prometheus 的信息采集接口,可以通过直接连接 BE 或 FE 的 HTTP 端口来获取集群的监控信息。
在微服务架构中,很多情况下,各个服务之间是相互依赖,一个服务可能会调用了好几个其他服务,假设其中有一个服务故障,便会产生级联故障,最终导致整个系统崩溃无法使用(这称为雪崩效应),Spring Cloud Hystrix正是用来防止雪崩效应的。
多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”. 对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,导致整个系统发生更多的级联故障。这些都表示需要对故障和延迟进行隔离和管理,以便单个依赖关系的失败,不能取消整个应用程序或系统。 所以,通常当你发现一个模块下的某个实例失败后,这时候这个模块依然还会接收流量,然后这个有问题的模块还调用了其他的模块,这样就会发生级联故障,或者叫雪崩。
领取专属 10元无门槛券
手把手带您无忧上云