qemu简介
qemu简介QEMU开源,是一个托管的虚拟机,它通过动态的二进制转换,模拟CPU,并且提供一组设备模型,使它能够运行多种未修改的客户机OS,可以通过与KVM一起使用进而接近本地速度运行虚拟机(接近真实电脑的速度)。
QEMU还可以为user-level的进程执行CPU仿真,进而允许了为一种架构编译的程序在另外一种架构上面运行(借由VMM的形式)。
kvm基于内核的虚拟机(英语:Kernel-based Virtual Machine,缩写为KVM)是一种用于Linux内核中的虚拟化基础设施,可将Linux内核转化为一个虚拟机监视器。KVM于2007年2月5日被导入Linux 2.6.20核心中。KVM需要支持硬件虚拟化拓展特性的处理器。
qemu-kvmqemu负责外围设备,比如存储可以直通,然后kvm负责虚拟内核,qemu-kvm,再加上一些其它的优化,其中显卡也可以直通,可以获得几乎真机80-90%的性能,非常强大
其它常见的面向用户的虚拟机virtualbox和vmware也是两款强大的虚拟机,并且开箱易用,一般情况下是够用的,但是和qemu-kvm,比起来,几乎没法比较 ...
开源报表平台调研
开源报表平台调研目前市面上有一些流行的开源BI平台,看样子还很不错,而且功能也比较强大,在这里简单的对比一下它们,从功能到实现
接下来是几个比较出名的BIdatartdatart 是新一代数据可视化开放平台,支持各类企业数据可视化场景需求,如创建和使用报表、仪表板和大屏,进行可视化数据分析,构建可视化数据应用等。由原 davinci 主创团队出品,datart 更加开放、可塑和智能,并在数据与艺术之间寻求最佳平衡
文档比较丰富
设计理念完善
功能非常强大
JimuReport主要功能是那种打印的报表,然后大屏bi是收费的,pass
EasyReport个人项目,功能比较弱,虽然是BI,但是好像没有BI功能 pass
CBoard企业开源,但是界面看起来比较朴素,而且功能比较弱 待定
SmartChartpython编写,功能抽象度比较低,偏向于代码编写,但是仍有借鉴意义,可以借鉴,但是因为技术栈不一样,所以仅供参考
datagear功能比较强大,前端偏向于diy,可以直接自定义前端的内容,及时生效,前端比较强大
Davinci功能强大,和datart有很多相似之处,很多地方可以 ...
流程编排漫谈
流程编排漫谈讲述流程编排的概念,分类,以及传统的流程引擎代表flowable
流程编排的使用场景使用到流程编排的场景,大体都是复杂多变的,而且需要动态的执行,如果使用硬编码来开发,代码需要经常修改,而且如果代码耦合严重,代码的可维护性也非常差,那么代码修改以后,出错的概率大大增加,常见的场景如下
oa,企业办公场景
电商算促销
etl清洗
规则引擎
微服务编排
其余复杂的流程场景,适合使用责任链的设计模式的场景
流程编排定义设计好的流程,在流程引擎的驱动下,按照设计,一个个组件的执行动态执行下去,可以通过上下文共享数据
流程定义,定义一个流程如何执行
流程组件,流程执行的一个个节点
流程上下文,组件之间共享数据的机制
流程编排和服务编排现在的流程编排一般分为传统的流程编排,比较学院派,以BPMN为主,典型的框架就是activity/Camunda/flowable,还有的就是一些比较冷门,或者没那么出名的框架,弱点的甚至是流线型的流程定义,强大的就是DAG的流程定义,DAG系的相对功能更强大
这面这张图展示了bpmn的三兄弟,有篇文章对三兄弟做了相对比较 ...
我为什么从vz
我为什么从微众离职微众并不是一家适合长久发展的公司
画虎画皮难画骨和领导同事聊过,还有自己平常也都看到了,公司人员流动很大,老员工也快走光了,最近直接上司,6年的老员工,差不多第一批,也走了,有时候能直接跑一批,来的全都是新人,公司的产品问题也很多,关键是还解决不了
高层浮躁,不会想着用心打磨一个产品,主营业务,擅长的不好好做,总是想着如何去迎合市场,去投机,做了一大堆没用的东西,来的时候就火急火燎的做了一个智能贷后,忙活三个月,结果到最后,几乎没什么项目,我给同事吐槽同事给我讲,这样的东西还很多呢
中层缺乏技术,总是想着如何糊弄过去,不会认真的考虑以后怎么办,每次都当救火队员,但是从不真正地解决问题,最近日志脱敏,也是想着先用正则糊弄过去,我当场就提了,正则效率很差,性能既有可能扛不住,结果,用正则的版本线上直接cpu爆表然后,关闭了,我这边做的非正则版本,花时间做的,全面避免了正则,效果不错
底层更是缺乏技术和规范,混乱不堪,代码上线以后,连对应的版本都找不到,写东西,更是不讲究效率,毫无章法,写出来的东西,效率很低,稍微并发高一点,性能就出问题
整个公司,2014成立,都 ...
vmware的3D性能有多强
vmware的3D性能有多强很强,大概70%左右吧,无论是windows平台还是linux平台,都差不多是这个结果,可能windows的72%左右,linux的68%,所以,只要你原来的显卡很强,就可以一直强
如何测试其实测试的时候,使用鲁大师测试的,并不怎么严格,但是差不多就行了,比如rx460,本来能跑到7w分,但是虚拟机里面就能跑到5w分,1GB显存的情况,还有一些up主,也看他们的视频,也用的鲁大师,差不多就是70%左右的样子,但是他们是windows
杂谈我是虚拟机重度用户,qemu的话,因为只有一个显卡,不能显卡直通,所以,暂时virtualBox和vmware是主力
virtualBox适合跑一些后台任务,也很稳定,而且占用可能会少一些吧
vmware适合桌面办公,它的增强工具更稳定,可以十天半个月不关机还是好好的,virtualbox就不行了,可能用个几天就会出问题
vmware优化
内存给够,这个看你需求,vmware有个所有虚拟机的内存限制,调高一些,只是max限制而已,而且一下子把内存分配好,不要让它使用交换内存,这样性能肯定有折扣的
cpu给够,有些人害怕虚 ...
自建服务器远程连接rustDesk
自建服务器远程连接rustDesk为什么需要自建服务器远程连接
当你们公司封了远程连接工具的时候
当你的远程连接工具速度不快的时候
当你的远程连接工具不是会员的时候
自建服务器的成本如何解决rustDesk对ECS要求极低,1核0.5g跑起来,就跟没跑一样
选一个配置最低的还是共享的ECS
选择按量付费
选择费用最低的云盘(20g一个月才7元)
不用的时候关掉服务器,随用随开,关机的时候,选择节省停机类似的模式,可以做到关机不付费,但是云盘一直会收钱,不过可以做到很低
rustDesk如何自建服务器自己去官网看,就是下载两个文件,启动即可
阿里云自建服务器指南,1小时不到1毛钱
阿里云有自己的app,创建好以后,可以设置成开机自动启动,用完关掉,一定要确认是节省停机模式,这样只有20g的云盘还在用,一个月才7块钱,然后cpu和内存,带宽还有公网ip都释放了,不要掏钱,虽然带宽拉满,100Mbps,但是1G流量是0.8元,其实一个小时后用不了多少流量的,还是花不了多少钱的,折合算下来,其实一个小时不到1毛钱,而且你还随用随关,基本上非常nice
java编码终极指南1
java中的编码
关于字符编码的方式很多,比如常用的有unicode系列的utf8,utf16,utf32,还有中国的gb2312,GBK,GBK18030等等,这些网上的资料很多,但都不是本集要讲的内容,本集要讲的内容只有三个
java的文件编码
java的string的外在编码
java的string的内在编码,jvm用的编码
本文所有的讨论,直接基于jdk17,不见兼顾jdk8,所以,不会讨论历史的情况
1. java的文件编码很多时候,大家都会说,防止文件乱码,然后统一使用utf-8,这样做没问题,但是为什么呢,这样做是对的,但是这样做的原因一定是对的嘛?
java对于文件的编码方式是可以支持别的,不一定是utf-8,这个javac -help可以看到
用utf-8的确是一个很好的选择,即使你们公司都在国内,用gb2312编码也可以,但是如果,你如果使用了自动的ci,在服务器上编码代码,如果服务器是linux的,那么它的默认编码就可以是utf-8,那你代码编译的时候,就需要手动指定编码方式,而且如果你的项目是开源的,放到github上,那么世界各地都可能有committ ...
javaagent简介
javaagent的作用javaAgent属于java比较高级的用法,平常java开发中几乎是接触不到的,比如skywalking用到了javaAgent的启动前的premain,因为可以修改加载的类,被用来做jvm级别的AOP,然后jvm诊断工具,Arthas用到了javaAgent的agentmain,启动后,也可以修改jvm的类,然后做jvm级别的AOP,然后做监控,当然Arthas还有很多其它的功能,不过大部分功能都和agentmain相关,需要修改现成的类
javaagent是什么javaagent是java5开始提供的一种机制,java6还增强了java启动的时候,增加了javaagent参数,参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求:
这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项
Premain-Class 指定的那个类必须实现 premain() 方法.
premain 方法,从字面上理解,就是运行在 main 函数之前的的类.当Java虚拟机启动时,在执行main函数之前, ...
java热加载机制的实现方式简介
java热部署机制的实现方式简介热部署和热加载定义可以看到,热部署是包含热加载的,不过,这些概念并不太重要
热部署 hot deploy热部署针对的是容器或者是整个应用,部署了新的资源或者修改了一些代码,需要在不停机的情况下的重新加载整个应用。
热加载 hotswap热加载针对的是单个字节码文件,指的是重新编译后,不需要停机,应用程序就可以加载使用新的class文件
目前存在的方案java hotswapJava Platform Debugger Architecture是java IDE 调试的基础,修改jvm启动参数即可打开,
1-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
技术原理也是java instrument api,确定:仅能修改方法体,不能增加修改方法、field
另一种可行的思路实现的思路是多种多样的,比如可以定制jvm,但是这里不讨论这些,这里只是讨论其中一种相对简单的实现
因为jvm中的class是不可变的,而且同一个classloader的同一个名字的class,j ...
java中classloader的作用
classLoader的作用java的类加载机制,从9开始,已经做出了更改,本文基于java9,所以会和其它的资料不太一样
jvm使用classLoader加载.class文件变成class对象
每个class对象都有自己的ClassLoader对象,谁加载的它,它的ClassLoader就是谁,这个可能是native的defineClass逻辑中的方法决定的
jvm使用ClassLoader+类名字来确定一个类,所以,不同ClassLoader的类无论是否一样,都不会强转成功的
一个ClassLoader只能加载一个类一次,再次加载相同名字的类,native方法会报错(只要你用了defineClass方法,但是你也必须用)
按需加载ClassLoader按照实际的需要加载需要的类,一个类如果被关联,那么它会被ClassLoader从给定的方式找到,如果找不到,就是ClassNotFoundException,对于java9来说,有一种很方便的方法可以看到到底加载了多少类
1java <app_name> -Xlog:class+load=info:classloade ...