- 博客(335)
- 资源 (23)
- 问答 (5)
- 收藏
- 关注
原创 在Chrome浏览器中打开抗量子加密功能
Chrome 116提供了一些新的功能,其中包括了对于抗量子算法Kyber的支持,用户可以通过以下的步骤打开:1.在浏览器中输入:2.将3.打开:进行测试:
2024-04-01 16:41:49
2024
原创 SOFT_RoCE环境搭建
然后进行用户态配置,其中rxe_0是你希望的RDMA的设备名,可任意取名。ens33为Soft-RoCE设备所绑定的网络设备名,也就是我们刚才ifconfig看到的网卡名,每个虚拟机可能都不一样。从外到内依次是:物理层-->以太网链路层-->IPv4网络层-->UDP传输层-->IB传输层-->数据。可以看到例子中使用的是RC类型的连接,进行了SEND操作。ibverbs各厂商用户态驱动(包括RXE)如果是m或者y,表示当前内核支持RDMA。ibverbs动态链接库。
2023-03-13 20:30:46
1174
原创 阿里HPCC算法简介
HPCC(高精度拥塞控制)基于INT(带内遥测)技术,可以非常精确的获取网络的拥塞状态,能够实现快速的收敛以及利用带宽,并通过实现“零队列”来实现超低的延迟,下面将主要分拥塞感知和拥塞控制两个部分来对这个算法进行解读。
2023-03-08 20:48:58
1404
翻译 SDN与NFV之战
前言在过去的20年中,网络出现了缓慢而有条不紊的变革步伐,每套新技术应运而生,有序地超过了前一代。但是今天,两种新技术,即软件定义网络(SDN)和网络功能虚拟化(NFV),准备通过将网络从物理变为虚拟来真正颠覆这一步伐。在企业市场中,关于这两者之间的差异似乎有很多争议,通常人们将两者进行比较,并极力推崇其中的一种。如果您想对比这两种新兴的网络方法到底孰优孰劣,那么您来错了地方。SDN和NFV彼此有很多共同点。实际上,两者可以共存于相同的网络环境中,并具有许多相同的特征和组件。主要的不同点在于出发点以
2020-11-21 18:43:43
880
原创 Retrofit使用简介
相信做过移动端开发的同学一定会知道Retrofit这个强大的开源Http框架,其底层基于OKHTTP框架,并提供了适配器CallAdapter以及数据转换器Converter等功能,下面将通过一个简单的例子来讲解一下其使用方法:首先需要导入相关的依赖:implementation('com.squareup.retrofit2:retrofit:2.4.0')implementation('com.squareup.retrofit2:converter-gson:2.4.0')新建一个..
2020-08-30 18:57:59
426
原创 项目构建神器之Gradle
1.前言在Spring Boot 2.3.0版本之后,官方就将构建工具从Maven转为Gradle,主要的目的是加快项目的构建速度,因此我们这些普通“搬砖党”也不能落后呀,下面将从0开始搭建一个基于Gradle的分模块项目:2.实验环境JDK版本 11 SpringBoot版本 2.3.2.RELEASE Gradle版本 6.3 3.详细步骤首先,需要明确,我们需要创建一个父模块,在这个父模块中又包含:rest,service,d...
2020-08-02 20:20:47
422
原创 Netty源码阅读之NioEventLoop简析
在Netty中NioEventLoop以及NioEventLoopGroup是很重要的两个类,而NioEventLoopGroup主要是对NioEventLoop进行管理;首先来看一下这两个类的关系图(错综复杂): 图 11. NioEventLoopGroup初始化流程通过分析NioEven...
2020-06-25 21:08:15
513
原创 Netty源码阅读之编码器简析
上回主要聊了一下Netty中的解码器,那么既然有解码,必须也必须得聊下编码过程了,下面将对Netty中的编码器作一下总结:1.编码器简介作为解码的逆过程,编码的目的主要是将消息转换为字节或者消息,Netty中主要使用了MessageToByteEncoder这个抽象类来规定处理编码的一些流程,不妨先来看下该类的UML:可以看出编码器其实也只是一类特殊的ChannelHandler,使用encode()方法来处理编码相关的逻辑,不妨先自定义一个编码器然后写一段demo:1.1...
2020-06-07 16:46:09
574
原创 Netty源码阅读之解码器简析
通过网络传输过来的数据,需要通过netty中的解码器进行处理,其中抽象类ByteToMessageDecoder中定义了相应的处理方法。不妨先来围观下该类的继承关系:由上图可以明白,该类实现了ChannelHandler这个接口,所以,说到底,解码器就是一个特殊的handler而已。查看channelRead()方法:public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
2020-05-26 00:07:08
496
原创 Netty源码阅读之ByteBuf简析(二)
前面对于Netty中的ByteBuf缓存做了一下简单的介绍,下面将围绕源码,对于其中的几个特性进行分析。1.扩容机制首先来聊下Bytebuf的扩容机制,这个机制也是Netty比较强悍的地方,而我们知道JDK自带的ByteBuffer是无法扩容的,在Bytebuf创建的时候,我们通常会设置一个初始容量,在我们写数据的时候,如果写指针超过了设置的初始容量,那么Bytebuf将进行扩容,废话不多说,下面我们直接通过源码来一探究竟吧:public ByteBuf writeBytes(ByteBuf
2020-05-10 22:09:35
721
原创 Netty源码阅读之ByteBuf简析(一)
在Netty中ByteBuf主要是用于数据的中转,底层IO将数据读取到ByteBuf,之后传输给应用程序;而应用程序在处理完之后将数据封装成ByteBuf发送给底层IO。在介绍ByteBuf具体的实现之前,让我们先来查看一下相关类的关系图:...
2020-05-05 22:07:55
408
原创 Netty源码阅读之事件传输机制的简要分析
前面提到,ChannelHandler可以用来处理inBound以及outBound事件;而inBound以及outBound事件的流转也是Netty中比较重要的一环;下面,将对Netty源码中对事件的传输机制进行简要的分析:在Netty的事件传播过程中,总共有两种的传播方式,第一种方式是调用pipeline进行传播,另外的一种是直接以pipeline中的某个Context作为起始进...
2020-04-19 19:32:31
801
1
原创 Netty源码阅读之Pipeline中添加以及删除ChannelHandler流程总结
1.简要介绍 首先,ChannelHandler主要的作用是用来处理inbound或者outbound事件,调用者可以通过ch.pipeline().addLast()来进行添加,我们可以通过一张经典图例来认识一下ChannelHandler、pipeline、以及ChannelHandlerContext之间的关系: 通过上图,我们知道,Channel以及pipel...
2020-04-04 22:04:41
767
原创 Netty源码阅读之Pipeline初始化流程
1.Pipe的创建时机Pipe的创建是在AbstractChannel类的构造函数中完成的:protected AbstractChannel(Channel parent) { this.parent = parent; id = newId(); unsafe = newUnsafe(); pipeline = newC...
2020-03-29 19:34:25
441
原创 使用Hutool 工具库导出Excel表格
Hutool是Hu + tool的自造词,前者致敬我的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,...
2020-03-14 20:00:10
18597
1
转载 Google guava新集合类型汇总整理
Google guava新集合类型汇总整理1.使用说明1.1 Multiset1.2 SortedMultiset1.3 Multimap1.4 ListMultimap1.5 SetMultimap1.6 BiMap1.7 ClassToInstanceMap1.8 Table原文地址:1.使用说明Guava中新定义的集合类型有以下的几种:1.1 Multiset首先是Multiset...
2019-11-16 12:18:28
891
1
转载 关于DDD领域驱动设计的理解
转载自:点击这里当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决。比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品。所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的。再比如,我是一家互联网公司,公司有很多系统对外提供服务,面向很多客户端设备。但是最近由于各种原因,导致服务经常...
2019-09-22 22:47:59
569
原创 javassist简单介绍以及如何使用它来实现lombok的功能
最近在学习MyBatis的源码,在阅读的过程中,发现有一个叫做javaassist的工具,查阅了一些资料,这个工具和ASM的功能类似,可以直接修改Java的字节码文件,而ASM要更偏向底层一些。下面我们通过一个例子来学习其使用方法:public class Run { public static void main(String[] args) { Class...
2019-07-10 23:59:16
888
转载 Java 11 新特性介绍
原文地址Java 11 已于 2018 年 9 月 25 日正式发布,之前在 Java 10 新特性介绍中介绍过,为了加快的版本迭代、跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个大版本,每个季度发布一个中间特性版本,并且做出不会跳票的承诺。通过这样的方式,Java 开发团队能够将一些重要特性尽早的合并到 Java Release 版本中,以便快速得到开发者的反馈...
2019-06-12 23:25:32
24078
1
原创 Angular6.x 实战开发总结
最近的一段时间,撸了一些前端的东西,对于前端开发有了一些新的认识,下面主要针对Angular(主要是2.0以后的版本)这个开发框架来对前端的知识点进行一些简单的总结:1. 实现返回功能:private goBack() { this.router.navigate(["../controllerinfo"], { relativeTo: this.r...
2019-05-14 19:38:54
717
1
转载 Elasticsearch-基础介绍及索引原理分析
本文转载自:http://blog.pengqiuyuan.com/ji-chu-jie-shao-ji-suo-yin-yuan-li-fen-xi/最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elasticsearch感兴趣/想了解的同学有所帮助。 ...
2019-03-31 23:45:13
409
原创 初识Spring Cloud--Spring Cloud Bus在服务配置中心的简单应用
前面对配置中心进行了讲解,我们可以很明显的感受到使用spring cloud在处理配置方面的便捷性,然而,当托管到git等工具上的配置一旦发生变化,若采用前面的架构我们的每一个客户端都需要发送一遍请求,这势必会照成一些问题,这时候,spring cloud bus横空出世了。下面,我们直接进入正题,通过一个简单的例子来进行测试:首先,我们需要做一些准备的工作:安装zookeeper和kaf...
2019-03-31 12:19:54
288
原创 spring boot 2.1.x整合jersey遇到的坑
由于最近的开发需要用到这个框架,所以打算重新学习下,但是spring boot的版本升级了,导致了依赖方面一些问题,应用老是起不来,没想到这个还是spring boot的bug...这里记录一下:首先来看一下相关的依赖:<dependencies> <dependency> <groupId>org.springframework.boot&...
2019-01-01 13:34:19
1829
转载 全面了解Nginx到底能做什么
原文链接前言本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得。所以还请见谅,同时欢迎留言交流Nginx能做什么1.反向代理2.负载均衡3.HTTP服务器(包含动静分离)4.正向代理以上就是我了解到的Nginx在不依赖第三方模块能处理的事情,下面详细说明每种功...
2018-12-23 12:26:13
320
1
原创 初识Spring Cloud--分布式配置中心实践
在一个分布式的微服务集群中,各个服务的数量可能有成百上千,管理成本将非常大,这时候就迫切需要一个统一的配置和管理中心,spring cloud就提供了一套集中式的配置中心方案,下面是配置中心的示意图:依照上边的原理图,我们首先来实现config-server,也即配置中心的服务端:创建项目sc10,导入相关的依赖:<dependency> <grou...
2018-12-15 23:25:51
367
原创 初识Spring Cloud--微服务网关实现之zuul
在spring cloud中,zuul主要担任服务网关的角色(现已被Spring Cloud Gateway所取代),可以将外部的请求分发到不同的微服务上去,官网上有一张图片,可以直观的展示zuul的功能,其中的API Gateway便是今天的主角--zuul。为了使用这个服务网关功能,首先,我们需要创建一个新项目sc09,并指定端口号为8996,设定服务名称为service09。要使...
2018-12-14 23:01:53
352
原创 初识Spring Cloud--利用Hystrix实现服务的熔断及降级
在分布式的系统中,服务与服务之间有可能会存在依赖的情况,这时候就会出现一些问题,比方说服务A依赖于服务B,服务B又依赖于服务C,这个时候如果服务C出现了问题,那么久而久之服务B也会也会逐渐被服务C“拖垮”,进而,服务A也会逐渐出现问题(又称雪崩效应);所以我们迫切的需要一种“快速失败”的机制,告诉客户,我这个服务出现了问题,不再提供服务。为了实现这种快速失败的机制,spring cloud提供...
2018-12-13 23:43:41
791
原创 初识Spring Cloud--声明式REST客户端(Feign)
在前面的实践中,我们都是通过 RestTemplate来实现对远程服务的调用,但是在代码的编写上并不美观,Spring Cloud给出了另一套方案,也即是本篇中提到的Feign,Spring Cloud Feign 是基于Netflix Feign 实现的。那么,怎么实现咧?依然使用前面的架构,不同的是,这次我们通过Feign来实现:1.新建工程sc07,并添加Feign相关的依赖:...
2018-12-08 22:47:24
312
原创 初识Spring Cloud--Ribbon客户端负载均衡
首先来看一下Ribbon的作用:ribbon 是一个客户端负载均衡器,主要是实现类似于 nginx的负载均衡的功能。SpringCloud提供了7种负载均衡的算法,如下表所示,ribbon 默认使用轮询算法(RoundRobinRule)来实现负载均衡,策略名 策略声明 策略描述 实现说明 BestAvailableRule public class B...
2018-12-04 00:12:27
476
原创 初识Spring Cloud--Eureka服务注册中心搭建
首先,来认识一下SpringCloud:Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)。分布式系统的协调导致了样板模式,使用Spring Cloud开发人员可以快速建立实现这些模式的服务和应用程序。它们可以在任何分布式环境中很好地工作,包括开发人员自...
2018-11-29 22:49:46
450
原创 Rancher Kubernetes Engine(RKE)安装K8S
k8s又推出了一些新的版本,部署的难度又增加了不少,虽然前面做过一些工作:https://blog.youkuaiyun.com/yalishadaa/article/details/78765031,但对新版本的k8s安装,基本没有什么太大的帮助,下面我将通过RKE这款开源的安装程序来对k8s进行安装和部署。环境:rke安装机 centos7.4 192.168.61.140node1 ...
2018-11-28 16:39:36
2088
转载 伪共享、缓存行填充以及CPU缓存机制
关于伪共享的一篇好文,转载自:https://blog.youkuaiyun.com/karamos/article/details/801267041.认识CPU CacheCPU Cache概述随着CPU的频率不断提升,而内存的访问速度却没有质的突破,为了弥补访问内存的速度慢,充分发挥CPU的计算资源,提高CPU整体吞吐量,在CPU与内存之间引入了一级Cache。随着热点数据体...
2018-09-14 13:33:59
448
转载 你真的了解java的lambda吗?- java lambda用法与源码分析
from:https://www.cmlanche.com/2018/07/22/lambda%E7%94%A8%E6%B3%95%E4%B8%8E%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/用法示例:最普遍的一个例子,执行一个线程new Thread(() -> System.out.print("hello world")).start();...
2018-08-20 20:50:59
961
1
原创 intellij idea使用git stash暂存一次提交
分享一个小技巧:在日常开发中有时候需要切换到另外的一个分支,但在某些条件下当前的分支上存在一些文件尚未提交,这时候就需要使用到idea自带的git stash功能来"暂存"一些尚未提交的文件,待切换到另外的分支上再提交到新的分支上去。任意打开一个项目进行演示:step1:切换到分支astep2: stash changesstep3:切换到分支b,unstash...
2018-07-31 21:46:21
14413
2
原创 Kubernetes文件挂载问题
当我们将应用打包成docker镜像并发布时,可能会有替换掉内部配置文件的需求,有别于docker中自带的文件挂载功能,Kubernetes挂载配置文件的时候会覆盖掉原有的文件。这里,我们可以通过创建一个符号链接来挂载宿主机上的配置文件。首先,执行以下的命令来创建一个configmap:kubectl create configmap conf-config --from-file=applicat...
2018-07-05 22:04:46
10357
原创 redis lua脚本学习
在实际的项目开发中,使用lua脚本能够减少对于redis的访问次数,提高效率,下面通过一个入门级的例子来对redis中的lua脚本进行介绍:public class RedisTemplateLua { public static void main(String[] args) { // ClassPathXmlApplicationContext applicatio...
2018-05-13 21:33:37
1175
转载 分布式一致性算法Paxos介绍
原文地址PAXOS可以用来解决分布式环境下,选举(或设置)某一个值的问题(比如更新数据库中某个user的age是多少)。分布式系统中有多个节点就会存在节点间通信的问题,存在着两种节点通讯模型:共享内存(Shared memory)、消息传递(Messages passing),Paxos是基于消息传递的通讯模型的。它的假设前提是,在分布式系统中进程之间的通信会出现丢失、延迟、重复等现象,但不会出现...
2018-05-13 17:09:38
492
转载 源码分析shiro认证授权流程
原文地址:https://www.cnblogs.com/davidwang456/p/4428421.html1. shiro介绍Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能:认证 - 用户身份识别,常被称为用户“登录”;授权 - 访问控制;密码加密 - 保护或隐藏数据防止被偷窥;会话管理 - 每用户相关的时
2018-05-01 16:33:13
385
原创 EnumSet源码解析
EnumSet表示一个枚举类的集合,而且这个集合中只包含同一种枚举类的对象,下面来看一下这个类型的使用方法:首先定义一个枚举类:public enum Color { RED("红色",0),BLUE("蓝色",2),ORANGE("橙色",3); private String color; private int value; Color(String
2018-04-22 23:25:19
376
华三HCL模拟软件专业版下载
2020-11-14
AppServ2(支持win7 64位)
2016-09-05
AppServ(支持win7 64位)
2016-09-04
java中PriorityQueue中的比较器用法问题
2016-08-05
android 顶部导航加上侧滑菜单出现问题
2016-07-10
ArrayAdapter中的getView是怎么被调用的?
2016-07-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人