2021 09-26

Android Kotlin协程入门

Android官方推荐使用协程来处理异步问题。以下是协程的特点: 轻量:单个线程上可运行多个协程。协程支持挂起,不会使正在运行协程的线程阻塞。挂起比阻塞节省内存,且支持多个并行操作。 内存泄漏更少:使用结构化并发机制在一个作用域内执行多项操作。 内置取消支持:取消操作会自动在运行中的整个协程层次结构内传播。 Jetpack集成:许多Jetpack库都包含提供全面协程支持的扩展。某些库还提供自己的协程作用域,可用于结构化并发。 示例 首先工程中需要引入Kotlin与协程。然后再使用协程发起网络

2021 09-26

Kafka 性能篇:为何 Kafka 这么快?

『码哥』的Redis系列文章有一篇讲透了Redis的性能优化——《Redis核心篇:唯快不破的秘密》。深入地从IO、线程、数据结构、编码等方面剖析了Redis“快”的内部秘密。65哥深受启发,在学习Kafka的过程中,发现Kafka也是一个性能十分优秀的中间件,遂要求『码哥』讲一讲Kafka性能优化方面的知识,所以『码哥』决定将这篇性能方面的博文作为Kafka系列的开篇之作。 先预告一下Kafka系列文章,大家敬请期待哦: 以讲解性能作为Kafka之旅的开篇之作,让我们一起来深入了解Kafka

2021 09-26

Windows命令行在任意位置启动和退出nginx

写在前面 本文给出Windows系统中能在任意路径下通过命令行启动和退出nginx的方法。不想看过程的读者可以直接跳转到结论,一样能解决问题。 正文 过程 很多Windows下的nginx教程都教我们先cd到nginx安装目录(即nginx.exe所在目录),再执行 startnginx 和 nginx-squit 来分别启动和退出nginx。但实测发现,在非安装目录下,执行这两条命令会失败,即使你已经为nginx.exe配置了环境变量。 本文中,ngin

2021 09-26

《DotNet Web应用单文件部署系列》三、混淆dll文件

       众所周知,C#编译后的dll文件可被反编译,网上搜索”C#反编译”会出现一大堆资料。为了提高反编译成本,我们必须对dll文件进行混淆处理。          目前,C#混淆工具很多,我推荐obfuscar,它是一款免费开源的混淆工具,配置简单,支持命令行。 一、从Github上下载Obfuscar。   Obfuscar源码:http

2021 09-26

记一次某网站生产环境CPU忽高忽低故障解决过程

感谢 感谢【一级码农】的帮助,之前也读了大佬的好多文章,一直在学习中,也没有实际操作过。这次的过程也是在大佬的指点下完成的。 现象描述 从周六上午开始,陆续收到服务器CPU高的报警短信,到下午已经累计三十多条报警了,看来确实得分析一下原因了。打开云监控,与实际情况一致,CPU居高不下 通过进程,很快锁定是哪个应用,是一个car系统造成的car系统的版本是.net4.0 分析过程 通过以下命令,抓包,命令解释,当CPU超过50%时,持续三秒,抓两个包。进程ID是6100。进程ID在任务管理器中可以

2021 09-26

没想到 TCP 协议,还有这样的骚操作。。。

大家好,我是小林。 昨晚有位读者问了我这么个问题: 大概意思是,一个已经建立的TCP连接,客户端中途宕机了,而服务端此时也没有数据要发送,一直处于establish状态,客户端恢复后,向服务端建立连接,此时服务端会怎么处理? 看过我的图解网络的读者都知道,TCP连接是由「四元组」唯一确认的。 然后这个场景中,客户端的IP、服务端IP、目的端口并没有变化,所以这个问题关键要看客户端发送的SYN报文中的源端口是否和上一次连接的源端口相同。 1.客户端的SYN报文里的端口号与历史连接不相同 如果客

2021 09-26

mybatis多条件多值批量更新

mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现。 这里使用了case when 这个小技巧来实现批量更新。 举个例子:   UPDATE表名SET   display_order=CASEid       WHEN1THEN3       WHEN2THEN4  &

2021 09-26

GIS应用|快速搭建REST地图服务

SuperMapOnline云存储作为您的“在线GIS云盘”,除了可以在云端存储GIS数据,还可以将数据直接发布多种REST服务,为您节省购买和部署SuperMapiServer的大量财力和时间成本,将数据和服务进行安全稳定的托管。 发布为REST地图服务的数据,可以通过少量代码开发来实现地图叠加、底图切换等功能,快速打造地图展示平台。下面小编将带领大家快速玩转REST地图服务!   地图叠加+底图切换(点击下方“阅读原文”可在线查看,文章下方还提供可下载示例代码的百度云链接哦~)

2021 09-26

NetCore5实现https请求

前言 本文主要介绍在NetCore5中,实现证书加载和https访问请求。 证书准备 首先我们先创建一个自定义的证书Kiba518.pfx。 证书创建参考:最通俗易懂的RSA加密解密指导。 然后将证书放到输出目录的根目录中,如下图: 代码编写 首先新建一个NetCore5的项目——WebTest。 然后编写Program.cs文件,代码如下: publicclassProgram { publicstaticvoidMain(string[]args) { CreateHostBuilder

2021 09-26

Elasticsearch、XXLJob以及最近的学习记录

Elasticsearch、XXLJob以及最近的学习记录 前言 在这九月的最后一周,来总结一下最近的学习记录,主要是对于Elasticsearch、XXLjob的初步学习,想着还是多记录点,以便后面去看看,具体的错误认知点在哪,以及找到一些自己的认识点。 后台数据脱敏 一、普通方式 首先该功能是基于SpringBoot项目做的,所以这是一个简单的流程。具体实现:首先设定一个角色code,比如“涉密人员”“secret”;通过登录时获取token中的用户名然后通过用户名去获取他的角色co