-
DDD深入浅出
为什么我们要了解ddd?作为一个开发者,我们肯定接手过其他的人的项目。我想你一定有个这样的经历:面对冗杂的系统,模块彼此关联,没有人能描述清楚每个细节,没有文档,即使有文档也和系统对不上。当新需求需要修改一个功能时,往往光回顾该功能涉及的流程就需要很长时间,更别提修改带来的不可预知的影响面。于是 RD 就加开关,小心翼翼地切流量上线,一有问题赶紧关闭开关。面对此般场景,你要么跑...
-
Java教程:Java Float类
Float类在对象中包装了一个基本类型float的值。Float类对象包含一个float类型的字段。此外,该类提供了多个方法,能在float类型与String类型之间互相转换,同时还提供了处理float类型时比较常用的常量和方法。Float类的构造方法Float类中的构造方法有以下3个。Float(double value):构造一个新分配的Float对象,它表示转换为floa...
-
高并发,你真的理解透彻了吗?
高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。在过往的面试中,如果候选人做过高并发的项目,我通常会让对方谈谈对于高并发的理解,但是能系统性地回答好此问题的人并不多。大概分成这样几类:1、对数据化的指标没有概念:不清楚选择...
-
Vuex 学习笔记
1.1 vuex的核心概念State (驱动应用的数据源)Mutation (以声明方式将 state 映射到视图)Action(响应在 view 上的用户输入导致的状态变化)Getter (对 Store 中的数据进行加工处理形成新的数据)1.1.1 Startstart 提供唯一的公共数据源,所以共享的数据要统一放到Store 的 Stare 中进行存储。// 创建 sto...
-
微软终于放弃了Electron了
微软最近宣布,他们的 Teams 活跃用户已经达到了惊人的 2.5 亿。不是 Word 或 Excel,而是 Teams,它是Microsoft Office 套件的摇滚明星。但是,它一直受到性能问题的困扰,因为它消耗了大量的系统资源。在内存较少的计算机上运行 Teams 是一场噩梦。微软 Teams 的高级副总裁宣布,Teams 将转向他们自己的 Edge Webview2 ...
-
基于 Mysql 实现一个简易版搜索引擎
前言前段时间,因为项目需求,需要根据关键词搜索聊天记录,这不就是一个搜索引擎的功能吗? 于是我第一时间想到的就是 ElasticSearch 分布式搜索引擎,但是由于一些原因,公司的服务器资源比较紧张,没有额外的机器去部署一套 ElasticSearch 服务,而且上线时间也比较紧张,数据量也不大,然后就想到了 Mysql 的全文索引。简介其实 Mysql 很早就支持全文索引了...
-
MySQL 时间类型 datetime、bigint、timestamp选哪个?很多人答错了
数据库中可以用datetime、bigint、timestamp来表示时间,那么选择什么类型来存储时间比较合适呢?前期数据准备通过程序往数据库插入50w数据数据表:CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time_date` datetime NOT NULL, `time_time...
-
前后端数据交互(四)——fetch 请求详解
fetch 是 XMLHttpRequest 的升级版,使用js脚本发出网络请求,但是与 XMLHttpRequest 不同的是,fetch 方式使用 Promise,相比 XMLHttpRequest 更加简洁。所以我们告别XMLHttpRequest,引入 fetch 如何使用?一、fetch介绍fetch() 是一个全局方法,提供一种简单,合理的方式跨网络获取资源。它的请...
-
Linux 5.14正式发布 提供新硬件兼容性、核心调度、秘密内存区域支持
正如预期的那样,Linus Torvalds今日将Linux 5.14晋升为稳定版,在精彩的2021年秋季Linux发行版大量出现之前提供最新的功能、硬件支持和其他改进。您可以在本文参阅Linux 5.14功能列表,了解这个新内核版本的全面变化。Linux 5.14带来了新的硬件支持,改进现有的功能,并加入了其他新的内核创新。Linux 5.14的一些亮点包括核心调度支持、ME...
-
MongoDB 5.0 新特性速览
前言:7 月 13 号, MongoDB 发布了大版本 5.0。本文由社区成员肖贝贝在14号发布于知乎上,他选择了一些亮眼的特性介绍给大家。文末我们还给大家介绍了两个MongoDB岗位,以及MongoDB 5.0 新特性在线研讨会入口,欢迎关注!时序集合: 版本核心功能在创建集合时, 可以指定此集合为时序集合, 一个创建命令如下: db.createCollection( ...
-
如何搭建WebRTC信令服务器
1.WebRTC后台服务:通话的房间服务器(Room Server)房间服务器是用来创建和管理通话会话的状态维护,是双方通话还是多方通话,加入与离开房间等等,我们暂时沿用Google部署在GAE平台上的AppRTC这个房间服务器实现,该GAE App的源码可以在github.com上获取.该实现是一个基于Python的GAE应用,我们需要下载Google GAE的离线开发包到我...
-
three.js之模型区域选中方法
今天从ui那边拿到一个城镇模型,样子长这样的3d模型要实现的效果是选择这个模型中的某个房子,实现交互。效果如下交互效果导入模型和可能遇到的问题模型太大了在视图中调试半天也不出现。可以对模型的大小进行了缩放,并且通过计算xyz的最远和最近的2点确定中心点,将模型放置在视图的中心位置。核心代码如下:objLoader.load('./obj/house.obj', function...
-
关于RPC不可不知的“坑”
RPC,全称是远程过程调用(Remote Procedure Call),是一种常用的Client-Server间的通信方式。早在上个世纪70年代这一概念就被提出来了,后来虽然经过不断地演进,但它的基本思想没有发生太大的变化,那就是屏蔽底层的网络细节,使得对远程服务的网络请求看起来就像是对一个相同进程内的函数调用一样。然而理想是丰满的,现实是骨感的。尽管RPC的愿景看起来很诱人...
-
从一次netty 内存泄露问题来看netty对POST请求的解析
背景最近生产环境一个基于 netty 的网关服务频繁 full gc观察内存占用,并把时间维度拉的比较长,可以看到可用内存有明显的下降趋势出现这种情况,按往常的经验,多半是内存泄露了问题定位找运维在生产环境 dump 了快照文件,一分析,果然不出所料,在一个 LinkedHashSet 里面, 放入 N 多的临时文件路径可以看到,该 LinkedHashSet 是被类 Dele...
-
如何用研发流程搞垮一个团队?
管理大师德鲁克说过:“有所成就的人,都从最重要的事情做起。而且,一次只做一件事情。”对于大师的观点,K哥是非常认同的,不仅认同,我还是一个认真实践的人,简称“践人”,其实不要脸这事如果干得好,这就叫心理素质过硬。我专注搞垮团队这件事20年,先后搞垮过10几个团队,不能说有多么高的成就吧,我只是一个平平无奇的搞垮小天才。反观自己的内心、总结过往,我分别从研发流程、组织架构、开发工...
-
开箱即用!看看人家的微服务权限解决方案,那叫一个优雅
前置知识我们将采用Nacos作为注册中心,Gateway作为网关,使用Sa-Token提供的微服务权限解决方案,此方案是基于之前的解决方案改造的应用架构还是和之前方案差不多的思路,认证服务负责登录处理,网关负责登录认证和权限认证,其他API服务负责处理自己的业务逻辑。为了能在多个服务中共享Sa-Token的Session,所有服务都需要集成Sa-Token和Redis。micr...
-
一次订单号重复引起的事故,可把我给坑惨了
我们线上出了一次事故,这个事故的表象是这样的:系统出现了两个一模一样的订单号,订单的内容却不是不一样的,而且系统在按照订单号查询的时候一直跑错,也没法正常回调,而且事情发生的不止一次,所以这次系统升级一定要解决掉。经手的同事之前也改过几次,不过效果始终不好,总会出现订单号重复的问题,所以趁着这次问题我好好地理了一下我同事写的代码。这里简要展示下当时的代码:/** * OD单号...
-
Node的Request对象
在向服务器发送请求时,Node会帮助我们封装Request对象,Request对象携带了客户端向服务端传递过来的所有信息,如本次请求的URL、请求方式Method与请求的headers等信息。const http = require('http') const server = http.createServer((req, res) => { // request...
-
.NET 6 新特性 WaitAsync
.NET 6 新特性WaitAsyncIntro在 .NET 6 里新增加了一个 WaitAsync 的方法,用来异步地等待一个任务完成,异步等待的时候可以指定一个 Timeout 时间或者一个取消令牌 CancellationToken,在之前的版本中只有一个同步的 Wait 会等待任务的完成,不支持比较好的任务超时或取消处理,如果要实现的话要自己写扩展,很多开源项目甚至微软...
-
从SSO出发谈谈登录态保护
抛砖引玉在文章开始前,先看看一个常见的情况在集团内进行开发时,通常会遇到不同组之间的合作,如果是同一个组的前后端,因为交互请求都是在同一个「域」内发生的,所以一般不会存在跨域问题。但如果未做处理,直接从 a.alibaba.com 请求 b.alibaba.com 的接口,就会出现跨域的问题,这是因为浏览器对于不同域请求的限制问题,其实跨域的问题很好解,只要设置了正确的请求头即...
-
Feign接口实现上传多个文件的坑
前言这段时间需要做一个公共的上传文件资源的服务,可以通过前端直接调用上传文件;还有需求可以通过后台服务通过Feign接口方式 ,调用上传文件资源服务。在这过程中,遇到了一些问题,老顾在这里留个tag,避免小伙伴们也遇到相似的问题流程上面流程是常规的上传文件的2种方式,我们下面先来看看,正常的代码代码后台文件服务文件服务支持单个文件,以及多个文件上传Feign接口通过feign接...
-
企业级技术中台微服务架构Eurynome Cloud简介
企业级技术中台微服务架构与服务能力开发平台Eurynome Cloud是一款企业级微服务架构和服务能力开发平台。基于Spring Boot 2.5.4、Spring Cloud 2020.0.3、Spring Cloud Alibaba 2021.1、Nacos 2.0.3 等最新版本开发,遵循SpringBoot编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、...
-
Netty对Executor实现机制分析
ThreadPerTaskExecutorThreadPerTaskExecutor每一个任务的执行器(代理和命令模式)线程解耦(执行线程和创建线程)public final class ThreadPerTaskExecutor implements Executor { //定义一个私有的线程工厂 private final ThreadFactory thr...
-
统一认证授权平台keycloak初体验
上一篇文章简单介绍了Keycloak,反响不错。看来大家都对这个东西感兴趣,今天就来进一步的体验Keycloak,让我们对它有一个直观的认识,然后逐步深入,把它的设计理念和概念各个击破。总体思路因为事先已经知道Keycloak提供了Spring Security的适配器。先独立把Keycloak的核心概念弄清楚,然后再去研究它如何结合Spring Security的。安装Key...
-
基于spring-data 实现mongodb changestream
最近项目要求对mongodb的数据变更操作记录操作日志,首先想到的是基于spring的AOP对变更的接口进行拦截处理,由于调用接口的点很多不是很方便的去梳理,考虑使用mongodb的CDC机制,实时监控数据的变更。首先是springboot集成mongodb,mongdb需要是3.6以上的版本才能支持changestream<parent> <grou...
-
终于解决好友置顶硬伤 微信新版详细体验
新版微信来了,微信安卓版终于用上了iOS版中早就更新的一个功能,此外还带来了视频封面、边写边译功能,赶紧来看看吧。重点关注的好友和群必须置顶,但是置顶的好友太多,又导致混乱。现在好了,当你微信置顶好友超过10个时,会自动出现“折叠置顶聊天”提示,点击后就可以将置顶聊天折叠收纳起来。置顶好友折叠 界面更清爽不过折叠置顶聊天时用户的置顶聊天群有设置为免打扰的,将不会被折叠...
-
BPM引擎Activiti6.0任务撤回实现方法
当前使用的BPM引擎为Activiti6.0,客户需求是流程发起人能将整个流程撤销,对于某个流程节点,办理人可以撤回已经办理的任务,同时前提是该任务节点的下个节点未被办理。1、流程撤销首先说下发起人对整个流程的撤销,直接删除流程,传入流程实例ID,结束一个流程。执行此方法后,流程实例的当前任务act_ru_task会被删除,流程历史act_hi_taskinst不会被删除,并且...
-
面试官:你说说一条更新SQL的执行过程?
在上一篇《面试官:你说说一条查询SQL的执行过程?》中描述了Mysql的架构分层,通过解析器、优化器和执行引擎完成一条SQL查询的过程,那这一篇续上继续说明一条更新SQL的执行过程。对于一个SQL语句的更新来说,前面的流程都可以说类似的,通过解析器进行语法分析,优化器优化,执行引擎去执行,这个都没有什么问题,重点在于多了一点东西,那就是redo_log、undo_log和bin...
-
CKEditor 4.16.2 发布,修复浏览器兼容性问题
CKEditor 4.16.2 维护版本已发布。此版本是一个维护版本,更新内容包括修复安全问题、修复浏览器兼容性问题、升级与 React 的集成,以及修复其他重要问题。修复安全问题修复了剪贴板插件中的安全漏洞 (CVE-2021-32809),该漏洞会引起出现滥用粘贴功能(使用格式错误的 HTML )的情况,进而导致将任意的 HTML 注入编辑器。此外,在 Widget 插件中...
-
SpringBoot数据源配置原理
在数据库访问过程中,“数据源”无疑是最重要的概念之一,它不仅可以对与数据库访问相关的各种参数进行封装和统一管理,还可以管理数据库连接池,提高数据库连接性能。目前,在市面上有很多优秀的开源数据源,例如DBCP、C3P0、Druid、HikariCP等等。在SpringBoot2.x中,则采用目前性能最佳的HikariCP作为其默认数据源。接下来,我们就来具体介绍下SpringBo...