Azure- static repository needs reloading

僤鯓⒐⒋嵵緔 提交于 2020-01-03 01:15:29

问题


I have a static repository with stores a large XML file structure in memory and is loaded only once in the MVC application. The application is hosted on Azure (Paas) with 2 instances. We have a design tool which is used to add more stuff or remove stuff from this repository. The challenge we find is that once stuff gets added we need to reload the repository by tearing down the repository and re-creating it. This works but leaves a problem that the static repository has been refreshed only on server A and not on server B. If a request goes to server B, the user doesnt see that change as it has not been updated. On;y an IIS reset on both instances fixes the problem. I have tried using Session state to store the repository but as we use as custom Session provider which stores the values in a database table the session_start event is called on every page request causing performance problems. Does anyone out there have a more elegant solution to updating the repository on both servers and using any modern techniques.


回答1:


Have you considered using an in-role cache to store the repository (of course, persist it as well as you are doing already)?

You can either use memory from your existing web role, or create a dedicated cache role. The cache will span all of your instances, so you'd be accessing the same data from each instance.

Taking it one step further: If you're concerned about data loss during a role instance reboot (which would mean some of your data would no longer be in the cache when the instance goes down), you can enable High Availability on the cache namespace. At this point, data is replicated between instances, which lets you survive an instance restart.

You'll find the co-located (or dedicated) cache setting in the role properties:



来源:https://stackoverflow.com/questions/16327800/azure-static-repository-needs-reloading

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!