.Net Framework

tomcat网络模型

孤者浪人 提交于 2020-08-17 16:49:42
一、概述 tomcat的网络模型有三种,分别是 JIO(即BIO), NIO,NIO2(即AIO)。tomcat7之前包含JIO和NIO,tomcat8之后的版本包含NIO和NIO2。tomcat7默认是JIO,tomcat8之后默认的IO是NIO。这三种IO性能上从高到低 NIO2 > NIO > JIO。下面分别对这三种IO做具体源码级的分析。 JIO API: java.net .ServerSocket、 java.net .Socket NIO API: java.nio.channels.ServerSocketChannel 、 java.nio.channels.SocketChannel 、 java.nio.channels.Selector NIO2 API: java.nio.channels.AsynchronousServerSocketChannel、 java.nio.channels.AsynchronousSocketChannel 二、JIO 流程步骤: JIoEndpoint.Acceptor 负责无线循环获取socket连接 判断是否超过最大并发 接收到socket连接请求,为socket设置自定义属性 将socket包装成 SocketWrapper 创建一个 SocketWrapper 的处理器 SocketProcessor

如何用veeam给windows服务器做备份?

天涯浪子 提交于 2020-08-17 16:48:38
1、安装veeam backup & replication console: 先在server端(存储端)安装veeam backup & replication console,可能会要求你先装.net 4.7(装.net4.7之前先安装KB2919442-x64,再安装KB2919355-x64),同时防火墙开放tcp以下端口:2502 ,6160 ,6183, 6210 ,9392, 9393 ,9395 ,9401, 10001 2、安装veeam-agent: 到client端(被备份端),安装veeam-agent,可能会要求你先装.net 4.7(装.net4.7之前先安装KB2919442-x64,再安装KB2919355-x64),同时防火墙开放tcp以下端口:2502 ,6160 ,6183, 6210 ,9392, 9393 ,9395 ,9401, 10001 3、添加client: 回到server端(存储端),打开veeam backup & replication console--backuo infrastructure---managerd servers---micrsoft windows--add server把你的client加进去。 4、创建备份计划: 回到server端(存储端),打开veeam backup &

.net core grpc单元测试

一个人想着一个人 提交于 2020-08-17 16:23:56
.net core grpc单元测试 - 服务器端 前言 gRPC凭借其严谨的接口定义、高效的传输效率、多样的调用方式等优点,在微服务开发方面占据了一席之地。dotnet core正式支持gRPC也有一段时间了,官方文档也对如何使用gRPC进行了比较详细的说明,但是关于如何对gRPC的服务器和客户端进行单元测试,却没有描述。经过查阅官方代码,找到了一些解决方法,总结在此,供大家参考。 本文重点介绍gRPC服务器端代码的单元测试,包括普通调用、服务器端流、客户端流等调用方式的单元测试,另外,引入sqlite的内存数据库模式,对数据库相关操作进行测试。 准备gRPC服务端项目 使用dotnet new grpc命令创建一个gRPC服务器项目。 修改protos/greeter.proto, 添加两个接口方法: //服务器流 rpc SayHellos (HelloRequest) returns (stream HelloReply); //客户端流 rpc Sum (stream HelloRequest) returns (HelloReply); 在GreeterService中添加方法的实现: using System; using System.Collections.Generic; using System.Linq; using System.Threading

C# winform程序怎么打包成安装项目(VS2010图解)

痴心易碎 提交于 2020-08-17 16:23:14
作为研发人员,在本机上开发的winform、wpf或者控制台程序需要发给其他人测试时候,一般需要对其进行打包生成setup安装文件,根据网上查找的资料并结合自己打包成功,记录如下: 注:本程序是一个利用winform实现的客户端程序,解决方案为 第一步, 右击 “解决方案XXX”->添加“新建项目”-》“其他项目类型”-》“安装和部署”-》“安装向导” 然后点击下一步: 这里保持默认即可 “为WIndows应用程序创建一个安装程序”-》 选择 “主输出来自**(项目名称:XXX)” ( 注意:如果有多个项目合成一个解决方案也要选择,就是都选择 主输出来自 XXX ) ——》 这里我们没有额外附件添加,所以直接点击下一步即可, “完成”即可。 到这里第一部分完成,接下来就是修改属性了 。 右击解决方案中的 setup,选择“属性”-》 第二步, 点击 “系统必备”-》 单选按钮中,选择 “从与我的应用程序相同的位置下载系统必备组件”-》确定 第三步,点击,左边 的“应用程序文件夹”-》 从右侧属性列表中,修改属性 DefaultLocation“[ProgramFilesFolder][Manufacturer]\[ProductName]”为:[ProgramFilesFolder]\[ProductName],否则安装路径不允许用户选择。 右击 ”应用程序文件夹“,点击”添加“

Asp.Net Core 发布到 Docker(Linux Centos 虚拟机,使用Dockerfile)

穿精又带淫゛_ 提交于 2020-08-17 16:19:39
实践一下 Asp.Net Core (基于.net core 2.2)部署到Docker 一、准备工作: 1. 使用Virtualbox创建一个Centos系统的虚拟机,并安装docker和vim 2. 配置好端口(如下图,后面需要使用) 3. 准备一个网站发布包(我采用的默认的Asp.Net Core MVC),windows发布时的配置(也可以在linux上进行发布),将发布包放入linux虚拟机(我的路径是:/root/Root/DefaultHttp/publish) 4. 测试一下发布包是否正常(可选,需要在linux安装.net core sdk,如果版本较低,需要使用sudo yum update命令更新) dotnet publish/DefaultHttp.dll 如图显示,是正常的 5. 创建Dockfile文件(路径:/root/Root/DefaultHttp/,即和publish文件夹同级),并把下面的代码放入文件中。 FROM mcr.microsoft.com/dotnet/core/aspnet: 2.2 WORKDIR / app EXPOSE 5000 # 一般情况下必须开放 EXPOSE 80 # 如果使用https,记得打开443端口,但是一般不用 #EXPOSE 443 COPY publish / / app ENTRYPOINT [ "

精美前端UI(VUE)界面,ASP.NET通用工作流开发分享

让人想犯罪 __ 提交于 2020-08-17 15:52:53
工作流 在IT领域算是一个老话题了,最早的工作流思想在上世纪60年代就有人提过,70年代有人开始了初步尝试,但是由于技术的限制,直到80年代才有第一批比较成功的工作流,随后工作流便逐步走向了爆发期,90年代便出现了很多类型的工作流,不过其主旨是不变的,那就是提高工作效率。 工作流在企业管理软件的开发中处于核心地位,几乎所有常用功能都需要工作流。工作流辅以权限和表单,才能构成比较完整的管理模式。 在定义上,工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。说的直白一点工作流就是封装好的一种框架,我们利用这种框架来解决需要多个人或者多个部门协同完成的某项工作。工作流基础框架有许多都是开源的,我们可以尽情的拿来学习、研究最终运用到我们的系统中。 今天和大家分享一下所负责项目流程模块开发的部分成果。 所展示前端均使用vue,截图部分分别是流程设计、流程任务、流程委托、流程监控和签章,有一个请假实例要权限和表单配合,欢迎指正。 流程设计 流程任务 流程委托 流程监控 流程签章 以上均可以直接配置,并不需要写代码,是企业级软件配置平台,.net版本目前已经升级到.net core,java版本也可以直接看demo,希望和各位技术爱好者共同交流进步,详情可以看这里: www.learun.cn . 来源: oschina 链接:

精美前端UI(VUE)界面,ASP.NET通用工作流开发分享

 ̄綄美尐妖づ 提交于 2020-08-17 15:52:19
工作流 在IT领域算是一个老话题了,最早的工作流思想在上世纪60年代就有人提过,70年代有人开始了初步尝试,但是由于技术的限制,直到80年代才有第一批比较成功的工作流,随后工作流便逐步走向了爆发期,90年代便出现了很多类型的工作流,不过其主旨是不变的,那就是提高工作效率。 工作流在企业管理软件的开发中处于核心地位,几乎所有常用功能都需要工作流。工作流辅以权限和表单,才能构成比较完整的管理模式。 在定义上,工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。说的直白一点工作流就是封装好的一种框架,我们利用这种框架来解决需要多个人或者多个部门协同完成的某项工作。工作流基础框架有许多都是开源的,我们可以尽情的拿来学习、研究最终运用到我们的系统中。 今天和大家分享一下所负责项目流程模块开发的部分成果。 所展示前端均使用vue,截图部分分别是流程设计、流程任务、流程委托、流程监控和签章,有一个请假实例要权限和表单配合,欢迎指正。 流程设计 流程任务 流程委托 流程监控 流程签章 以上均可以直接配置,并不需要写代码,是企业级软件配置平台,.net版本目前已经升级到.net core,java版本也可以直接看demo,希望和各位技术爱好者共同交流进步,详情可以看这里: www.learun.cn . 来源: oschina 链接:

学习Python

╄→尐↘猪︶ㄣ 提交于 2020-08-17 15:25:00
初次接触Python Python 解释器、安装解释器、从Print开始、编写执行代码工具 编译执行与解释执行 编译执行需要编译链接产生机器代码,再由CPU进行读取 Python不需要编译机器代码,用解释器(代码转换器转换成bytecode文件后由Python虚拟机pump执行)进行解释执行 CPU是两者的物质基础 Python 解释器种类 cpython-c Jpython-java IronPython-.net 不同操作平台(Linux、Windows、Unix、Mac OS等,x86-PC 笔记本、平板、手机、ARM平板、手机等)都能运行同样的Python 脚本(但有些平台相关性的代码不能跨平台) 从Print开始 输出字符串到控制台窗口/写代码文件 语句(statement):完成一个完整的语义的最小单元,可能是一行也可能是多行,程序的代码就是由语句组成。 print关键字:关键字是语言保留的表示特殊意义的标识字符串,不可以重新定义 Python 是大小写敏感的语言(区分大小写)Python代码在文件中必须:1、第一行语句顶到最左边,不能有空格;2、第一行语句前面可以有空行、不同语句行首要对齐。 交互式命令行执行:直接在命令窗口输入命令 代码编辑工具:IDLE/notepad++/pycharm 注:Python语言解释器由C++语言实现

爬虫系列之数据质量监控(三):kafka统一接口处理逻辑分析

对着背影说爱祢 提交于 2020-08-17 12:54:45
(二)KAFKA统一 数据 推送接口 1)非空校验 处理逻辑:除标题为空数据直接存入异常MySQL库中外,其他类型的数据直接流到数据质量校验步骤进行分析; 2)数据质量校验 主要是根据每个字段设置的校验规则,对其进行相应的校验处理。 3)二次排重处理: 由于Bloom Filte中的元素只可以添加,不可以被删除。又由于数据量较大(每天5000W左右),长时间会耗费很多内存资源,投入较大。 同时,排重库中并不需要保留所有的历史记录,比如只保留最近半年或一年的记录,如何自动清除历史记录,又成了新的问题。 所以,最后决定使用Redis的XX类型数据,利用Redis自身特性,对主键key设置自动过期时间,减少运维的难度和成本。 4)数据清洗处理 目前主要是对异常网站和特殊关键词进行清除。 处理对象:【正常】数据 5)数据矫正处理: 由于舆情系统对数据的时效性有较强的要求,为了保证数据覆盖度,减少人工补录带来的工作量,需要对发现的异常数据进行二次加工,然后推送到kafka。 处理对象:【异常】数据 标题矫正 根据数据质量校验中的五条规则,对数据进行二次清洗,然后推送到流程下一步。如果标题为空,则直接丢弃。 内容矫正 内容矫正主要分两种情况:空和非空。其各自的处理逻辑如下所示: 1)内容为空 此时进行一下处理: ① 使用URL调用正文获取接口,进行二次获取; ② 如果仍然为空

ASP.NET(C#) 面试总结面试题大全

送分小仙女□ 提交于 2020-08-17 12:47:42
一、对于 Web 性能优化,您有哪些了解和经验吗? 出现指数:五颗星 主要考点:这道题是博主在博客园的新闻里面看到的,回想之前几年的面试经历,发现此题出现概率还是比较高的。因为它的考面灰常广,可以让面试官很快了解你的技术涉及面以及这些技术面的深度。 参考答案:这个问题可以分前端和后端来说。 1、前端优化 (1)减少 HTTP 请求的次数。我们知道每次发送http请求,建立连接和等待相应会花去相当一部分时间,所以在发送http请求的时候,尽量减少请求的次数,一次请求能取出的数据就不要分多次发送。 (2)启用浏览器缓存,当确定请求的数据不会发生变化时,能够直接读浏览器缓存的就不要向服务端发送请求。比如我们ajax里面有一个参数能够设置请求的时候是否启用缓存,这种情况下就需要我们在发送请求的时候做好相应的缓存处理。 (3)css文件放 在<head>里面,js文件尽量放在页面的底部。因为请求js文件是很花费时间,如果放在<head>里面,就会导致页面的 DOM树呈现需要等待js文件加载完成。这也就是为什么很多网站的源码里面看到引用的文件放在最后的原因。 (4)使用压缩的css和js文件。这个不用多说,网络流量小。 (5)如果条件允许,尽量使用CDN的方式引用文件,这样就能减少网络流量。比如我们常用的网站http://www.bootcdn.cn/。 (6)在写js和css的语法时