设为首页 加入收藏

TOP

.NET架构师知识普及(二)
2019-09-17 17:14:20 】 浏览:37
Tags:.NET 架构 知识 普及
plicationBuilder app) {
return app.UseMiddleware<LogMiddleware>(); } }

在Configure中 app.UseLog();就可,程序运行,会在VS调试输出的地方显示
程序运行 开始。
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Route matched with {action = "Index", controller = "Home"}. Executing action ----此处省略部分输出
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Executed action WebCore.Controllers.HomeController.Index (WebCore) in 13.9555ms
程序运行 结束。

3.说说数据库的隔离级别,数据库有哪些锁

数据库事物的四大特性:原子性、一致性、隔离性、持续性(永久性)。原子性:要么全做,要么全不做;一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的;隔离性:一个事务的执行不能被其他事务干扰;永久性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
事务的隔离性:未提交读(Read uncommitted),已提交读(Read committed),可重复读(Repeatable read),可串行化(Serializable )。未提交读:最低级别,任何情况都无法保证;已提交读:可避免脏读的发生;可重复读:可避免脏读、不可重复读的发生;串行化:可避免脏读、不可重复读、幻读的发生。举例:未提交读:A更新了数据没有提交B可以看到;已提交读:A更新了数据没有提交B看不到,提交之后可以看到;可重复读:A插入一条数据,提交之后,B看不到,B事物结束之后,在查询可以看到;可串行化:A执行完之后B才可执行。(所有的一切操作都是并行操作)
数据库中的锁:分为独占锁(即排它锁),共享锁和更新锁,细分又可分为表锁、行锁、页锁等。
为什么需要所?当并发事务同时访问一个资源时,有可能导致数据不一致,因此需要一种机制来将数据访问顺序化,以保证数据库数据的一致性。
共享锁表示对数据进行select操作,多个事务可以同时为一个对象加共享锁。排他锁也叫写锁,排他锁表示对数据进行insert、update或delete操作,如果一个事务对对象加了排他锁,其他事务就不能再给它加任何锁了。更新锁在的初始化阶段用来锁定可能要被修改的资源,这可以避免使用共享锁造成的死锁现象。

4.口述下如何设计一个SOA框架

SOA的全称是Service Oriented Architecture,即面向服务的架构。它可以根据需求通过网络对应用组件进行分布式部署、组合和使用,服务层是SOA的基础,可以直接被应用调用,从而有效控制系统松耦合。简单来说就是A功能布置在A服务器,B功能布置在B服务器,他们都开放出接口供C。。等访问,C不用知道A,B是如何实现的,只管用就可以了。简单的例子webservice、WCF、web api等等。

SOA框架的文章,Web Service 和WCF的比较

5.SOA和微服务架构之间的主要区别是什么?

我的理解是:SOA和微服务是一脉相承的,两者都是中立性,语言无关,协议跨平台。微服务的目的是有效的拆分应用,服务的细粒度,重用组合,甚至是每个操作(或方法)都是独立开发的服务,足够小到不能再进行拆分。SOA更适合大型企业中的业务过程编排、应用集成。

6.了解各个framework的底层不?

C#源码文件 →→ C#编译器 →→ 程序集 →→ 本机语言
底层的库:CLR(Common Language Runtime)公共语言运行时,CTS(Common Type System)通用类型系统,CLS(Common Language Specfication)公共语言规范,CIL(Common Intermediate Language)公共中间语言,CLI(Common Language Infrastructure)公共语言基础结构

7.说说浏览器页面的渲染过程

DNS查询 →→ TCP链接 →→ HTTP请求 → 服务器响应 →→ 客户端渲染(HTML,CSS,JS)

8.说说中介模式的设计原理和应用场景

中介者模式是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,只要修改一个对象,其它关联的对象都得进行修改,如果使用中介者模式,只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行。房产中介、QQ游戏平台、聊天室、QQ群和短信平台

9.请问如何构架一个高负载的系统?

应用服务和数据服务分离,使用缓存改善网站性能,使用应用服务器集群改善网站的并发处理能力,数据库读写分离,使用反向代理和CDN加速网站响应,使用分布式文件系统和分布式数据库系统,使用NoSQL和搜索引擎,对业务拆分,建立分布式服务。

10..NET系统如何实现水平扩展、如何解决高并发问题

水平扩展:利用Nginx建立分布式系统,增加服务器,增加CPU
解决高并发问题:增加缓存、禁止用户重复操作、建立请求队列

11.说说IIS的工作原理?

对比IIS来说,它依赖HTTP.SYS的内置程序来监听外部的HTTP请求,如果请求的是一个可访问的URL,HTTP.SYS会将这个请求交给IIS工作进程,把信息保存到HttpWorkRequest中,在相互隔离的应用程序域AppDomain中加载HttpRuntime,调用HttpRuntime的ProcessRequest方法,之后就是我们的程序操作,最后返回数据流,并重新返回到HTTP.SYS,HTTP.SYS在将数据返回给客户端浏览器。

Win10下IIS配置图解MVC项目发布图解IIS添加网站图解

12.手写一个千万并发的商品秒杀功能

Redis缓存秒杀的商品ID,数量,一个请求数量减少一个,数量等于0的时候,直接返回失败,成功的数据保存到消息队列中,之后保存到数据库,秒杀的商品比较少的,直接用一个线程安全的列表就可以了。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Exceptionless(二) - 使用进阶 下一篇ABP开发框架前后端开发系列---(1..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目