2 qq_42606051

尚未进行身份认证

暂无相关简介

等级
TA的排名 5k+

使用内存映射开发高性能进程间消息通信组件

一、背景  项目开发中免不了各模块或系统之间进行消息通信,目前热门的消息中间件有Redis、RabbitMQ、Kafka、RocketMQ等等。以上几种组件中Redis在消息队列方面表现还可以,但是如果涉及发布订阅功能,就不行了,最近项目就使用了redis的发布订阅,每秒只能发出几千条,虽然目前绰绰有余,但是瓶颈可以预期。  其余的几种都是比较重量级的消息中间件,什么跨平台、分布式...

2019-01-07 10:26:51

Shiro安全框架【快速入门】就这一篇!

Shiro 简介照例又去官网扒了扒介绍:Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-und...

2019-01-07 10:25:30

C++重写new和delete,比想像中困难

 关于C++内存管理这话题,永远都不过时。在我刚出道的时候,就已经在考虑怎么检测内存泄漏(https://www.cnblogs.com/coding-my-life/p/3985164.html)。想用一份简单的代码,并且不太影响执行效率去实现内存泄漏检测,是不太现实的。当时觉得重写new和delete是没有太大价值的,不过后来在自己的项目中还是重写了,加了个计数。在程序退出时检测下计数new的...

2019-01-07 10:23:26

Dubbo 自定义异常,你是怎么处理的?

前言记录Dubbo对于自定义异常的处理方式.实现目标服务层异常,直接向上层抛出,web层统一捕获处理 如果是系统自定义异常,则返回{"code":xxx,"msg":yyy} 其中code对应为错误码,msg对应为异常信息 如果非系统自定义异常,返回{"code":-1,"msg":"未知错误"},同时将异常堆栈信息输出到日志,便于定位问题项目架构先来张系统架构图吧,这张图来...

2019-01-07 10:21:47

css布局 - 两栏自适应布局的几种实现方法汇总

这种两列布局的样式是我们在平时工作中非常常见的设计,同时也是面试中要求实现的高频题。很有必要掌握以备不时之需: 整理了几种实现方法,当然,风骚的代码不止这几种能实现,欢迎各位的补充。 方法汇总目录 简单粗暴float来实现 absolute"离家出走"定位过去 圣杯布局 - margin负边距 高贵优雅flex轻松搞定 table表示不...

2019-01-07 10:20:40

如何为你的 Vue 项目添加配置 Stylelint

现在已经是 9102 年了,网上许多教程和分享帖都已经过期,照着他们的步骤来会踩一些坑,如 stylelint-processor-html 已经不再维护,以及 --fix 之后 .vue 文件只剩下 <style> 部分等。我在踩完坑跑通出满意的效果后,维护一份新的指引,以备后续项目使用,顺便分享一下。为什么选择用 stylelint ?这个问题有两层含义,一是为什么要使用这...

2019-01-07 10:18:40

linux时间配置综述

一.时间类型分为:1.网络时间(设置时区,ntp服务器同步的时间)2.系统时间,当前系统所显示的时间3.硬件(RTC)时间,主板上面Bios的时间一般设置为:系统时间与网络时间同步,系统时间写入硬件时间。二.时间的查看方式:1.查看硬件时间#hwclock2.查看系统时间date3.网络时间的更新及查看#ntpdate xxxxxxxxxxxx为...

2019-01-07 10:16:13

Java8 Lambda表达式

概述lambda表达式, 是Java8中的一个新特性。可以理解为一个匿名函数。lambda表达式可以理解为将一个函数浓缩为一行代码,使代码更加简洁紧凑。lambda表达式语法:(parameters) -> statement;或(parameters) -> {statements;}参数如下:parameters:参数, 可以指定或不指定参数类型...

2019-01-07 10:14:47

传统线程同步通信技术

先看一个问题:有两个线程,子线程先执行10次,然后主线程执行5次,然后再切换到子线程执行10,再主线程执行5次……如此往返执行50次。看完这个问题,很明显要用到线程间的通信了, 先分析一下思路:首先肯定要有两个线程,然后每个线程中肯定有个50次的循环,因为每个线程都要往返执行任务50次,主线程的任务是执行5次,子线程的任务是执行10次。线程间通信技术主要用到 wait() 方法和 no...

2019-01-07 10:13:41

JVM(一)史上最佳入门指南

提到Java虚拟机(JVM),可能大部分人的第一印象是“难”,但当让我们真正走入“JVM世界”的时候,会发现其实问题并不像我们想象中的那么复杂。唯一真正令我们恐惧的,其实是恐惧本身。而作为整个JVM系列的首篇,本文将带你解除刚开始学习JVM时的种种疑惑。比如:什么是JVM?为什么学习JVM?怎么有效的学习JVM?带着以上的这些问题,让我们一起走入JVM的世界吧。一、什么是JVM?JVM简介...

2019-01-07 10:12:18

Java多线程-线程安全

1. 数据不共享的情况在探讨数据共享的话题前,先来看看数据不共享的情况,每一个线程里面的数据都是独立的,就像下面的例子,3个线程,每一个线程自己对自己的数据进行扣减,直到0为止public class TestThread { public static void main(String[] args) { MyThread myThread_A = new...

2019-01-05 16:00:45

桌面应用之electron开发与转换

一,介绍与需求1.1,介绍1. Electron简介Electron是用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。目前,Electron已被Microsoft、Facebook、Slack和 Doc...

2019-01-05 15:59:52

Selenium及Headless Chrome抓取动态HTML页面

一般的的静态HTML页面可以使用requests等库直接抓取,但还有一部分比较复杂的动态页面,这些页面的DOM是动态生成的,有些还需要用户与其点击互动,这些页面只能使用真实的浏览器引擎动态解析,Selenium和Chrome Headless可以很好的达到这种目的。Headless ChromeHeadless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下...

2019-01-05 15:54:26

数据呈现—ListView x Adapter

无论是在Mobile开发还是桌面开发上,我们都需要显示数据,Android中没有可以直接加载数据的数据网格,任何数据的显示都需要自定义布局。其中最常用的两种显示显示数据的控件,一个是ListView,另一个是RecyclerView,他们都需要借助Adapter来动态加载数据,在本节的学习中,我们会讲解如何使用ListView x Adapter的方式加载数据。ListView其实只是一个...

2019-01-05 15:53:33

微服务之:从零搭建ocelot网关和consul集群

介绍 微服务中有关键的几项技术,其中网关和服务服务发现,服务注册相辅相成。首先解释几个本次教程中需要的术语网关 Gateway(API GW / API 网关),顾名思义,是企业 IT 在系统边界上提供给外部访问内部接口服务的统一入口,简化了外部由于多服务协同完成任务时的繁琐配置。网关组件有Kong,ocelot,服务发现:通过网关访问内部各个微服务,网关要找到所需服务的过...

2019-01-05 15:52:19

一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

2019年来了,2020年还会远吗? 请把下一年的年终奖发一下,谢谢。。。回顾逝去的2018年,最大的改变是从一名学生变成了一位工作者,不敢说自己多么的职业化,但是正在努力往那个方向走。以前想的更多是尝试,现在需要考虑的更多是落地。学校和公司还是有很大的不一样,学到了很多东西。 2019年了,新年新气象,给大家宣布一下”七夜安全博客“今年的规划:1. 2019年不再接任何商业广...

2019-01-05 15:51:01

ASP.NET Core WebAPI中的分析工具MiniProfiler

介绍作为一个开发人员,你知道如何分析自己开发的Api性能么?在Visual Studio和Azure中, 我们可以使用Application Insight来监控项目。除此之外我们还可以使用一个免费工具Stackify Prefix,它允许追踪所有的Http请求, 这里有一篇博客讲解了如何使用Stackify Prefix(Scalable and Performant ASP.N...

2019-01-05 15:49:25

Bayesian Personalized Ranking 算法解析及Python实现

1. Learning to Rank 1.1 什么是排序算法  为什么google搜索 ”idiot“ 后,会出现特朗普的照片? “我们已经爬取和存储了数十亿的网页拷贝在我们相应的索引位置。因此,你输入一个关键字,我们将关键词与网页进行匹配,并根据200多个因子对其进行排名,这些因子包括相关性、新鲜度、流行度、PageRank值、查询和文档匹配的单词个数、网页URL链接地址...

2019-01-05 15:48:16

C语言入门教程-(5)格式化输入输出

1.输入和输出在程序的使用中,我们经常可以看的这么一个场景:用户需要输入数据,经过程序运算,得到结果后输出。在C语言中,输入数据和输出数据都是由库函数完成的,通过语句来输入/输出。2.格式化输出—printf()函数C语言程序运算的结果在内存中,我们需要将其输出到指定设备中,我们才可以看到数据。printf是print format的缩写,意思是“格式化打印”。“打印”的意思就是在屏幕...

2019-01-05 15:46:58

Apache Flink 数据流编程模型

抽象等级(Levels of Abstraction)Flink提供不同级别的抽象来开发流/批处理应用程序。Statefule Stream Processing: 是最低级别(底层)的抽象,只提供有状态的流。它通过ProcessFunction嵌入到DataStream API之中。它使得用户可以自由处理来源于一个或者多个流的事件DataStream/DataSet API: 在...

2019-01-05 15:45:55

查看更多

勋章 我的勋章
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得