背景:不久前单位上线一款应用,上了生产环境之后,没过多久,便吃掉了服务器所有的内存,最后导致网站服务挂了. 在解决了这一问题之后,我发现这其实是典型的一单例模式,现分享一下. 之前存在问题的老代码如下: 这是导致问题所在的那个关键方法 public synchronized static JedisCluster getJedisCluster() { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(MAX_A…
官方文档: https://ubuntu.com/kubernetes/docs 搭建一个基本的集群 集群ip规划 hostname ip ubuntu-1 10.0.0.10 juju-controller-1 10.0.0.11 juju-master-1 10.0.0.21 juju-master-2 10.0.0.22 juju-master-3 10.0.0.23 juju-worker-1 10.0.0.31 juju-worker-2 10.0.0.32 ubuntu-1 为juj…
在进群生产环境下运行Topology和在本地模式下运行非常相似.下面是步骤: 1.定义Topology(如果使用Java开发语言,则使用TopologyBuilder来创建) 2.使用StormSubmitter向集群提交Topology.StormSubmitter有三个参数,Topology的名字,Topology的配置,和Topology本身.下面是例子: ? 1 2 3 4 Config conf = new Config(); conf.setNumWorkers(20); conf.…
开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群.现在,我们来了解一下在一个Hadoop分布式集群中,如何动态(不关机且正在运行的情况下)地添加一个Hadoop节点与下架一个Hadoop节点. 一.实验环境结构 本次试验,我们构建的集群是一个主节点,三个从节点的结构,其中三个从节点的性能配置各不相同,这里我们主要在虚拟机中的内存设置这三个从节点分别为:512MB.512MB与256MB.首先,我们暂时只设置两个从节点,另外一个作为动态添加节点的时候使用.主节点与…
前言 在我们给Web站点使用负载均衡之后,必须面临的一个重要问题就是Session的处理办法,无论是PHP.Python.Ruby还是Java,只要使用服务器保存Session,在做负载均衡时都需要考虑Session的问题.   分享目录: 问题在哪里?如何处理? 会话保持(案例:Nginx.Haproxy) 会话复制(案例:Tomcat) 会话共享(案例:Memcached.Redis) 问题在哪里? 从用户端来解释,就是当一个用户第一次访问被负载均衡代理到后端服务器A并登录后,服务器A上保留…
导读 目前很多互联网公司的系统都在朝着微服务化.分布式化系统的方向在演进,这带来了很多好处,也带来了一些棘手的问题,其中最棘手的莫过于数据一致性问题了.早期我们的软件功能都在一个进程中,数据的一致性可以通过数据库本地事务来加以控制.而在分布式架构下,原本比较完整的本地功能可能被拆分成了多个独立的服务进程.与之前相比,同样一笔业务订单此时可能会经历很多服务模块的处理,调用链路会变得很长,例如某电商平台,一笔购物订单可能会经过:商品中心.订单.支付.物流等多个服务的调用,而这可能还只是比较粗粒度的划…
通常面临的问题 从用户端来解释,就是当一个用户第一次访问被负载均衡代理到后端服务器A并登录后,服务器A上保留了用户的登录信息:当用户再次发送请求时, 根据负载均衡策略可能被代理到后端不同的服务器,例如服务器B,由于这台服务器B没有用户的登录信息,所以导致用户需要重新登录.这对用户 来说是不可忍受的.所以,在实施负载均衡的时候,我们必须考虑Session的问题. 在负载均衡中,针对Session的处理,一般有以下几种方法: )Session会话保持(案例:Nginx.Haproxy) )Sessi…
HDFS采用一种称为机架感知(rack-aware)的策略来改进数据的可靠性.可用性和网络带宽的利用率.目前实现的副本存放策略只是在这个方向上的第一步.实现这个策略的短期目标是验证它在生产环境下的有效性,观察它的行为,为实现更先进的策略打下测试和研究的基础. 大型HDFS集群系统往往运行在跨越多个机架的数据中心,不同机架上的两台机器之间的通信需要经过交换机.在大多数情况下,同一个机架内的两台机器间的带宽会比不同机架的两台机器间的带宽大. 通过一个机架感知的过程,NameNode可以确定每个Dat…
在日常运维工作中,当给Web站点使用负载均衡之后,必须面临的一个重要问题就是Session的处理办法,无论是PHP.Python.Ruby还是Java语言环境,只要使用服务器保存Session,在做负载均衡时都需要考虑Session的问题. 通常面临的问题 从用户端来解释,就是当一个用户第一次访问被负载均衡代理到后端服务器A并登录后,服务器A上保留了用户的登录信息:当用户再次发送请求时, 根据负载均衡策略可能被代理到后端不同的服务器,例如服务器B,由于这台服务器B没有用户的登录信息,所以导致用户…
一般情况下,Kubernetes 的 Cluster Network 是属于私有网络,只能在 Cluster Network 内部才能访问部署的应用.那么如何才能将 Kubernetes 集群中的应用暴露到外部网络,为外部用户提供服务呢? 本文就来讲一讲从外部网络访问 Kubernetes Cluster 中 Pod 和 Serivce 的几种常用的实现方式. Pod 和 Service 的关系 我们首先来了解一下 Kubernetes 中的 Pod 和 Service 的概念以及两者间的关系.…