Wesley13 Wesley13
3年前
Java获取HttpServletRequest真实的调用ip
有时候我们需要获取Http请求的源IP,但由于有着各种代理,与反向代理,还有代理请求头标准的缺失,导致我们想拿到真正的ip变得更加困难。这篇文章来总结下一个目前可行的比较全面的通用方法。首先,真实调用的ip,应该不是内网ip,并且考虑到客户端多样性,我们从通用的Header出发,并也考虑各种常见客户端的自定义Header。验证IP有效
Easter79 Easter79
3年前
STM32 实现内部Flash的读写(HAL库版)
  Flash中文名字叫闪存,是一种长寿命的非易失性(断电数据不丢失)的存储器。可以对称为块的存储器单元块进行擦写和再编程,在进行写入操作之前必须先执行擦除。一个NandFlash由多个块(Block)组成,每个块里面又包含很多页(page)。每个页对应一个空闲区域/冗余区域(sparearea),这个区域不是用来存储数据的,用于放置数据的校验值检测和
Wesley13 Wesley13
3年前
AI岗位面试“滑铁卢”?5周时间,面试官手把手带你刷题!
人工智能是神秘的,同时也是变革性的,随着技术的发展,研究和应用人工智能技术的人原来越多,但是人工智能领域人才供需极不平衡,据央视报道,预计我国人工智能产业内有效人才缺口达30万,薪资方面,AI相关职业的起薪在30~40万,特别优秀的人没有封顶。但是在大部分人求职的过程中,屡次被拒,一直没能达到心仪的大厂高薪offer,不禁
Stella981 Stella981
3年前
SpreadJS 纯前端表格控件应用案例:集成 Odoo 提升企业ERP表格功能
Odoo是全球流行的开源企业管理套件,其功能涵盖了CRM、销售、采购、库存管理、生产制造、质量管理、HR全功能、财务管理、项目管理、PLM等一系列完善的企业信息化需求。将SpreadJS与Odoo集成,既打通了企业ERP内部各流程管理功能,还提升了表格的数据传输和可操作性。下面,让我们一起来看看SpreadJS与Odoo集成后,是如何提升企业E
Stella981 Stella981
3年前
FastCFS同步复制机制简介
  上一篇文章介绍了FastCFS采用数据分组的做法,一个数据分组的几个节点(如三个节点即三副本)之间是Master/Slave关系;FastCFS采用数据强一致模型,通过Master/Slave结构的同步复制机制来保证数据一致性,本文将概要介绍这一机制的原理和关键点。  和单机系统相比,分布式系统因网络通信方面存在较大不确定性,要做到数
Wesley13 Wesley13
3年前
VC++ 函数指针实现被动传输数据
    在使用VS2010开发项目时,经常需要实现一些动态的DLL库的开发,其在开发过程中,需要dll能自动调用回调函数,实现数据传输。因此,在项目中,需要使用到函数的指针,函数的指针能很好的解决该问题。下面采用socket的通信为例。    在我们认知的socket的通信模型中,其采用cs经典模型,为了使我们的代码具有更好的可移植复用性,一般讲,s
Easter79 Easter79
3年前
Swoole2.0内置协程并发测试
Swoole2.0是一个革命性的版本,它内置了协程的支持。与Go语言协程不同,Swoole协程完全不需要开发者添加任何额外的关键词,直接以过去最传统的同步阻塞模式编写代码,底层自动进行协程调度实现异步IO。使并发编程变得非常简单。最新的版本中,内置协程已支持PHP7,同时兼具了性能和并发能力,Swoole的强大超乎想象。本文基于Github最新的Sw
Stella981 Stella981
3年前
Apache Ignite基线拓扑释疑
Ignite项目刚开源时,它被定义为一种纯粹的内存解决方案:一种分布式缓存,可将数据放入内存以加快访问速度。但随后在2017年推出了Apache®Ignite™2.1版本,它首次发布了Ignite的原生持久化模块,让Ignite可以作为一个完整的分布式数据库。从那以后Ignite就不再依赖于外部持久性存储机制,以及随之而来的数据库配置和管理问题。Igni
Wesley13 Wesley13
3年前
Java多线程之死锁编码及定位分析
目录死锁是什么代码实现死锁解决办法1\.死锁是什么死锁是指两个或两个以上的进程在执行过程中因争夺资而造成的一种互相等待的现象,若无外力干涉那它们都将无法推进下去,如果系统资源允是,进程的资源请求都能够得到满是,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。2.代码实现代码实现import
Wesley13 Wesley13
3年前
#pragma命令详解
每种C和C的实现支持对其宿主机或操作系统唯一的功能。例如,一些程序需要精确控制超出数据所在的储存空间,或着控制特定函数接受参数的方式。pragma指示使每个编译程序在保留C和C语言的整体兼容性时提供不同机器和操作系统特定的功能。编译指示被定义为机器或操作系统特定的,并且通常每种编译程序是不同的。语法:pragmatoken\_strin