负载均衡

分布式和微服务到底有何区别?

柔情痞子 提交于 2019-12-31 22:33:46
一、微服务架构基本知识(spring-cloud) 1.1 什么是分布式? 不同模块部署在不同服务器上,对系统的水平拓展,分散单个服务器压力. 作用:分布式解决网站高并发带来问题 1.2 什么是集群? 多台服务器部署相同应用构成一个集群,利用硬件优势支撑访问量高的应用. 作用:通过负载均衡设备共同对外提供服务 1.3 什么是微服务? 微服务是对系统进行更细粒度的拆分,侧重于模块解耦和复用,不同的微服务不一定部署到不同服务器上,微服务是使系统各个功能拆分更加精细和独立的垂直拓展。 架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合),其它特性(单一职责,边界,异步通信,独立部署),微服务是分布式概念的更严格执行.换句换说:微服务一定是分布式的,但分布式项目不一定是微服务架构! 二、微服务架构图 三、SpringCloud说明 SpringCloud 为开发人员提供了快速构建分布式(或微服务)系统的一些工具,包括配置管理(config)、服务发现(Eureka)、断路器(hystrix)、路由(zuul)、微代理http客户端(Feign,rpc远程调用)、事件总线(Bus)、负载均衡(Ribbon,rpc远程调用)、日志链路监控(Zipkin)等。 四、服务生产者与消费者的关系 服务生产者:提供服务被人调用; 服务消费者:调用别人服务. 五、概念介绍完

nginx负载均衡+docker部署应用

主宰稳场 提交于 2019-12-31 02:04:42
Docker已经出来好长时间了,一直没有时间研究,正好最近有个项目部署在一台内存和CPU都超夸张的机器上,而项目因并发量增加,后面肯定也需要扩展了。因为这台服务器内存和CPU都足够大,部署一个项目实在太浪费了,于是想到用docker部署方式做横向扩展。 首先想到的方案就是nginx做负载均衡,再加多台docker的方式部署项目。思路很简单,但在真正操作的时候,遇到各种各样的问题,所以说实践是最好的老师一点没错。 准备docker 跟同学借了一台亚马逊的云作为测试环境 Linux ip-10-200-8-1044.9.20-11.31.amzn1.x86_64 #1 SMP Thu Apr 13 01:53:57 UTC 2017 x86_64 x86_64x86_64 GNU/Linux 安装docker 通过yum方式安装 yum install docker –y 配置docker的镜像源 因为被墙了,貌似很多docker镜像都下载不下来,可以配置docker镜像的地址为国内的地址。其实很简单,改下一个docker的配置文件就好了。在/etc/docker目录下面有个daemon.json的文件,修改下就行了。 cd /etc/docker vim daemon.json 修改为如下内容: { "registry-mirrors" : [ "http://8fcab180.m

大型网站系统架构分析

十年热恋 提交于 2019-12-30 23:31:19
千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理 :负载量不大的情况下select、delete和update是响应很迅速的,最多加几个索引就可以搞定,但千万级的注册用户和一个设计不好的多对多关系将带来非常严重的性能问题。另外在高UPDATE的情况下,更新一个聚焦索引的时间基本上是不可忍受的。索引和更新是一对天生的冤家。 高并发死锁 :平时我们感觉不到,但数据库死锁在高并发的情况下的出现的概率是非常高的。 文件存储的问题 :大型网站有海量图片数据、视频数据、文件数据等等,他们如何存储并被有效索引?高并发的情况下IO的瓶颈问题会迅速显现。也许用RAID和专用存贮服务器能解决眼下的问题,但是还有个问题就是各地的访问问题,也许我们的服务器在北京,可能在云南或者新疆的访问速度如何解决?如果做分布式,那么我们的文件索引以及架构该如何规划。 接下来讨论大型网站的底层系统架构,来有效的解决上述问题。 毋庸置疑,对于规模稍大的网站来说,其背后必然是一个服务器集群来提供网站服务,例如,2004年eBay的服务器有2400台,估计现在更多。当然,数据库也必然要和应用服务分开,有单独的数据库服务器集群。对于像淘宝网这样规模的网站而言,就是应用也分成很多组。 下面

大型网站系统架构分析

谁说我不能喝 提交于 2019-12-30 23:30:56
千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理 :负载量不大的情况下select、delete和update是响应很迅速的,最多加几个索引就可以搞定,但千万级的注册用户和一个设计不好的多对多关系将带来非常严重的性能问题。另外在高UPDATE的情况下,更新一个聚焦索引的时间基本上是不可忍受的。索引和更新是一对天生的冤家。 高并发死锁 :平时我们感觉不到,但数据库死锁在高并发的情况下的出现的概率是非常高的。 文件存储的问题 :大型网站有海量图片数据、视频数据、文件数据等等,他们如何存储并被有效索引?高并发的情况下IO的瓶颈问题会迅速显现。也许用RAID和专用存贮服务器能解决眼下的问题,但是还有个问题就是各地的访问问题,也许我们的服务器在北京,可能在云南或者海南的访问速度如何解决?如果做分布式,那么我们的文件索引以及架构该如何规划。 接下来讨论大型网站的底层系统架构,来有效的解决上述问题。 毋庸置疑,对于规模稍大的网站来说,其背后必然是一个服务器集群来提供网站服务,例如,2004年eBay的服务器有2400台,估计现在更多。当然,数据库也必然要和应用服务分开,有单独的数据库服务器集群。对于像淘宝网这样规模的网站而言,就是应用也分成很多组。 下面

Tomcat负载均衡、调优核心应用进阶学习笔记(五):Tomcat调优和Tomcat监控(差评)

筅森魡賤 提交于 2019-12-30 05:54:19
文章目录 tomcat调优 tomcat监控 tomcat调优 vi catalina.sh # ----------------------------------------------------------------------------- # Control Script for the CATALINA Server # # Environment Variable Prerequisites # # Do not set the variables in this script. Instead put them into a script # setenv.sh in CATALINA_BASE/bin to keep your customizations separate. # # CATALINA_HOME May point at your Catalina "build" directory. # # CATALINA_BASE (Optional) Base directory for resolving dynamic portions # of a Catalina installation. If not present, resolves to # the same directory that CATALINA_HOME points to

nginx安装&负载均衡配置&nginx反爬虫&nginx命令

你。 提交于 2019-12-30 05:50:03
Nginx安装 wget https://nginx.org/download/nginx-1.14.0.tar.gz tar -zxvf nginx-1.14.0.tar.gz cd nginx-1.14.0 安装依赖库: yum install gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel 编译安装: ./configure make make install ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx nginx命令:start nginx(linux 下直接nginx启动即可)nginx -s stop(关闭)nginx -s reload(重启) nginx负载均衡配置: 1 #user nobody; #全局块 2 worker_processes 1; 3 4 #error_log logs/error.log; 5 #error_log logs/error.log notice; 6 #error_log logs/error.log info; 7 8 #pid logs/nginx.pid; 9 10 11 events {        #

LB 服务器负载均衡【旁路部署】

强颜欢笑 提交于 2019-12-29 04:26:27
LB旁路部署案例 一、 需求 为了实现服务器对外网用户提供服务的可靠性,客户在现网中部署了LB设备,LB采用旁路方式部署,要求外网主机访问时的流量经过LB轮询到内部服务器,一台服务器down机不影响其正常业务。 二、 拓扑环境 三、 配置思路 配置各个设备ip地址及路由,保证ip可达 配置检测模板 配置ip地址池 配置实服务组,调用检测模板和ip地址池 配置实服务,关联实服务组 配置虚服务器,关联实服务组 测试 四、 配置步骤 配置脚本如下所示: 出口NAT设备配置: sysname NAT # system-working-mode standard xbar load-single password-recovery enable lpu-type f-series # vlan 1 # interface Serial1/0 # interface Serial2/0 # interface Serial3/0 # interface Serial4/0 # interface NULL0 # interface GigabitEthernet0/0 port link-mode route combo enable copper ip address 192.168.34.4 255.255.255.0 # interface GigabitEthernet0/1 port

服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)

此生再无相见时 提交于 2019-12-29 01:39:32
【前言】 Ocelot 是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要通过一个统一的Ocelot.Json配置文件简单的配置即可完成。 简单的来说Ocelot是一堆的asp.net core middleware组成的一个管道。 当它拿到请求之后会用一个request builder来构造一个HttpRequestMessage发到下游的真实 服务器 ,等下游的服务返回response之后再由一个middleware将它返回的HttpResponseMessage映射到HttpResponse上。 Ocelot的基本使用 用一台web service来host Ocelot,在这里有一个json配置文件,里面设置了所有对当前这个网关的配置。它会接收所有的客户端请求,并路由到对应的下游服务器进行处理,再将请求结果返回。而这个上下游请求的对应关系也被称之为路由。 集成Identity Server 当我们涉及到认证和鉴权的时候,我们可以跟Identity Server进行结合。当网关需要请求认证信息的时候会与Identity Server服务器进行交互来完成。 网关集群 只有一个网关是很危险的

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

孤者浪人 提交于 2019-12-29 01:38:42
大神张善友 分享过 一篇 《.NET Core 在腾讯财付通的企业级应用开发实践》 里面就是用.net core 和 Ocelot搭建的可扩展的高性能Api网关。 Ocelot( http://ocelot.readthedocs.io )是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、 负载均衡 、请求聚合、认证、鉴权、限流熔断等,这些功能只都只需要简单的配置即可完成。 Consul(https://www.consul.io)是一个分布式,高可用、支持多数据中心的服务注册、发现、健康检查和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发。 Ocelot 天生集成 对Consul支持,在OcelotGateway项目中Ocelot.json配置就可以开启 ocelot + consul 的组合使用,实现服务注册、服务发现、 健康检查 、负载均衡。 软件版本 Asp.net Core :2.0 Ocelot :7.1.0-unstable0011 (开发时最新) Consul :1.1.0(开发时最新) 本文分开两部分:1、基于 Ocelot搭建Api网关;2、Ocelot+ Consul 实现下游服务的 服务注册、服务发现、 健康检查、负载均衡。 项目结构 Snai.Ocelot 网关: Snai.ApiGateway Asp

在浏览器中输入一个网址后,发生了什么?

本小妞迷上赌 提交于 2019-12-29 00:38:22
这是面试中一道非常经典的问题。 当你在浏览器中输入一个网址,浏览器的处理过程如下: 第一步 浏览器查找该域名的 IP 地址 第二步 浏览器根据解析得到的IP地址向 web 服务器发送一个 HTTP 请求 第三步 服务器收到请求并进行处理 第四步 服务器返回一个响应 第五步 浏览器对该响应进行解码,渲染显示。 第六步 页面显示完成后,浏览器发送异步请求。 下面对每个环节做进一步分析: 01 浏览器查找该域名的 IP 地址 浏览器缓存 首先是查找浏览器缓存,浏览器会缓存DNS记录一段时间,不同浏览器保存的时常不等(2分钟到30分钟不等)。 系统缓存 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用来查找这个网址的对应DNS信息。 路由器缓存 如果在系统缓存里没有找到找到对应的IP,请求会发向路由器,它一般会有自己的DNS缓存。 ISP DNS服务器 如果在路由器缓存里还是没有对应的IP,请求会被发送到ISP。 根域名服务器 如果还是没有,请求将发向根域名服务器进行搜索。找不到就说明此域名不存在。 02 浏览器根据解析得到的IP地址向 web 服务器发送一个 HTTP 请求 可能会重定向响应 例如“ http://facebook.com/ ”,服务器会给浏览器响应一个301永久重定向响应,这样浏览器就会访问“ http://www.facebook.com/ ” 而非“