负载均衡

6月12日任务 Nginx负载均衡、 ssl原理、生成ssl密钥对、 Nginx配置ssl

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-10 02:16:18
12.17 Nginx负载均衡 1.新建配置文件 load.conf upstream lxy { ip_hash; server 180.163.26.39; server 59.37.96.63; } server { listen 80; server_name www.qq.com; location / { proxy_pass http://lxy; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 不能解析https 443端口 12.18 ssl原理 https 数据是加密的 12.19 生产ssl密钥对 1. cd /usr/local/nginx/conf/ 2. openssl genrsa -des3 -out tmp.key 2048 //生成私钥 3. openssl rsa -in tmp.key -out lxy.key //转换key 取消密码 4. rm -f tmp.key //删除key 5. openssl req -new -key lxy.key -out lxy.csr //生成证书请求文件 6. openssl

下一代云计算平台Apache Mesos定制自己的PaaS(应用发布+负载均衡+服务发现)

白昼怎懂夜的黑 提交于 2019-12-09 23:17:25
书接上文《 下一代云计算平台Apache Mesos之使用marathon发布应用 》 作为一个简单的PaaS(平台即服务),应该具备发布应用,调整应用个数,重启应用,暂停应用(marathon提供)以及负载均衡和服务发现的功能。本文主要演示负载均衡和服务发现。 1 发布docker程序到marathon 1.1 发布docker镜像到marathon平台 1.1.1 编写Docker.json { "container": { "type": "DOCKER", "docker": { "image": "192.168.1.103:5000/tomcat", "network": "BRIDGE", "portMappings": [ { "containerPort": 8080, "hostPort": 0, "protocol": "tcp" } ] } }, "id": "tomcat", "instances": 3, "cpus": 0.5, "mem": 512, "uris": [], "cmd":"/opt/tomcat/bin/deploy-and-run.sh" } 1.1.2 通过marathon api发布 curl -X POST -H "Content-Type: application/json" http://192.168.1.110

dubbo——高可用性

断了今生、忘了曾经 提交于 2019-12-09 23:04:56
一、zookeeper宕机   zookeeper注册中心宕机,还可以消费dubbo暴露的服务   健壮性: 监控中心宕掉不影响使用,只是丢失部分采样数据 数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务 注册中心对等集群,任意一台宕掉后,将自动切换到另一台 注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯 服务提供者无状态,任意一台宕掉后,不影响使用 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复 二、dubbo直连    在开发和测试环境中,通常需要绕过注册中心,只测试指定的服务提供者。在这种情况下,可能需要点对点直接连接,而服务提供者将忽略提供商注册提供程序的列表。接口A配置点对点,不影响B接口从注册表获取列表.       2.1 用xml配置 <dubbo:reference id="xxxService" interface="com.alibaba.xxx.XxxService" url="dubbo://localhost:20890" />   2.2 配置 -d   将-D参数映射服务地址添加到JVM启动参数: java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890    2.3 配置.properties档案 (详情请参考官网)   三

Nginx配置upstream实现负载均衡

只谈情不闲聊 提交于 2019-12-09 22:46:11
如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。具体配置过程如下: 1. 在http节点下,添加upstream节点。 upstream linuxidc { server 10.0.6.108:7080; server 10.0.0.85:8980; } 2. 将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即“ http://linuxidc”. location / { root html; index index.html index.htm; proxy_pass http://linuxidc; } 3. 现在负载均衡初步完成了。upstream按照轮询(默认)方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能 自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。适用于图片服务器集群和纯静态页面服务器集群。 除此之外,upstream还有其它的分配策略,分别如下: weight(权重) 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。如下所示,10.0.0.88的访问比率要比10.0.0.77的访问比率高一倍。

Dubbo集群-负载均衡

核能气质少年 提交于 2019-12-09 19:28:53
Dubbo 集群 - 负载均衡 你需要一个 dubbo-admin的压缩包 你需要将解压包放到 tomcate文件下的webapps内(修改E:\tomcat-apache\apache-tomcat-7.0.64\webapps\dubbo-admin\WEB-INF\dubbo.properties中zookeeper地址) 你需要再 zookeeper服务启动的情况下,启动tomcate(tomcate/bin/startup.bar) 登录 localhost:8080/dubbo-admin 访问页面 加载服务项目到集群中 --修改服务项目的端口,启动(注意:服务名称不变-代表是在同一个集群中) <!--声明服务提供方--> <dubbo:application name="provider"/> <!--注册中心地址--> <dubbo:registry address="zookeeper://127.0.0.1:2181"/> <!--dubbo服务端口--> <dubbo:protocol name="dubbo" port="20880修改服务项目的端口"/> <!--服务注册--> <dubbo:service interface="com.dubbo.service.DoSomeService" ref="doSomeService"/> <dubbo

Nginx、HAProxy、LVS三者的优缺点

三世轮回 提交于 2019-12-09 16:00:46
一、Nginx优点: 1、工作在网络7层之上,可针对http应用做一些分流的策略,如针对域名、目录结构,它的正规规则比HAProxy更为强大和灵活,所以,目前为止广泛流行。 2、Nginx对网络稳定性的依赖非常小,理论上能ping通就能进行负载功能。 3、Nginx安装与配置比较简单,测试也比较方便,基本能把错误日志打印出来。 4、可以承担高负载压力且稳定,硬件不差的情况下一般能支撑几万次的并发量,负载度比LVS小。 5、Nginx可以通过端口检测到服务器内部的故障,如根据服务器处理网页返回的状态码、超时等,并会把返回错误的请求重新提交到另一个节点。 6、不仅仅是优秀的负载均衡器/反向代理软件,同时也是强大的Web应用服务器。LNMP也是近些年非常流行的Web架构,在高流量环境中稳定性也很好。 7、可作为中层反向代理使用。 8、可作为静态网页和图片服务器。 9、Nginx社区活跃,第三方模块非常多,相关的资料在网上比比皆是。 Nginx常规的和HTTP请求和相应流程图: Nginx缺点: 1、适应范围较小,仅能支持http、https、Email协议。 2、对后端服务器的健康检查,只支持通过端口检测,不支持url来检测。比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,Nginx会把上传切到另一台服务器重新处理,而LVS就直接断掉了

Linux重要的服务讲述(1)

喜你入骨 提交于 2019-12-09 11:42:23
NFS 概述 NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 最早由sun公司开发,是类unix系统间实现磁盘共享的一种方法 工作原理 如上图,当我们在NFS服务器设置好一个共享目录/data/share后,其他的有权限访问NFS服务器的NFS客户端就可以讲这个目录挂载到自己的本地,并且能看到服务端/data/share下的所有数据,NFS是通过网络来进行Server端和Client端之间的数据传输,既然走网络,双方肯定都要有端口,哪NFS Server怎么知道使用哪个端口来进行数据传输,NFS其实会随机选择端口来进行数据传输,NFS服务器是通过远程过程调用RPC(Remote Procedure Call)协议来实现的,所以,RPC管理服务端的NFS端口分配,客户端要传数据,那么客户端的RPC会先跟服务端的RPC去要服务器的端口,要到端口后,再建立连接,然后传输数据 RPC(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据

小D课堂 - 新版本微服务springcloud+Docker教程_4-03 高级篇幅之Ribbon负载均衡源码分析实战...

五迷三道 提交于 2019-12-09 00:24:55
笔记 3、高级篇幅之Ribbon负载均衡源码分析实战 简介: 讲解ribbon服务间调用负载均衡源码分析 1、完善下单接口 2、分析@LoadBalanced 1)首先从注册中心获取provider的列表 2)通过一定的策略选择其中一个节点 3)再返回给restTemplate调用 开始 订单里面获取商品的信息,这里换成Map来接受。 这样在map里面就可以获取到name和price 启动order的服务测试 分析ribbon 为什么比http好。 看官方文档 搜索ribbon关键字 另外一种负载均衡的方式 服务的地址+获取到的端口号 new一个restTemplate。然后在里面传入url的地址 使用这种方式也是可以拿到数据的 每次的端口不一样 分析ribbon 首先找到入口 @LoadBalanced注解 再去搜索LoadBalacnerClient 查看他的子类 在这里加了断点。重启重复。访问接口地址 轮询的策略 getAllServers获取服务的列表,获取到了三个。 拿到8773的节点 转载于:https://www.cnblogs.com/wangjunwei/p/11443972.html 来源: CSDN 作者: weixin_30566063 链接: https://blog.csdn.net/weixin_30566063/article/details

Linux重要的服务讲述(1)

二次信任 提交于 2019-12-08 22:26:48
NFS 概述 NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 最早由sun公司开发,是类unix系统间实现磁盘共享的一种方法 工作原理 如上图,当我们在NFS服务器设置好一个共享目录/data/share后,其他的有权限访问NFS服务器的NFS客户端就可以讲这个目录挂载到自己的本地,并且能看到服务端/data/share下的所有数据,NFS是通过网络来进行Server端和Client端之间的数据传输,既然走网络,双方肯定都要有端口,哪NFS Server怎么知道使用哪个端口来进行数据传输,NFS其实会随机选择端口来进行数据传输,NFS服务器是通过远程过程调用RPC(Remote Procedure Call)协议来实现的,所以,RPC管理服务端的NFS端口分配,客户端要传数据,那么客户端的RPC会先跟服务端的RPC去要服务器的端口,要到端口后,再建立连接,然后传输数据 RPC(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据

分库分表

不打扰是莪最后的温柔 提交于 2019-12-08 18:56:28
第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。 水平切分数据库:可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失; 负载均衡策略:可以降低单台机器的访问负载,降低宕机的可能性; 集群方案:解决了数据库宕机带来的单点数据库不能访问的问题; 读写分离策略:最大限度了提高了应用中读取数据的速度和并发量; 第2章 基本原理和概念 什么是数据切分 "Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏中。"Sharding" 姑且称之为"分片"。Sharding 不是一个某个特定数据库软件附属的功能,而是在具体技术细节之上的抽象处理,是水平扩展(Scale Out,亦或横向扩展、向外扩展)的解决方案,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。通过一系列的切分规则将数据水平分布到不同的DB或table中,在通过相应的DB路由或者table路由规则找到需要查询的具体的DB或者table,以进行Query操作。“sharding”通常是指“水平切分”,这也是本文讨论的重点