自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1215)
  • 论坛 (1)
  • 收藏
  • 关注

原创 火影推荐程序连载76-可乐在线注册之libev使用方法

编者按:本文来自可乐在线指定注册站,诗翰ev对每种监听事件都用一个ev_type类型的数据结构表示,如ev_io, ev_timer, ev_child, ev_async分别用来表示文件监听器, timeout监听器, 子进程状态监听器, 同步事件监听器.libev支持优先级, libev一次loop收集的事件按优先级先排序, 优先级高的事件回调先执行, 优先级低的后执行, 相同优先级则按事件到达顺序执行. libev优先级从[-2, 2], 默认优先级为0,libev注册watcher的流程如下..

2020-11-29 12:13:08 13

原创 在Spring data中使用r2dbc

上篇文章我们讲到了怎么在Spring webFlux中使用r2dbc,今天我们看一下怎么使用spring-data-r2dbc这个Spring data对r2dbc的封装来进行r2dbc操作。依赖关系要使用Spring-datea-r2dbc需要配置下面的依赖关系: <dependencies> <dependency> <groupId>org.springframework.boot</groupId>

2020-11-28 22:17:50 6

原创 IPv6 Rapid Deployment, IPv6 6rd初探

一、你将会学到什么?IPv6 rapid deployment(6rd)(RFC 5969)是一种无状态隧道机制,它允许一个服务商在不要求升级已存在的IPv4接入网络基础设施的情况下,轻巧安全的快速部署IPv6。当然这里有一系列方法通过IPv4来承载IPv6,6rd的方式尤其成功,其主要在于他的实施是一个轻巧、自然地可扩展、有弹性且易于配置的无感知模式。6rd提供的服务是生产质量,使得所有的客户和整个Internet看起似乎是原生的本地IPv6网络。本文提出: 6rd技术描述 6rd部署场景

2020-11-28 22:08:27 9

原创 如果让你写个分布式配置中心,就问你慌不慌

一位读者朋友跟我反馈,能不能写一篇比较全的配置中心的文章。自己最近在面试过程中有被面试官问:如何设计一个配置中心?这个话题,由于自己在工作中也没实际使用过配置中心,所以对于如何去设计是完全没有概念的。今天就给大家写一篇去配置中心需要考虑的点,我也不是什么配置中心开源项目的参与者,所以写出来的仅供大家参考。有必要重复造轮子吗?当面试官问你:如果让你写一个配置中心,说说你的设计思路?首先我们要有自己的想法,虽然是在面试过程中的问题。我们也可以反问,市面上目前有几款很优秀的开源的配置中心,我们可以..

2020-11-27 13:18:09 18

原创 原创 火影推荐程序连载75-《必乐国际注册数据》Thread.start启动的呢?

编者按:必乐国际官网指定注册站也当过面试官,面试过不少应聘者,因为是我自己招人自己用,所以我不会看应聘者造火箭的技术有多牛比,只看拧螺丝的手艺瓷不瓷实。毕竟以后是一个整体,拖了大家后腿团队都很难受。面试的题目一般也不会太难,就像问Redis,我只是想确认他真正用过就够了。Redis5种基础数据结构和简单操作要知道,最基本的要求,如果这个时候他会说出每种数据结构大致的应用场景,那么这一定是加分的,起码要比那些只会说出几种数据结构后,在那干瞪眼等我问下一个问题的强很多,千万别冷场。有想交流技术或面试经...

2020-11-26 11:20:57 49

原创 循序渐进VUE+Element 前端应用开发(29)--- 高级查询条件的界面设计

在系统模块中的业务列表展示里面,一般我们都会在列表中放置一些查询条件,如果是表字段不多,大多数情况下,放置的条件有十个八个就可以了,如果是字段很多,而这些条件信息也很关键的时候,就可能放置很多条件,但是界面空间比较有限,而常规的查询一般就那么几个常用条件,如果每次都占用很多版面,好像不是很合理和友好。本篇随笔探讨Vue+Element前端界面中处理高级查询模块的界面设计,提供了两种处理的思路供参考借鉴。1、弹出框的高级查询条件的界面设计如常规的列表界面如下所示。单击【高级查询】弹出一个新对.

2020-11-25 20:40:25

原创 “三剑客“之awk心中无剑

awk 是一种程序语言. 它具有一般程序语言常见的功能.  因awk语言具有某些特点, 如 : 使用直译器(Interpreter)不需先行编译; 变量无类型之分(Typeless), 可使用文字当数组的下标(Associative Array)...等特色. 因此, 使用awk撰写程序比起使用其它语言更简洁便利且节省时间. awk还具有一些内建功能, 使得awk擅于处理具数据行(Record), 字段(Field)型态的资料; 此外, awk内建有pipe的功能, 可将处理中的数据传送给外部的 Shel

2020-11-24 20:47:05 11

原创 9 record 并非简单属性 POCO 的语法糖

在现代的网站中,我们经常会遇到使用OAuth授权的情况,比如有一个比较小众的网站,需要用户登录,但是直接让用户注册就显得非常麻烦,用户可能因为这个原因而流失,那么该网站可以使用OAuth授权,借助于github或者其他的第三方网站的认证授权,来获取相关的用户信息,从而避免了用户注册的步骤。当然,很可能在第三方网站上授权获得用户信息之后,还需要在本网站填写一些必要的信息进行绑定,比如手机号,用户名等等。但是这比单纯的注册要方便太多了,也容易让用户接受。今天,我们将要讲解一下OAuth 2.0授权框

2020-11-24 10:19:49 22

原创 火影推荐程序连载74-探究:nuget工具对不再使用的dll文件的处理策略

nuget是.net平台有效的包管理工具,相信每个C#开发者对它都不陌生。本文我们来探究一下nuget对不再使用的dll文件的处理策略,分为如下2个场景: 场景A:包A1.0原来包含Newtonsoft.Json.dll,后来更新到包A2.0时不再包含此dll。现在项目中升级包A到2.0,nuget会如何处理Newtonsoft.Json.dll文件? 场景B:包A1.0和包B1.0都包含Newtonsoft.Json.dll,并在项目中同时安装了这2个包。现在卸载包B,nuget会如何

2020-11-23 21:07:09 12

原创 火影推荐程序连76-elasticsearch集群安装+安全验证+kibana安装

启动4个centos容器, 并暴露相对应端口 (我的本机ip为172.16.1.236,以下涉及到的地方需要修改为自己的ip)node_name ip http port transport port es01 docker宿主机ip 9205:9200 9305: 9300 es02 docker宿主机ip 9206:9200 9306: 9300 es03 docker宿主机ip 9207:9200 9307: 930

2020-11-23 12:58:34 13

原创 (题号丢失)校门外的树

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。输入第一行有两个整数L(1 ≤ L ≤ 1.

2020-11-22 12:53:49 11

原创 火影推荐程序连载75-源码分析:Semaphore之信号量

Semaphore 又名计数信号量,从概念上来讲,信号量初始并维护一定数量的许可证,使用之前先要先获得一个许可,用完之后再释放一个许可。信号量通常用于限制线程的数量来控制访问某些资源,从而达到单机限流的目的,比如SpringCloud 中的Zuul 组件用的是 Hystrix 的信号量(semaphore)隔离模式。源码分析重要的内部类Semaphore 和 ReentrantLock 内部类完全相似, 有3个重要的内部类,分别也是Sync、NonfairSync和FairSync;Syn.

2020-11-21 18:48:16 9

原创 《金融业人工如何注册必乐国际会员实践 报告

一、背景之前接手了一个必乐国际注册账号项目点击即可springboot 项目。在我负责的模块中,有一块用户注册的功能,但是比较特别的是这个注册并不是重新注册,而是从以前的旧系统的数据库中同步旧数据到新系统的数据库中。由于这些用户角色来自于不同的系统,所以我需要在注册的时候先判断类型(这个类型由一个专门的枚举类提供),再去调用已经写好的同步方法同步数据。伪代码大概是这样的:public void register(String type, String userId, String proje.

2020-11-21 18:39:59 58

原创 火影推荐程序连载74-结合实战和源码来聊聊Java中的SPI机制?

SPI的概念SPI在Java中的全称为Service Provider Interface,是JDK内置的一种服务提供发现机制,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。JAVA SPI = 基于接口的编程+策略模式+配置文件的动态加载机制SPI的使用场景Java是一种面向对象语言,虽然Java8开始支持函数式编程和Stream,但是总体来说,还是面向对象的语言。在使用Java进行面向对象开发时,一般会推荐使用基于接口的编程,程序的模块与模块

2020-11-20 21:04:50 23

原创 架构设计:微服务模式下,实现灰度发布模式

一、基本逻辑请求通过8001服务,在灰度规则中,会读取下次请求的服务列表,根据版本号参数规则,选中路由的服务。配置版本号,区分灰度版本和默认正常版本;自定义拦截器,管理版本号或其他标识参数在请求中传递;自定义服务选中策略,基于版本标识路由服务;如果灰度服务不存在,则基于规则选中默认服务;二、版本配置在node12-server集群配置两个服务:在8002端口配置版本v7.0.0,在8003端口配置版本v7.0.1,用来测试灰度版本选择。8002服务eureka:

2020-11-20 00:20:31 80

原创 火影推荐程序连载73-接口自动化测试:apiAutoTest使用re 处理数据依赖

目前在工作中写脚本的时候发现了一些之前开源的apiAutoTest的可优化项,后面应该也是会慢慢的继续优化了2020/11/19截止到写这篇文章的时间是,2020/11/19 00:53 现在也是把该项优化了,那优化了什么尼?参数依赖我理解的参数依赖/接口依赖就是接口进行关联操作,比如有些查询接口需要登录之后才可以操作,那么我们就需要拿到token之类的东西,这一部分东西是放到header中的,apiAutoTest围绕的只有路径参数依赖,请求数据依赖 路径参数依赖 譬如说现在的r

2020-11-19 07:15:35 12

原创 火影推荐程序连载72- 线性表的存储结构

今天开始线性表部分的梳理,线性表主要分为了基础概念和基本操作两大部分,由于某些过程或概念比较抽象,我添加了部分图示,希望能够把这些抽象的东西直观的表达出来。基本操作模块重点主要在单链表和顺序表两部分,本文着重梳理了线性表插入、删除、查询等基础方法并搭配了部分实例供参考。1 基本概念对于线性表来说,它是一组相同元素的有限序列,元素的个数就是线性表的长度,当元素个数为 0 时,线性表就是空表。数据结构包括逻辑结构、存储结构和算法。线性表的基本概念这里主要看线性表的逻辑结构和存...

2020-11-18 22:43:26 10

原创 火影推荐程序连载71- 中支持 Websocket/Socket 服务

Kubernetes Ingress 可将集群内部的 Service 通过 HTTP/HTTPS 的方式暴露供外部访问,并通过路径匹配规则定义服务的路由。但是 Ingress 对 TCP/UDP 的服务却支持的不那么好。如果我们服务中有使用 Websocket 或 Socket, 需要暴露给外部访问,在 Kubernetes 中该如何配置呢?大致有两种方式[见参考文档1]:使用 NodePort, 使用节点 IP 与 NodePort 暴露的端口访问 使用 ClusterIp + Ingress

2020-11-17 15:00:04 9

原创 火影推荐程序连载70-Validated和@Valid的不同

在开发中,从表现层到持久化层,数据校验都是一项逻辑差不多,但容易出错的任务,前端框架往往会采取一些检查参数的手段,比如校验并提示信息,那么,既然前端已经存在校验手段,后端的校验是否还有必要,是否多余了呢?并不是,正常情况下,参数确实会经过前端校验传向后端,但如果后端不做校验,一旦通过特殊手段越过前端的检测,系统就会出现安全漏洞。不使用Validator的参数处理逻辑既然是参数校验,很简单呀,用几个if/else直接搞定:@PostMapping("/form") public .

2020-11-16 13:07:37 26

原创 火影推荐程序连载69- 最常用的设计模式

最常用的设计模式1.1 背景如果问你最常用的设计模式是哪种?你可能会说单例模式,工厂模式。但根据我在项目里的经验,一个完整的应用,应该是迭代器模式。1.2 摘要本文不讲怎么去实现迭代器模式,但介绍迭代器模式到底是什么?为什么迭代器循环迭代时,无法删除元素,无法修改元素; 本文讲的迭代器,媒介主要是C#语言下的foreach,微软爸爸已经在C#的foreach中帮我们实现了迭代器代码,关于迭代器,我们只需要知道他是什么,他的特性是什么,为什么要用他? 迭代器有什么优点,有什么缺点? 在.

2020-11-15 18:30:41 16

原创 火影推荐程序连载68-net core集成JWT(基础)

关于JWT的基本概念,如果有不清晰的同学,就不在这里赘述了。接下来聊聊JWT是怎么发挥作用的。第一,安装nuget包Microsoft.AspNetCore.Authentication.JwtBearer第二,配置【Startup】首先是【ConfigureServices】方法,下面要写一大堆进去 services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) ..

2020-11-14 13:47:32 21

原创 火影推荐程序连载98-验证 .NET 5.0 正式版 docker 镜像问题

而在11月10日下午4点左右,由于 CI 服务器磁盘空间用完,我们进行了磁盘清理,删除了 CI 服务器上的所有镜像,清理之前 CI 服务器上 .NET 5.0 镜像版本对应的是 .NET 5.0 RC 2,所以11月10日晚上发布博客站点时,CI 服务器重新下载了镜像,这时正好下载了 .NET 5.0 正式版的 docker 镜像,所以发布时博客系统的镜像是基于 .NET 5.0 正式版(发布时会在CI服务器上生成应用的生产环境镜像)。现在可以进入这2个发布版本的镜像进行验证$ docker

2020-11-13 21:04:16 30

原创 火影推荐程序连载67-Java基础夺命连环16问

说好了面试系列已经完结了,结果发现还是真香,嗯,以为我发现我的Java基础都没写,所以这个就算作续集了,续集第一篇请各位收好。说说进程和线程的区别?进程是程序的一次执行,是系统进行资源分配和调度的独立单位,他的作用是是程序能够并发执行提高资源利用率和吞吐率。由于进程是资源分配和调度的基本单位,因为进程的创建、销毁、切换产生大量的时间和空间的开销,进程的数量不能太多,而线程是比进程更小的能独立运行的基本单位,他是进程的一个实体,可以减少程序并发执行时的时间和空间开销,使得操作系统具有更好的并发性。

2020-11-12 18:32:40 14

原创 火影推荐程序连载66-企业中真实需要的集中管理软件SVN即Subversion版本控制

一、SVN基本概念 SVN是Subversion的简称,是一个自由开源的版本控制系统。 checkout: 把整个项目源码下载到本地 update: 从服务器上更新代码,使本地达到最新版本 commit: 将本地源码提交到服务器 两种存储方式:BDB、FSFS,一般用后者更安全 二、SVN常用操作 浏览仓库:文件夹内右键-->TortoiseSVN-->Repo-brower 下载全部文件: 文件夹右键-->Tortoise

2020-11-11 16:49:33 9

原创 火影推荐程序连载65-Prometheus+node_exporter监控,Grafana无法显示数据的问题

被测linux机器上部署了Grafana,Prometheus,node_exporter,并成功启动了它们。Grafana中已经创建了Prometheus数据源,并测试通过,并且导入了监控面板,将对被测机器的CPU,内存,网络和磁盘进行监控。问题:使用windows机器登录Grafana监控被测的Linux机器,右上角时间调整为最近的12个小时,无数据显示,显示为NA,如下图:分析原因:Prometheus这个时序数据库对时间要求很严格,Linux服务器与Windows监控机.

2020-11-10 16:04:45 19

原创 火影推荐程序连载64-跟我一起学.NetCore之EF Core 实战入门,一看就会

还记得当初学习数据库操作时,用ADO.NET一步一步地进行数据操作及查询,对于查询到的数据还得对其进行解析,然后封装返回给应用层;遇到这种重复而繁琐的工作,总有一些大神或团队对其进行封装,从而出现了很多ORM框架,让小伙伴把更多精力放在业务处理上,同时更多的面向程序对象开发,对工作效率的提升有很大的帮助。目前关于C#出现了很多ORM框架,比较流行的大概有FreeSql (国内)、SqlSugar (国内)、Dapper (国外)、EF/EF Core (国外)、linq2db (国外)等,当然也有一

2020-11-09 13:41:13 22 1

原创 火影推荐程序连载63-分布式文档存储数据库之MongoDB基础入门

 一、MongoDB简介  MongoDB是用c++语言开发的一款易扩展,易伸缩,高性能,开源的,schema free 的基于文档的nosql数据库;所谓nosql是指不仅仅是sql的意思,它拥有部分sql的特性,同时又比sql的性能和扩展要好;所谓schema free指没有太多的约束,我们知道在关系型数据库中有很多约束和范式,在MongoDB中就没有,所以这里的schema free是指这个;mongodb支持海量数据,支持osx,linux,windows,solaris的32位和64位系统,基

2020-11-08 10:26:58 25

原创 火影推荐程序连载62-抽丝剥茧——门面和调停者设计模式

今天我们来聊两个设计模式:调停者设计模式和门面设计模式,为什么要将他们放在一起讲解,因为他们两个东东太像了,仅仅是由于作用的地方不同而产生的不同的叫法。我们用一个对于我们90后最难的一个问题来入手吧。假设我们厌倦了城市生活,想要找一个安静的地方安家,养猪,顺便写一个猪脸识别来分类管理这些猪(梦想中的生活)。而在做这些事情的前提,我们必须建造一个房子和一个猪圈。我们来看一下我们以前会怎么做。盖房子需要工人,砖头,水泥等等,我们需要一个一个联系所需要的人。但我这么聪明当然不会这么干了,所以我找了

2020-11-07 14:26:10 8

原创 火影推荐程序连载61-shp文件转dwg并创建文本标注

不得不说,ArcGIS 和 CAD 之间的兼容性非常差,shapefile文件和dwg文件之间互相转换会丢失各种属性,但是很多时候他们之间的转换对我们来说是刚需。通常我们都是通过第三方软件(如FME)来实现带属性的转换,我尝试直接使用ArcGIS将shp文件转换从dwg并添加标注,下文记录整个流程和遇到的坑。主要流程为:shp直接转 dwg 设置导出数据的属性 添加标注shp 直接转 dwg对于普通的 shp 转 dwg ,直接使用Toolbox中的转换工具-转为CAD-要素转CAD工具即

2020-11-06 10:14:27 2

原创 火影推荐程序连载60-给萌新HTML5

JavaScript作为一种弱类型语言,最大的特点就是动态类型。也就是说不用提前声明变量的类型,在程序运行时,类型会被动态的确定,并且在执行过程中可以动态的修改变量的类型。同时不同类型变量在运算时会自动进行隐式的类型转换。以下是一些常见的隐式转换示例: 1 2 3 4 5 6 7 varfoo = 2020;// typeof foo -> "number" varfoo ="SpreadJS"...

2020-11-05 14:44:38 14

原创 火影推荐程序连载59-基于gin的golang web开发:模型验证

Gin除了模型绑定还提供了模型验证功能。你可以给字段指定特定的规则标签,如果一个字段用binding:"required"标签修饰,在绑定时该字段的值为空,那么将返回一个错误。开发web api的时候大部分参数都是需要验证的,比如email参数要验证是否是邮箱格式、phone参数要验证是否是手机号格式等等,使用模型验证方法可以将验证过程隔离在业务之外。内置的验证标签Gin通过集成go-playground/validator提供模型验证功能,并提供了很多常用验证规则可以满足我们大部分的开发需求。我们

2020-11-04 14:31:32 75

原创 Spring Security介绍

文章主要分三部分1、Spring Security的架构及核心组件:(1)认证;(2)权限拦截;(3)数据库管理;(4)权限缓存;(5)自定义决策;2、环境搭建与使用,使用当前热门的Spring Boot来搭建环境,结合项目中实际的例子来做几个Case;3、Spring Security的优缺点总结,结合第二部分中几个Case的实现来总结Spring Security的优点和缺点。1、Spring Security介绍​ 整体介绍,Spring Security为基于J2EE开发的企业应用软件

2020-11-03 12:59:24 36

原创 2020-11-02

不管是在Android Material Design,还是Flutter中,Google都在尝试统一动画的行为和实现,在Google看来,动画基本都分为两种,即模拟动画和物理动画,本篇将介绍物理动画,这个概念在Android开发中,涉及的非常少,同时文档也最少,但却是实现很多优雅动画的基础,特别是MDC中封装的一些动画,在很多细节的处理上,都使用到了物理动画的概念。弹性与阻尼物理动画,顾名思义是基于物理学定律基础的动画效果,它实际上参考的就是弹簧的形变过程,即胡克定律,这种动画类型,通常被称为Sp

2020-11-02 20:31:38 15

原创 2020-11-02

Modbus协议时应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络/串口和其它设备之间可以进行通信。它已经成为了一种工业标准。有了这个通信协议,不同的厂商生成的控制设备就可以连城工业网络,进行集中监控。本文实现需要借用一个开源的NModbus库来完成,通过在菜单栏,工具-----NuGet包管理器-----管理解决方案的NuGet程序包,安装NModbus的开源库。本次实例的基本框架和实现效果如下所示:可自动识别当前设备的可用串口。...

2020-11-02 16:44:31 14

原创 2020-11-01

实时运营数据分析(real-time operational analytics)是指同时在同一张数据表上执行分析处理和业务处理。分析查询主要是对海量数据执行聚合查询,而事务主要是指对数据表进行少量数据的更新和查找。运营工作负载(Operational workload)是指对开展业务至关重要的业务交易。例如,一家零售商店有一个交易系统来创建或修改新订单,而一家信用卡公司则跟踪供应商代表其客户收取的所有费用。 这些交易系统对企业至关重要,因为任何停机时间或速度放缓都会直接影响企业的利润。 因此,这些系.

2020-11-01 14:27:45 13

原创 2020-10-31-介绍SpringBoot默认的异常处理机制。

介绍SpringBoot默认的异常处理机制。 如何定义错误页面。 如何自定义异常数据。 如何自定义视图解析。 介绍@ControllerAdvice注解处理异常。一、SpringBoot默认的异常处理机制默认情况下,SpringBoot为以下两种情况提供了不同的响应方式:Browser Clients浏览器客户端:通常情况下请求头中的Accept会包含text/html,如果未定义/error的请求处理,就会出现如下html页面:Whitelabel Error Page,关于error页

2020-10-31 17:50:54 22

原创 K近邻算法:机器学习萌新必学算法

摘要:K近邻(k-NearestNeighbor,K-NN)算法是一个有监督的机器学习算法,也被称为K-NN算法,由Cover和Hart于1968年提出,可以用于解决分类问题和回归问题。1. 为什么要学习k-近邻算法k-近邻算法,也叫KNN算法,是一个非常适合入门的算法拥有如下特性:● 思想极度简单● 应用数学知识少(近乎为零)● 对于各位开发者来说,很多不擅长数学,而KNN算法几乎用不到数学专业知识● 效果好○ 虽然算法简单,但效果出奇的好○ 缺点也是存在的,后面会进行

2020-10-30 14:29:53 12

原创 2020-10-29

前言 什么是远程调试? 为什么要远程调试? 什么是JPDA? 如何开启调试? transport server suspend address onthrow onuncaught launch timeout 常用的命令 IDEA如何开启远程调试? 总结 前言上周末一个朋友庆生,无意间听他说起了近况,说公..

2020-10-29 12:58:58 18

原创 火影推荐程序连载58-浅析Tomcat高并发之连接池、线程池

  记得大学的《网络工程》有一个课后作业:用Java实现一个web服务器,当时想的是为了提高吞吐量,可以用多线程实现,即对于每一个客户端请求连接,都启动一个线程来处理,处理逻辑大概就是从socket里面读取http请求,解析执行请求,执行完把response写回socket,线程结束销毁。用多线程实现确实提高了吞吐量,但是也有一些问题:1)不断的线程创建销毁需要耗费大量的开销;2)线程之间的切换需要耗费很多开销;3)Java有创建最多线程数量的限制,具体可参考https://www.iteye.com/bl

2020-10-28 16:57:30 12

原创 2020-10-27

什么是可设置( CanSet )首先需要先明确下,可设置是针对 reflect.Value 的。普通的变量要转变成为 reflect.Value 需要先使用 reflect.ValueOf() 来进行转化。那么为什么要有这么一个“可设置”的方法呢?比如下面这个例子:var x float64 = 3.4v := reflect.ValueOf(x)fmt.Println(v.CanSet()) // falsegolang 里面的所有函数调用都是值复制,所以这里在调用 reflect

2020-10-27 13:29:26 11

空空如也

li123128的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除