负载均衡,这应该是一个永恒的话题,也是一个十分重要的话题。毕竟当网站成长到一定程度,访问量自然也是会跟着增长,这个时候,
一般都会对其进行负载均衡等相应的调整。现如今最常见的应该就是使用Nginx来进行处理了吧。当然Jexus也可以达到一样的效果。既然是
负载均衡,那就势必有多台服务器,如果不对session进行处理,那么就会造成Session丢失的情况。有个高大上的名字叫做分布式Session。
举个通俗易懂的例子,假设现在有3台服务器做了负载,用户在登陆的时候是在a服务器上进行的,此时的session是写在a服务器上的,那
么b和c两台服务器是不存在这个session的,当这个用户进行了一个操作是在b或c进行处理的,而且这个操作是要登录后才可以的,那么就会
背景交待完毕,简单的实践一下。
在ASP.NET Core中,要使用session需要在Startup中的ConfigureServices添加 以及在Configure中添加
才能使用。在控制器中的用法就是 ,下面是演示控制器的具体代码:
其中的ViewBag.Site是用来标识当前访问的是那个负载的站点。这用就不用去查日记访问了那个站点了,直接在页面上就能看到了。从
Session的用法也看出了与之前的有所不同,Session的值是用byte存储的。我们可以写个扩展方法把它封装一下,这样就方便我们直接向之
视图比较简单,一个写Session,一个读Session。Index.cshtml用于填写Session的信息,提交后跳转到About.cshtml。