java技术圈 为您找到相关结果 62

Rancher部署kubernetes爬坑记

引言: 本文不会记录详细的部署过程,仅记录下使用Rancher部署kubernetes踩过的几个小坑,如果你需要详细的部署过程,可以参考此处官方教程,这里面有详细的部署说明,另外可同时参考下此文,也许对你在部署中遇到的问题有所帮助。由于个人能力有限,如有不当之处,欢迎指正。 环境 一台ubuntu 16.04 服务器 作为Rancher Server 宿主机,并且加入k8s集群 一台virtualbox 虚拟的centos 7.3 服务器,并且加入k8s集群 localhost 问题 问题描述:在安装好Rancher server,以及新建k8s环境后,需要在k8s中添加主机节点host,按照描述在需要加入的节点中运行,结果报错: requests.exceptions.Connection...阅读全文

博文 2019-04-04 09:54:39 www.allocmem.com

frp配置本地服务端口到服务器80端口

##搭建环境: ubuntu 16.04 LTS (本地服务计算机) ubuntu 14.04 LTS(阿里云服务器) apache tomcat 7 java 7 frp 0.8.1 linux ##搭建过程: 1. 资源准备 - frp 0.8.1 linux 二进制包 - tomcat - 任意版本jvm 2. 开始安装 1. 分别在服务端ubuntu和客户端ubuntu解压安装包(jdk以及tomcat这里不再赘述) ```tar -zxvf frp_0.8.1_linux.tar.gz``` 2. 配置本地ubuntu 16.04 LTS 中frpc.ini为: ``` #frpc.ini [common] server_addr = #阿里云服务器ip地址 server_port...阅读全文

博文 2019-04-04 09:48:20 www.allocmem.com

配置以太网网关为A类IP(1.1.1.0)的随笔

##引子 今天心血来潮,准备把自有网络路由网关修改为1.1.1.0,主机地址修改为1.1.1.1-1.1.1.254(虽然这样部分的公网ip地址不能访问,但对于实用并没有影响,因为这部分网站我没有使用需求),广播地址修改为1.1.1.255,由此扩展出一些东西,在此做一记录,以供后时参考,若有错误或不妥的地方,欢迎大家不吝赐教。 ##过程 1. 在此之前,我首先去查阅了部分资料,重新温习了下以往认知的ip分类。在此记录一下。 A 1.0.0.0-126.255.255.255 默认掩码-255.0.0.0 B 128.0.0.0-191.255.255.255 默认掩码-255.255.0.0 C 192.0.0.0-223.255.255.255 默认掩码-255.255.255.0 D ...阅读全文

博文 2019-04-04 09:48:02 www.allocmem.com

简析hashset的实现原理

hashset底层为hashmap。 源码如下: /** * Constructs a new, empty set; the backing HashMap instance has * default initial capacity (16) and load factor (0.75). */ public HashSet() { map = new HashMap<>(); } 默认 initial capacity(hashmap底层数组大小)为16,load factor 为 0.75 add() 方法 /** * Adds the specified element to this set if it is not already present. * Mo...阅读全文

博文 2019-04-04 09:46:40 www.allocmem.com

[转]iptables详细教程:基础、架构、清空规则、追加规则、应用实例

本文出自 Lesca技术宅,转载时请注明出处及相应链接。 本文永久链接: http://lesca.me/archives/iptables-tutorial-structures-configuratios-examples.html iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解iptables的工作原理,你会发现其实它很简单。 首先介绍iptables的结构:iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而c...阅读全文

博文 2019-04-04 09:53:47 www.allocmem.com

nginx配置分发tomcat服务

##搭建环境: ubuntu 16.04 LTS apache tomcat 7 java 7 nginx/1.10.0 (ubuntu) ##搭建过程: 注:本人在这里介绍自己安装的两种方式,一种使用官方源码包进行安装,另外一种使用ubuntu软件源进行安装,但推荐大家使用源码包进行安装,源码安装更易后期配置。 nginx官方中文文档地址 nginx gitbook官方文档地址 使用官方源码包进行安装 资源准备 pcre 源码包 (为了rewrite) zlib 源码包 (为了压缩gzip) ssl(openssl)源码包 (如果已安装可直接使用) nginx源码包 gcc等系统编译工具(请自行准备,一般linux系统都会自带) 开始安装 分别解压三个压缩包 tar -zxvf pcre....阅读全文

博文 2019-04-04 09:47:45 www.allocmem.com

关于java部分知识点的总结(三)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 dubbo构成: 2者(服务提供者【无状态】,服务消费者),2中心(服务注册中心,服务监控中心)。 (1) 连通性:连通流程 (2) 健状性:多数部分宕挂了,其余服务部分仍能正常使用 (3) 伸缩性:主要是伸,动态增加机器部署实例 public void ensureCapacity(int minCapacity) { int minExpand = (elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA) // any size if not default elemen...阅读全文

博文 2019-04-04 09:44:24 www.allocmem.com

浅析字节存储序列的大小端存储方式

基础 内存地址是从低地址开始进行编号的,用16进制来进行编号,比如内存的开始地址(即低地址)0x0000,然后内存偏移以字节为单位,比如0x0001表示从0x0000位置偏移到后面1个字节,即偏移8bit.字节的高低位是俗成约定的,比如字节序列0x12345678,由于一个16进制的转为2进制占四个2进制(2^4=16,进制转换基础),那么0x12则可以转为8个二进制,也就是8bit=1byte,也就是1字节,回到字节的高低位的俗成约定,0x12为最高位,0x78为字节序列的最低位置 什么是大端和小端 Big-Endian和Little-Endian的定义如下: 1. Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。 2. Big-Endian就是高...阅读全文

博文 2019-04-03 14:30:28 www.allocmem.com

java和golang中的unsafe包

首先聊聊反射 java和golang都有各自的反射机制,为什么标准库会提供反射机制呢? 反射(reflection)允许程序在运行时(runtime)检查、修改程序(比如对象,struct等)的结构与行为,跳过编译检查,越过访问权限,运行时对象生成,方法调用等。如果没有反射,那么需要完全手动进行硬编码,比如如果没有反射,那么在spring的ioc容器管理实现就需要我们使用new来创建对象,那么也就不叫spring ioc,不会有spring ioc的诞生了。 静态编译(多数静态语言):在编译时确定类型,绑定对象。 动态编译(多数动态语言):运行时确定类型,绑定对象。可以实现动态创建对象和编译,体现出很大的灵活性(特别是在J2EE的开发中它的灵活性就表现的十分明显)。通过反射机制我们可以获得类...阅读全文

博文 2019-04-03 14:27:58 www.allocmem.com

java和golang中的unsafe包

### 首先聊聊反射 java和golang都有各自的反射机制,为什么标准库会提供反射机制呢? 反射(reflection)允许程序在运行时(runtime)检查、修改程序(比如对象,struct等)的结构与行为,跳过编译检查,越过访问权限,运行时对象生成,方法调用等。如果没有反射,那么需要完全手动进行硬编码,比如如果没有反射,那么在spring的ioc容器管理实现就需要我们使用new来创建对象,那么也就不叫spring ioc,不会有spring ioc的诞生了。 静态编译(多数静态语言):在编译时确定类型,绑定对象。 动态编译(多数动态语言):运行时确定类型,绑定对象。可以实现动态创建对象和编译,体现出很大的灵活性(特别是在J2EE的开发中它的灵活性就表现的十分...阅读全文

opensuse下安装网易云音乐netease-cloud

opensuse下安装网易云音乐netease-cloud-music Author anteoy@gmail.com | Posted 2017-10-04 22:49:00 安装过程 安装环境 opensuse 42.3(理论上仓库中列出的支持版本都可以用此方法安装) 官方软件仓库搜索netease,也可直接点击此处打开:https://software.opensuse.org/package/netease-cloud-music?search_term=netease 选择对应版本,点击Source下载源码,我这里下载的对应版本为42.3,得到如下文件(注意这里点击1 Click Install安装会出错,我最开始点击直接安装,结果提示安装成功,但无法使用,仔细看安装日志会发现,虽...阅读全文

博文 2019-04-04 09:55:08 music

理解 Linux 的虚拟内存

前言 前不久组内又有一次我比较期待的分享:”Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题(笑)。 我之前了解一些操作系统的概念,主要是毕业后对自己大学四年的荒废比较懊恼,觉得自己有些对不起计算机专业出身,于是在工作之余抽出时间看了哈工大在网易云课堂的操作系统公开课,自己也读了一本讲操作系统比较浅的书 《Linux内核设计与实现》,而且去年自己用 C 写简单的服务器时,也追根究底了解了更多的系统底层知识。多亏了这些知识,让我对应用层的知识更有掌控感,也在上次排查问题时(从应用到内核查接口超时)助了我一臂之力。 前几天另一位同事来问另一个虚拟内存相关的问题,我才发现对于虚拟内存,我的理解还不够深刻,...阅读全文

博文 2019-06-20 08:48:00 枕边书

操作系统管理内存的机制——为什么要设置虚拟内存? - wj_hubei

在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。 一 早期的内存分配机制 在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,操作系统是如何为这些程序分配内存的呢?下面通过实例来说明当时的内存分配方法: 某台计算机总的内存大小是128M,现在同时运行两个程序A和B,A需占用内存10M,B需占用内存110。计算机在给程序分配内存时会采取这样的方法:先将内存中的前10M分配给程序A,接着再从内存中剩余的118M中划分出110M分配给程...阅读全文

Hive On HBase实战 - 哥不是小萝莉

1.概述 HBase是一款非关系型、分布式的KV存储数据库。用来存储海量的数据,用于键值对操作。目前HBase是原生是不包含SQL操作,虽然说Apache Phoenix可以用来操作HBase表,但是需要集成对应的Phoenix依赖包到HBase集群中,同时需要编写对应的Schema才能实现SQL操作HBase。 本篇博客,笔者将为大家介绍另一位一种SQL方式来操作HBase,那就是Hive。 2.内容 2.1 使用场景 熟悉大数据的同学应该都知道,Hive是一个分布式的数据仓库,它能够将海量数据,结构化存储到HDFS上,然后通过SQL的方式对这些海量数据进行业务处理。而且,Hive学习成本很低,熟悉SQL的同学,很快就能编写一个Hive应用程序。 我们通过Hive把数据加载到HBase表中...阅读全文

博文 2020-11-12 03:39:16 博客园

linux是怎样分配内存的

我们常说的内存容量,比方说我的笔记本电脑内存就是8GB,其实指的是物理内存。物理内存也称为主存,大多数计算机用的主存都是动态随机访问内存(DRAM)。只有内核才可以直接访问物理内存。 linux内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的,这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存。 虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同字长(也就是单个CPU指令可以处理数据的最大长度)的处理器,地址空间的范围也不同。比如最常见的32位和64位系统。如下所示: 32位系统的内核空间占用1G,位于最高处,剩下的3G是用户空间。而64位系统的内核空间和用户空间都是128T,分别占据整个内存空间的最高和最低处,没剩下的中间部分是未定义的。 进程在用户态时...阅读全文

什么是内网、公网和NAT?读懂这一篇就够!

我们做弱电监控系统的时候,都避免不了要跟IP地址打交道,比如摄像头、NVR、服务器等这些设备安装好之后,就需要给它们配上IP,那这个IP地址你了解嘛?今天我们就一起来聊聊什么是内网、公网和NAT地址转换? 1、内网、公网和NAT的定义 内网也叫局域网,从范围上来讲内网就是小部分的网络,一般指的是特定环境下组成网络,比如某一个家庭多台计算机互联成的网络,也可以学校和公司的大型局域网,内网的IP一般都是192.168.1.100,192.168.0.100,172.16.1.100……这些都是内网IP,内网是不能直接连接外网,比较封闭,但在内网里面可以实现文件管理,应用软件共享、打印机共享等服务。 家庭局域网 外网又被叫做互联网,是连接不同地区局域网或者城域网计算机的通信的远程网络。通常可以跨接...阅读全文

博文 2020-05-27 10:26:17 51CTO.COM

一文读懂Apache Kylin

一文读懂Apache Kylin“麒麟出没,必有祥瑞。” —— 中国古谚语 Kylin思维导图 前言 随着移动互联网、物联网等技术的发展,近些年人类所积累的数据正在呈爆炸式的增长,大数据时代已经来临。但是海量数据的收集只是大数据技术的第一步,如何让数据产生价值才是大数据领域的终极目标。Hadoop的出现解决了数据存储问题,但如何对海量数据进行OLAP查询,却一直令人十分头疼。 企业中的查询大致可分为即席查询和定制查询两种。之前出现的很多OLAP引擎,包括Hive、Presto、SparkSQL等,虽然在很大程度上降低了数据分析的难度,但它们都只适用于即席查询的场景。它们的优点是查询灵活,但是随着数据量和计算复杂度的增长,响应时间不能得到保证。而定制查询多数情况下是对用户的操作做出实时反应,H...阅读全文

博文 2020-04-30 04:52:16 简书

解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题

源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。 1. 问题原因分析 为了安装最新版本的Node.js(最新版本的Node.js使用了C++ 11中,而C++ 11需要code>gcc 4.8+才能支持),将gcc升级到了当前最新版本v 5.2.0。升级后,成功编译安装了新版本的Node.js(v 4.2.1),但运行时程序时出现了以下错误: node: /usr/lib64/libstdc++.so.6: versi...阅读全文

博文 2020-02-21 13:21:38 IT笔录

BeanUtils对象属性copy的性能对比以及源码分析 - kancy

1. 对象属性拷贝的常见方式及其性能 在日常编码中,经常会遇到DO、DTO对象之间的转换,如果对象本身的属性比较少的时候,那么我们采用硬编码手工setter也还ok,但如果对象的属性比较多的情况下,手工setter就显得又low又效率又低。这个时候我们就考虑采用一些工具类来进行对象属性的拷贝了。 我们常用的对象属性拷贝的方式有: Hard Code net.sf.cglib.beans.BeanCopier#copy org.springframework.beans.BeanUtils.copyProperties org.apache.commons.beanutils.PropertyUtils.copyProperties org.apache.commons.beanutils.B...阅读全文

博文 2021-03-05 11:01:14 博客园

MGW——美团点评高性能四层负载均衡

本文整理自美团点评技术沙龙第14期:美团背后的故事-你不知道的美团云。美团点评技术沙龙由美团点评技术团队主办,每月一期。每期沙龙邀请美团点评及其他互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域。目前沙龙会分别在北京、上海和厦门等地举行,要参加下一次最新沙龙活动?赶快关注微信公众号“美团点评技术团队”。本期沙龙包括三场讲座:美团云Docker平台、美团云对象存储系统、美团四层负载均衡网关MGW。其他几场讲座的图文实录会陆续发表,请继续关注。在高速发展的移动互联网时代,负载均衡有着举足轻重的地位,它是应用流量的入口,对应用的可靠性和性能起着决定性的作用,因此负载均衡需要满足高性能、高可靠两个特点。MGW是美团点评自研的一款四层负载均衡,主要用于替代原有环境的四层负载均衡LVS,目...阅读全文

博文 2021-09-08 03:33:51 美团技术团队

Java 正确的做字符串编码转换 - 月下狼的个人页面

【推荐阅读】微服务还能火多久?>>> 字符串的内部表示? 字符串在java中统一用unicode表示( 即utf-16 LE) , 对于 String s = "你好哦!"; 如果源码文件是GBK编码, 操作系统(windows)默认的环境编码为GBK,那么编译时, JVM将 按照GBK编码将字节数组解析成字符,然后将字符转换为unicode格式的字节数组,作为内部存储。 当打印这个字符串时,JVM 根据操作系统本地的语言环境,将unicode转换为GBK,然后操作系统将GBK格式的内容显示出来。 当源码文件是UTF-8, 我们需要通知编译器源码的格式,javac -encoding utf-8 ... , 编译时,JVM按照utf-8 解析成字符,然后转换为unicode格式的字节数组, ...阅读全文

博文 2020-04-26 07:05:42 OSCHINA

WebRTC简介

引言最近一段时间的主要工作内容是开发一个远程控制手机的功能,其中使用到的一个关键技术就是WebRTC,在此准备分享一下我对这个技术的理解。其他 WebRTC 相关文章均收录于贝贝猫的文章目录。 什么是WebRTCWebRTC是一个由Google发起的实时通讯解决方案,其中包含视频音频采集,编解码,数据传输,音视频展示等功能,我们可以通过技术快速地构建出一个音视频通讯应用。 虽然其名为WebRTC,但是实际上它不光支持Web之间的音视频通讯,还支持Android以及IOS端,此外由于该项目是开源的,我们也可以通过编译C++代码,从而达到全平台的互通。WebRTC架构架构组件Your Web AppWeb开发者开发的程序,Web开发者可以基于集成WebRTC的浏览器提供的web API开发基于视...阅读全文

博文 2021-09-06 08:58:22 知乎

Hadoop中的Mapper和Reducer数量设定

在对Mapper调优的过程中,一个经验法则是: map任务最好拥有一分钟以上的运行时间。 因为如果任务运行时间过短,将导致在整个作业的执行过程中任务启动所花费的时间过大,从而降低了实际的任务执行效率。 对map任务的运行时间影响最大的是Mapper的个数,不过与Reducer不同,Mapper的个数是无法显示指定的。 调节Mapper数量的一种方式是设置参数mapred.jobtracker.maxtasks.per.job, 但其只能限制每个job中并发运行的map或reduce任务的上限,而当实际运行的map数低于该上限时,该参数将失效。 如果想要对Mapper个数进行更加直接有效的控制,需要指定输入数据的分片大小。 输入分片(input split)是MapReduce框架为使map任...阅读全文

博文 2020-08-31 02:33:58 Summer is Green

页 页表 页表项_WaneGi没有故事

五一假期前落下了几节操作系统的课,现在艰难的恶补中。。 以下是分页存储管理相关的一些知识点梳理。 首先我们应该知道的概念: 逻辑地址:是程序编译后,生成的目标模块进行编址时都是从0号开始编址,称之为目标模块的相对地址,即逻辑地址。 虚拟地址:计算机处理器的地址有32位和64位的两种,对应的虚拟地址的空间大小分别是2^32字节和2^64字节,字节用B表示。 页:分页存储管理将进程的逻辑地址空间划分为若干页(面),并且对其编号,号数从0开始,每个页(面)的大小称为页面大小,且大小应为2的幂。 物理块:将内存的物理地址空间划分为若干块,称为物理块,物理块与页(面)一一对应。 页表:又称页面映像表,存储在内存中,通过页表建立页(面)与物理块的索引。 下面通过举例子梳理一下: 假设我们已经知道了逻辑地...阅读全文

博文 2020-10-11 13:38:47 CSDN博客

P2P通信原理与实现

当今互联网到处存在着一些中间件(Middle Boxes),如NAT和防火墙,导致两个(不在同一内网)中的客户端无法直接通信. 这些问题即便是到了IPV6时代也会存在,因为即使不需要NAT,但还有其他中间件如防火墙阻挡了链接的建立. 目前部署的中间件多都是在C/S架构上设计的,其中相对隐匿的客户机主动向周知的服务端(拥有静态IP地址和DNS名称)发起链接请求. 大多数中间件实现了一种非对称的通讯模型,即内网中的主机可以初始化对外的链接,而外网的主机却不能初始化对内网的链接, 除非经过中间件管理员特殊配置. 前言 在中间件为常见的NAPT的情况下(也是本文主要讨论的),内网中的客户端没有单独的公网IP地址, 而是通过NAPT转换,和其他同一内网用户共享一个公网IP. 这种内网主机隐藏在中间件后...阅读全文

博文 2021-10-08 12:31:49 evilpan

UDP 单播、广播和多播 - Rimond_Jing

使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。 通常我们讨论的udp的程序都是一对一的单播程序。本章将讨论一对多的服务:广播(broadcast)、多播(multicast)。对于广播,网络中的所有主机都会接收一份数据副本。对于多播,消息只是发送到一...阅读全文

博文 2021-08-26 04:06:01 博客园

关于 TCP/IP,运维必知必会的十个问题 - 云+社区

一、TCP/IP模型TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。TCP/IP协议族按照层次由上到下,层层包装。最上面的是应用层,这里面有http,ftp 等等我们熟悉的协议。而第二层则是传输层,著名的TCP和UDP协议就在这个层次。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据以确定传输的目标。第四层是数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传...阅读全文

博文 2021-08-26 04:07:25 腾讯云

时序数据库技术体系-时序数据存储模型设计 – 有态度的HBase/Spark/BigData

时序数据库技术体系中一个非常重要的技术点是时序数据模型设计,不同的时序系统有不同的设计模式,不同的设计模式对时序数据的读写性能、数据压缩效率等各个方面都有不同程度的影响。这篇文章笔者将会分别针对OpenTSDB、Druid、InfluxDB以及Beringei这四个时序系统中的时序数据模型设计进行介绍。 在详细介绍时序数据模型之前,还是有必要简单回顾一下时序数据的几个基本概念,如下图所示: 上图是一个典型的时序数据示意图,由图中可以看出,时序数据由两个维度坐标来表示,横坐标表示时间轴,随着时间的不断流逝,数据也会源源不断地吐出来;和横坐标不同,纵坐标由两种元素构成,分别是数据源和metric,数据源由一系列的标签(tag,也称为维度)唯一表示,图中数据源是一个广告数据源,这个数据源由publ...阅读全文

博文 2022-04-15 07:21:46 hbasefly.com

虚拟IP技术 ip地址漂移技术 - myseries

1.虚拟IP 在 TCP/IP 的架构下,所有想上网的电脑,不论是用何种方式连上网路,都必须要有一个唯一的 IP-address。事实上IP地址是主机硬件地址的一种抽象,简单的说,MAC地址是物理地址,IP地址是逻辑地址。 虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机。 虚拟IP一般用作达到HA(High Availability)的目的,比如让所有项目中数据库链接一项配置的都是这个虚IP,当主服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用服务器。 2.虚拟IP原理 ARP是地址解析协议,它的作用很简单,将一个IP地址转换为MAC地址,然后给传输层使用。 每台主机中都有一...阅读全文

SQL子查询总结:相关子查询与非相关子查询有什么区别

如果一个select语句能够返回单个值或者一列值,且该select语句嵌套在另一个SQL语句(例如select语句、insert语句、update语句或者delete语句)中,那么该select语句成为“子查询”(也叫内层查询),包含子查询的SQL语句称为“主查询”(也叫外层查询)。为了标记子查询与主查询之间的关系,通常将子查询写在小括号内。子查询一般用在主查询的where子句或having子句中,与比较运算符或者逻辑运算符一起构成where筛选条件或having筛选条件。子查询分为“相关子查询”(Dependent Subquery)与“非相关子查询”。 非相关子查询如果子查询返回单个值,则可以讲一个表达式的值与子查询的结果进行比较。 例如,检索成绩比学生张三平均分高的所有学生及课程的信息...阅读全文

博文 2022-06-30 02:47:22 知乎

Seata 分布式事务 XA 与 AT 全面解析

Seata 分布式事务 XA 与 AT 全面解析 2021-04-23 FUNKYE Seata Seata 目录 1.XA模式是什么? 1.1什么是XA 1.2什么是Seata的事务模式? 2那么什么是Seata XA 模式? 2.1什么是Seata AT(TXC) 模式? 2.2AT 模式如何做到对业务的无侵入 ? AT模式一阶段 2.3 AT 模式如何保证隔离性 AT 模式二阶段提交 AT 模式二阶段回滚 3.为什么支持XA? 4.为什么Seata要支持XA模式? AT与XA的关系 Seata AT与XA的优劣 总结 Seata 是一款开源的分布式事务解决方案,star高达17300+,社区活跃度极高,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 注:本期分享借鉴于Sea...阅读全文

博文 2022-11-12 17:32:05 objcoding.com

Linux中ARP学习和老化机制

本文分享自天翼云开发者社区《Linux中ARP学习和老化机制》 作者:云云生息ARP学习和老化机制在Linux网络通信中起着至关重要的作用。ARP(Address Resolution Protocol)地址解析协议是将IP地址解析为MAC地址的一种机制。本文将详细介绍Linux中ARP学习和老化的概念、工作原理以及其重要性。一、ARP学习在一个局域网(LAN)中,设备之间通信需要知道目标设备的MAC地址。但是,在IP网络中,设备之间通常只知道目标设备的IP地址。这时候ARP就发挥作用了。ARP会通过广播在局域网上发送一个ARP请求(ARP Request),询问某个IP地址对应的MAC地址。其他设备收到这个请求后,如果其中有设备的IP地址与之匹配,就会回复一个ARP响应(ARP Reply...阅读全文

【精选】Prometheus源码分析-increase()函数踩坑记_prometheus increase 小数_FrankenFunc `的博客

Counter采集过来的整数数据increase后出现小数点的数据 情况如下图所示: increase(jvm_gc_pause_seconds_count[5m])在Grafana Explore中查询出来的数据存在小数点,什么鬼,increase难道不是两个数据的差值吗,两个整数相减为什么会有小数点呢???这你让我怎么跟leader交代。。。 查询SQL: increase(jvm_gc_pause_seconds_count{instance="$instance", application="$application"}[5m]) increase()函数实现的源代码分析: 在源码里就找到了一个extrapolatedRate()的函数 源码中的注释 extrapolatedRate...阅读全文

博文 2023-10-28 17:24:19 CSDN博客

React 源码剖析系列 - 不可思议的 react diff

目前,前端领域中 React 势头正盛,使用者众多却少有能够深入剖析内部实现机制和原理。本系列文章希望通过剖析 React 源码,理解其内部的实现原理,知其然更要知其所以然。React diff 作为 Virtual DOM 的加速器,其算法上的改进优化是 React 整个界面渲染的基础,以及性能提高的保障,同时也是 React 源码中最神秘、最不可思议的部分,本文从源码入手,深入剖析 React diff 的不可思议之处。阅读本文需要对 React 有一定的了解,如果你不知何为 React,请详读 React 官方文档。如果你对 React diff 存在些许疑惑,或者你对算法优化感兴趣,那么本文值得阅读和讨论。前言React 中最值得称道的部分莫过于 Virtual DOM 与 diff...阅读全文

博文 2023-05-30 05:58:00 知乎

【鲜知软考】信息系统项目管理师软考高级职称2023第四版

### download:[【鲜知软考】信息系统项目管理师软考高级职称2023第四版](https://www.zxit666.com/6332/) 系统解析JDK源码 在Java开发中,JDK(Java Development Kit)是开发和运行Java应用程序的基础。JDK的源码是理解Java语言和底层实现的宝贵资源。本文将详细介绍如何系统地解析JDK源码,并从中获取知识和洞察力。 为什么解析JDK源码很重要 解析JDK源码对于Java开发人员来说非常重要,有以下几个方面的原因: 深入理解Java:通过阅读和分析JDK源码,可以深入了解Java语言的设计原则、核心概念和内部实现机制。 学习优秀的编程实践:JDK源码是由经验丰富的Java开发人员编写的,其中蕴含着许多优秀的编程实践和设计...阅读全文

博文 2023-06-22 11:06:38 zxit666

React18内核探秘:手写React高质量源码迈向高阶开发

### download:[React18内核探秘:手写React高质量源码迈向高阶开发](https://www.zxit666.com/6529/) React是一个用于构建用户界面的JavaScript库,它提供了一种声明式的方式来创建组件,管理状态和处理数据。React的内部机制是如何实现的呢?本文将从以下几个方面来深入理解React的内部机制: JSX和元素 JSX是一种类似于XML的语法,可以在JavaScript中编写HTML标签,使得代码更直观和表达力强。JSX不是必须的,但是推荐使用,因为它可以提高开发效率和可读性。JSX需要通过Babel等工具进行转换,才能被浏览器识别和执行。 JSX的转换结果是一个React元素,它是一个用JavaScript对象来表示UI的结构和属性...阅读全文

博文 2023-09-02 07:35:35 zxit666

Jedis-分布式缓存服务Redis版-快速入门-连接实例-多语言连接-Java客户端

更多的客户端的使用方法,请参考https://redis.io/clients。 如果创建Redis实例时设置了密码,使用Jedis客户端连接Redis时,需要配置密码进行连接,建议不要将明文密码硬编码在代码中。如果使用JedisCluster连接Redis4.0/5.0 Cluster集群,集群内部拓扑结构会自动刷新,客户端需要自己处理重连问题。前提条件已成功申请Redis实例,且状态为“运行中”。已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器用户指南》。如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装java编译环境操作步骤步骤 1 查看并获取待连接Redis实例的IP地址/域名和端口。具体步骤请参见 查看实例信息。步骤 2 登录弹性云服务器。步骤 3 首先...阅读全文

博文 2023-07-20 03:22:42 天翼云

线程池的getActiveCount()不准确问题

线程池的getActiveCount()不准确问题 getActiveCount () 按照 javadocs 的说法是 “Returns the approximate number of threads that are actively executing tasks.” 也就是“返回正在执行任务的大致线程数”,请注意用词 approximate 。 查看一下源码: public int getActiveCount() { final ReentrantLock mainLock = this.mainLock; mainLock.lock(); try { int n = 0; for (Worker w : workers) if (w.isLocked()) ++n; retu...阅读全文

博文 2023-10-25 13:55:46 CSDN博客

Java IO学习笔记三:MMAP与RandomAccessFile - Grey Zeng

作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和FileReader/Writer 普通的Reader和Writer只能顺序读写数据,RandomAccessFile提供了一个独有的seek方法,可以修改文件内容的指针,从而可以方便读取和修改文件中的任意位置。示例: import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import static java.nio.charset.Standar...阅读全文

博文 2023-05-12 16:32:23 博客园

浅析进程分配内存的两种方式——brk()和mmap()

如何查看进程发生缺页中断的次数?用ps -o majflt,minflt -C program命令查看。majflt代表major fault,中文名-叫大错误,minflt代表minor fault,中文名叫小错误。这两个数值表示一个进程自启动以来所发生的缺页中断的次数。发成缺页中断后,执行了那些操作?当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作: 1、检查要访问的虚拟地址是否合法 2、查找/分配一个物理页 3、填充物理页内容(读取磁盘,或者直接置0,或者啥也不干) 4、建立映射关系(虚拟地址到物理地址) 重新执行发生缺页中断的那条指令 如果第3步,需要读取磁盘,那么这次缺页中断就是majflt,否则就是minflt。 内存分配的原理从操作系统角度来看,进程分配内存有两种方...阅读全文

VPC终端节点的实现架构和原理

本文分享自天翼云开发者社区《VPC终端节点的实现架构和原理》,作者:云云生息什么是VPC终端节点?在传统的VPC架构中,为了使VPC内的资源能够与云服务提供商的各种服务进行通信,通常需要通过公共Internet进行访问。这种方式存在一些问题,比如安全性、可靠性、访问速度等。为了解决这些问题,云服务提供商推出了VPC终端节点。VPC终端节点是VPC内的一种虚拟设备,它直接连接到云服务提供商的服务而无需通过Internet。这样,VPC内的资源可以通过VPC终端节点安全地、高效地访问云服务,同时也能避免通过Internet带来的一些潜在问题。VPC终端节点的实现架构VPC终端节点的实现架构通常涉及多个组件的协同工作。以下是一个常见的VPC终端节点实现架构:1.VPC路由表: 在VPC中,存在一个...阅读全文

java使用nio读写文件_使用nio读取文件_小码农叔叔的博客

IO原理 最近在研究 JAVA NIO 的相关知识,学习NIO,就不能提到IO的原理和事项,必经NIO是基于IO进化而来 IO涉及到的底层的概念大致如下: 缓冲区操作。2) 内核空间与用户空间。3) 虚拟内存。4) 分页技术 一,虚拟存储器 虚拟存储器是硬件异常(缺页异常)、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。 虚拟存储器的三大能力: ①将主存看成是一个存储在磁盘上的地址空间的高速缓存。 ②为每个进程提供了一个一致的地址空间。 ③保护每个进程的地址空间不被其他进程破坏。 虚拟内存的两大好处: ① 一个以上的虚拟地址可指向同一个物理内存地址。 ② 虚拟内存空间可大于实际可用的硬件内存。 二,用户空间与内核空间 设虚拟地址为32位...阅读全文

博文 2023-05-15 10:50:14 CSDN博客

换个数据结构,IntObjectHashMap 内存优化 IT 精品课

​当时其实我是被他的这个图片给吸引到了(里面的 12 qps 应该是 12k qps): ​ 他介绍了两个核心系统在经过一个“数据压缩”的操作之后,分别节约了 204C 和 2160C 的服务器资源。共计就是 2364C 的服务器资源。如果按照一般标配的 4C8G 服务器,好家伙,这就是节约了 591 台机器啊,你想想一年就节约了多大一笔开销。 ​ 视频中介绍了几种数据压缩的方案,其中方案之一就是用了高性能集合: ​ 因为他们的系统设计中大量用到“本地缓存”,而本地缓存大多就是使用 HashMap 来帮忙。所以他们把 HashMap 换成了性能更好的 IntObjectHashMap,这个类出自 Netty。为什么换了一个类之后,就节约了这么多的资源呢?换言之,IntObjectHashMa...阅读全文

博文 2023-05-15 09:08:26 IT 精品课

首个基于Transformer的分割检测+视觉大模型视频课程(23年新课+源码+课件)

首个基于Transformer的分割检测+视觉大模型视频课程(23年新课+源码+课件) 分享一套视觉大模型课程——首个基于Transformer的分割检测+视觉大模型视频课程,2023年新课,附源码+课件。 视觉分割旨在将图像、视频帧或点云分割为多个片段或组。这种技术具有许多现实世界的应用,如自动驾驶、图像编辑、机器人感知和医学分析。 最近,Transformer成为一种基于自注意力机制的神经网络,最初设计用于自然语言处理,在各种视觉处理任务中明显超越了以往的卷积或循环方法。 具体而言,视觉Transformer为各种分割任务提供了强大、统一甚至更简单的解决方案。本综述全面概述了基于Transformer的视觉分割,总结了最近的进展。 图像分割作为计算机视觉的三大任务之一,是智慧城市、工业制...阅读全文

博文 2023-11-24 20:45:38 woaiwodejia333

换个数据结构,IntObjectHashMap 内存优化

各种资源,各种教程,请=》 当时其实我是被他的这个图片给吸引到了(里面的 12 qps 应该是 12k qps): 他介绍了两个核心系统在经过一个“数据压缩”的操作之后,分别节约了 204C 和 2160C 的服务器资源。 共计就是 2364C 的服务器资源。 如果按照一般标配的 4C8G 服务器,好家伙,这就是节约了 591 台机器啊,你想想一年就节约了多大一笔开销。 视频中介绍了几种数据压缩的方案,其中方案之一就是用了高性能集合: 因为他们的系统设计中大量用到“本地缓存”,而本地缓存大多就是使用 HashMap 来帮忙。 所以他们把 HashMap 换成了性能更好的 IntObjectHashMap,这个类出自 Netty。 为什么换了一个类之后,就节约了这么多的资源呢? 换言之,Int...阅读全文

博文 2023-05-12 03:17:07 CSDN博客