那些年不能忘记的摘抄本

0、起源:Nginx是一款高性能的HTTP服务器和反向代理服务器,可以作为静态资源服务器,配置虚拟主机和反向代理Tomcat服务器,实现负载均衡。官方测试Nginx能够支撑5万并发链接,并且CPU、内存等资源消耗却非常低,运行非常稳定。

1、HTTP服务器:基于Http协议提供服务的服务器,我们知道浏览器是Http(s)的客户端,目的是连接远程的Http服务器,然后服务器返回浏览器数据,浏览器接收数据解析数据之后展现出来。我们看到的外在表现就是:浏览器访问一个url,然后就得到相应的web页面。
Nginx可以提供独立的HTTP服务,可以做网页静态服务器。

2、虚拟主机:在一台服务器上虚拟出多个网站。例如个人网站使用的虚拟主机。
不同的IP地址、不同的端口号
相同的IP地址,通过不同的端口号去访问不同的资源。

3、反向代理,负载均衡:当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群时就可以使用Nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
正向代理:正向代理类似一个跳板机(堡垒机),代理访问外部资源,类似于VPN,代理访问外网。
在这里插入图片描述
反向代理:通过域名访问去反向代理启动tomcat服务器而已,通常将反向代理作为公网访问地址,Web服务器是内网。
在这里插入图片描述
负载均衡:通过反向代理服务器(Nginx)来优化网站的负载
在这里插入图片描述

4、DNS服务器:把域名解析为ip地址。

5、域名从右往左数一级、二级、三级域名:baidu.com、www.baidu.com、i.www.baidu.com。
一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。
可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走DNS服务器。

6、负载均衡高可用:为了屏蔽负载均衡服务器的宕机,会建立主备服务器,主备服务器都装有监控程序,主程序不断向备服务器发送“I am alive”消息,分别在主备Nginx上安装Keepalived。
监控程序使用Keepalived,实现机制:Keepalived是基于VRRP协议来实现的,此协议用于实现路由器组高可用,路由器组中有一个master和多个backup,master和backup中间利用心跳机制来通信,master对外提供一个VIP,即虚拟IP地址,master发送组播,当backup收不到VRRP包时就认为master宕机,多个backup根据优先级会选择其中一个backup作为master。

7、单点登录系统(SSO):在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
单体应用实现:用户登录成功后把信息写入到Session中,当用户去访问其他页面时判断该Session是否存在即可。
集群环境:会出现多次登录情况,单点登录系统是使用redis模拟Session,实现Session的统一管理。
Session共享问题:用户登录后把信息写入Session中,Tomcat中的广播机制可以实现Session共享问题。
集群中的节点:集群中有几个tomcat,就相当于有几个节点,当tomcat集群中节点数量增加,服务能力先增加后下降,一般为5个左右,一般一个tomcat的并发在300-400最佳。

8、电商模式:
B2B:商家到商家。阿里巴巴,慧聪网、铭万网。
B2C:商家到用户。京东。
C2C:用户到用户。淘宝。
B2B2C:商家到商家到用户。天猫。
O2O:线上到线下。百度外卖、美团、饿了么。

9、分布式:按照功能点把系统拆分,拆分成独立的功能,单独为某一个节点添加服务器,需要系统之间配合才能完成整个业务逻辑。
不同系统之间通过远程通信来实现数据交互。
实现方法:Webservice效率不高,不推荐使用;Restful方式适合小项目中使用;大项目适合使用Dubbo方式。
Dubbo实现机制:
首先服务容器Container启动、加载、运行服务提供方Provider;
启动后向注册中心Registry注册自己的服务;
服务消费者Consumer启动后向注册中心订阅自己所需的服务;
注册中心将Provider提供的服务地址列表传递给Consumer,如果有变更,Registry将基于长连接推送变更数据给消费者;
服务消费者基于软负载均衡算法从地址列表中选择其中一台调用,如果失败选用另一台;
监控中心Monitor用于统计内存中累计调用次数和调用时间。
具体使用方法:业务实现类中发布服务,业务接口层调用服务。

10、分布式文件系统:FastDFS,存储空间可以横向扩展,可以实现服务器的高可用,支持每个节点有备份机。
实现机制:FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Tracker server调度最终由Storage server完成文件上传和下载。

11、Redis集群:集群没有入口,客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
投票容错机制:黄色节点向红色节点发送ping指令,没有响应,通知其他节点向红色节点发送ping指令,如果超过半数未响应标识该节点挂掉。
在这里插入图片描述
Redis集群中至少应该有三个节点,要保证集群的高可用,需要每个节点有一个备份机,Redis集群至少需要6台服务器,可以搭建伪分布式,一台服务器上运行6个redis实例。

Nginx做反向代理:
host文件中不同域名配置相同IP地址,Nginx配置文件中server_name配置不同的域名,listen端口号不同,通过访问不同的域名可以访问不同文件下的静态资源。添加upstream标签后可以访问不同的tomcat服务器。在upstream标签中配置多个server即可实现负载均衡。

分布式:传统行业不使用,都是企业自己使用的。
高并发:使用分布式、缓存、页面静态化、集群。
集群、负载均衡、高可用:什么时候都能用,多个服务器。
搜索:全文检索:lucence、solr。
海量数据:大数据。
业务复杂:优惠券、热门商品。
系统安全。

发布了109 篇原创文章 · 获赞 31 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/yang_guang3/article/details/101450547
今日推荐