traefik简单介绍
traefik简单介绍nginx大家都很清楚,家喻户晓,从apache,到nginx,几乎开启了一个新时代,但是这么多年以来,软件的发展迅速,各种新事物层出不穷,微服务,devops,集群,k8s等等出现,再也不是原来一个简简单单的web,不可能再重新部署以下服务,然后nginx重新启动一下这么简单了,所以,现在需要一个功能强大,比如tcp,http,而且需要支持动态部署,比如服务新增或者挂掉以后,能自动代理,无需人为干预
概念边缘路由 edge router比如nginx是http服务器,但是traefik几乎可以代理所有的网络服务,比如redis,mysql,这些是tcp系列的,还有http系列的,边缘路由,就是很强大的路由,一个能代理几乎一切的路由这是官网的描述
自动服务发现 auto service discovery把你服务部署的时候,附加上路由信息,traefik可以自动获取配置信息,来路由,当你的服务移除的时候,traefik也可以自动发现, 去移除,这一切都是自动的,你无需去同步配置,然后重启
traefik 架构
Providers负责发现服务
Entrypoin ...
camunda常见功能解析
camunda常见功能解析从camunda desktop modeler的角度来分析一下,camunda到底有那些功能
一些重要的概念external task类似用户任务,设计的意图,比如可以调用外部系统,但是和用户任务的设计意图不一样,只是使用方式一样
job execution当一个time event发起,或者当一个任务被标记成异步以后,它就变成了job,成为了job,以后,有以下的优点
非阻塞,任务可以继续执行
增加了重试的机制
Asynchronous Continuations一篇很好的解释
1234567<!-- AFTER (new) --><serviceTask id="service1" name="Generate Invoice" camunda:asyncAfter="true" camunda:class="my.custom.Delegate" /><!-- BEFORE --><serviceTask id=&quo ...
hazelcast-management-center控制中心简介
hazelcast-management-center控制中心简介hazelcast和ignite一样,为了可视化操作,都自带了控制中心一样的东西
配置控制中心配置控制中心所在的地址即可,可以配多个,否则manager-center无法连接
12345678910111213141516@Configurationpublic class HazelcastConfiguration { @Bean public HazelcastInstance hazelCastConfig() { Config config = new Config(); ManagementCenterConfig managementCenterConfig = new ManagementCenterConfig(); managementCenterConfig.addTrustedInterface("192.168.50.233"); //可以配置多个 config.setManageme ...
hazelcast入门使用
hazelcast入门使用hazelcast本来就是个java项目,所以,hazelcast的团队写了代码以后,打成jar,如果加个启动,就是独立的程序,如果采用jar依赖的方式,就是嵌入式部署,这个很好理解的
嵌入式部署,相对来说,减少网络开销,速度更快一些,但是如果挂了,会一起挂,
独立部署,独立性更好,比较隔离
角色区别,hazelcast还可以分为server和client,client不会存储数据和修改数据
嵌入式部署嵌入式部署比较方便,而且因为是一个jvm速度上是有优势的,hazelcast的api变化幅度还是比较大的,所以,网上的资料都已经不适用了,只能自己去官网看资料,这是地址官网文档地址,里面有全文搜索,虽然hazelcast有spring-boot-starter,但是开发的进度比较慢,比如5.2.1已经发布了,但是starter还没发布,所以,这里的演示不用starter
12implementation 'com.hazelcast:hazelcast-spring:5.2.1'implementation 'com.hazel ...
分布式缓存redis,hazelcast,ignite,infinispan简介
分布式缓存redis,hazelcast,ignite,infinispan简介本文主要简单的介绍一下这些分布式缓存中间件,了解其基本原理
redisredis国内其实很火,虽然redis很火,性能很给力,但是redis本质上是个单线程的单机缓存,不过redis6.0以后增加了多线程,本期要了解分布式缓存,所以,顺带也说一下能把reids变成分布式的技术
主从
分片
其实思路很像mysql支持集群,但是归根到底,redis是一个单体缓存,如果变成分布式,其实mysql已经有了很多经验,完全可以类比
主从主从,其实严格来讲不是分布式,只是高可用的一种
分片因为redis本身是个单体缓存,所以,要支持分布式,就需要分片,这个时候,其实就有很多思路,比如proxy模式的sever分片,和客户端分片之类等等的方案
infinispaninfinispan是redhat的,国内的资料比较少,人气也很少,就不介绍了,你只需要知道它也是个分布式缓存,混个脸熟即可
hazelcast和ignite的相同之处hazelcast和ignite其实很像,各方面都很像,就连github的start数量也很 ...
manjaro使用qemu安装win10详细教程
manjaro使用qemu安装win10详细教程主机是manjaro,使用qemu安装win10,以前那些文章,上来讲的都是怎么优化,而且并不是很详细,所以,这里,就详细的讲了如何安装win10
准备
win10镜像,这里推荐win10的22h2版本
准备virtIO驱动,驱动下载地址,找到最新的文件夹,直接下载virtio-win.iso
manjaro安装qemu安装qemu1sudo pacman -Syu qemu-base virt-manager
设置libvirtd开机启动12sudo systemctl enable libvirtd.servicesudo systemctl start libvirtd.service
允许普通用户使用qemu修改libvirtd.conf配置
123# /etc/libvirt/libvirtd.confunix_sock_group = "libvirt"unix_sock_rw_perms = "0770"
添加当前用户到libvirt组
12sudo usermod -a -G ...
qemu显卡直通详细教程
qemu显卡直通详细教程虚拟机的3d性能,除了直通以外,都是模拟的,性能一般有好有坏,无论是virtualbox还是vmware,其实他们的3d性能,不论好与坏,都是模拟的驱动,这点你可以通过windows的设备管理器看出来,与真实的差距其实还是不小的,2d的游戏可以玩,但是3d的游戏,就算是能玩,综合各方面的因素,体验也是上不去的,所以,如果你想要一个强大的虚拟机,显卡直通是必然的,只有这一条路,只有显卡直通以后,3d性能变成原生的,你的虚拟机,才会没有短板,综合体验也上去
什么是显卡直通显卡直通拿qemu为列,就是linux启动的时候,一张独显,不加载驱动,保留下来,然后虚拟机启动以后直接使用,到时候虚拟机的显卡驱动,直接就是对应显卡型号的原生驱动
显卡直通需要具备什么条件显卡直通也分很多种,比如单显卡直通,双显卡直通,但是双显卡直通是最优的,一般是主机使用集显,虚拟机使用独显(反过来可以吗,我没试过,也可能因为技术原因根本就没法反过来),以我自身为例,双显卡,双显示器
cpu 9600k,带集显(一般bios有独显的时候,会默认屏蔽集显,需要把集显调成可用,这点需要注意)
...
qemu优化后跑分测试
qemu优化后跑分测试前面写过一片文章,就是qemu优化,今天分享一下qemu拉满优化以后的跑分,用娱乐大师,看看效果如何
话不多说,直接上图
解读一下,这个跑分
cpu,9600k本来的平均跑分36w左右,这里30w,还用了4个核,其实是超常发挥的(这里是cpu pin,cpu设置和真机保持一致,避免了线程切换的损耗)
显卡跑分,rx460的跑分,本来就是8w左右的样子,看来这里的显卡直通,完整的发挥了硬件的性能,几乎没有任何的损耗(显卡直通)
内存跑分,内存跑分,这个不同的内存差距比较大,不过我的是ddr4 2666hz,我看网上的例子,单通道的ddr4 2666hz差不多是5w分(这里直接使用了大页内存,8个1g的内存,直接连续,减少了寻址的次数)
存储的分数,前面也有讲过,这个其实水分很大,因为连续读写用了缓存,是虚假的跑分,意义不大(virtIO虽然比不上存储直通,但是无论是sata和nvme的ssd的virtIO驱动,都是够用的,不会成为瓶颈)
结论我们前面的优化都是非常有效的,从cpu pin,再到使用大页的内存,再到显卡直通,几乎获得了一个和真机一样的虚拟机,而且 ...
qemu全方位优化指南
qemu全方位优化指南qemu优化和不优化差距很大,优化好了,几乎和真机一样的体验
本篇文章的每一个章节,铺开了讲,都能写好几章,所以,这里不涉及原理,只提供思路和参考,具体的实践,你还要通过多搜一下才能达到
优化的思路
一个电脑快,到底是什么促成了一个电脑快,首先cpu强大,再内存够用,然后存储的io跟的上,然后网络要快,2d和3d的性能要强劲,总共就这几个方向
cpu强大
内存够用
存储io要快
网络io要快
图形性能要强大,包括2d和3d的支持
qemu优化
cpu pin
cpu数量优化
使用huagepages
hyperv相关优化
安装virtio-win驱动,改善易用性,相当于vmware或者virtualbox的增强工具
有机后了,如果你一个集显,一个独显,可以显卡passthough,补上虚拟机3d性能的遗憾
cpu优化cpu pincpu pin以后,可以让cpu和线程绑定起来,然后减少上下文切换
这里以我的cpu为例,i5-9600k,总共6个核心,我给他们分配了4个,剩下2个,一个分给了emulatorpin,一个分给了iothreadpin,实际使用了 ...
qemu各种存储类型io大比拼
qemu各种存储类型io大比拼qemu是linux的虚拟机,负责虚拟化一个机器出来,包括cpu,内存,pci,存储,网卡之类的,但是纯模拟效率比较低,所以,一般和kvm配合,kvm负责虚拟内核,然后qemu继续负责外围,所以,qemu-kvm是linux平台的主流虚拟机,性能也是相当高
今天就来介绍一下,qemu的各种io类型的跑分,首先,先说结论,virtIO的性能也是非常好的,可以做到够用,但是想要强,还是要PCI passthough,花不多说,上图吧
talk is cheap,show me the benchmark这些图片是引用了一个up主的视频Adding VirtIO and passthrough storage in Virtual Machine Manager
这些跑分应该这样解读,顺序读写看着很快,其实只有大文件读写才用得到,主要还是看4k的速度,4k的速度,单线程和多线程都很重要,上面两个是顺序,下面两个是4k,所以,virtio默认带缓存的时候,看起来顺序读写很吓人,其实没太大用处
all表示执行全部任务
SEQ1M|Q8T1表示顺序读写,位深10 ...