编程开发
编程开发,python,golang,c
robin5911
职业: 一名不专业的运维开发工程师
网名 : 糊涂的小白
展开
-
uniapp 支持复制当前文本内容
uniapp 小程序上面有时需要支持复制功能,如下代码即可。(注意小程序隐私协议需要打开剪切板功能)原创 2024-09-02 09:37:59 · 742 阅读 · 0 评论 -
etcd v2/v3 最全常用命令差异
命令可以查看ETCD集群的成员状态。这将列出集群中所有节点的信息,包括节点ID、名称、客户端URLs和peerURLs等。系统,广泛应用于配置共享、服务发现、分布式锁等多个领域。下面整理了v2/v3版本中命令的使用差异。命令可以监视ETCD集群中键值对的变化。当指定键的值发生变化时,该命令将输出新的键值对。命令可以获取ETCD集群中的键值对。命令可以设置键的TTL,即键在多长时间后自动删除。使用etcdctl 查看etcd 整个目录树结构。命令可以删除ETCD集群中的键值对。命令可以设置或更新键值对。原创 2024-08-29 10:01:12 · 450 阅读 · 0 评论 -
uniapp 小程序支持打开手机相册和摄像头
开发uniapp 时,有时需要让用户上传手机相册或者拍摄图片,对图片进行处理,下面提供了一个method,支持打开摄像头拍照和相册功能,完成后,对图片做base64处理。这里我使用该功能,开发了个自动识别图片的功能,支持动植物,人物,物体解析功能,可以扫码体验一下,给些建议~相对应的button 设置click到该函数即可。原创 2024-08-27 10:03:31 · 638 阅读 · 1 评论 -
uniapp 小程序页面支持微信QQ分享功能
uniapp开发小程序时候,希望能够分享当前小程序给微信好友,朋友圈,QQ群功能,可以在onload中加载参数。原创 2024-08-27 09:57:23 · 204 阅读 · 0 评论 -
cinder配置使用本地lvm
cinder-volume 默认使用 LVM 驱动,该驱动当前的实现需要在主机上事先用 LVM 命令创建一个的卷组 , 当该主机接受到创建卷请求的时候,cinder-volume 在该卷组 上创建一个逻辑卷, 并且用 openiscsi 将这个卷当作一个 iscsi tgt 给输出.还可以将若干主机的本地存储用 sheepdog 虚拟成一个共享存储,然后使用 sheepdog 驱动。原创 2024-08-16 14:57:42 · 213 阅读 · 0 评论 -
掌握一致性哈希算法
不同的负载均衡算法适用的业务场景也不同的。轮训这类的策略只能适用与每个节点的数据都是相同的场景,访问任意节点都能请求到数据。但是不适用分布式系统,因为分布式系统意味着数据水平切分到了不同的节点上,访问数据的时候,一定要寻址存储该数据的节点。哈希算法虽然能建立数据和节点的映射关系,但是每次在节点数量发生变化的时候,最坏情况下所有数据都需要迁移,这样太麻烦了,所以不适用节点数量变化的场景。为了减少迁移的数据量,就出现了一致性哈希算法。原创 2024-08-16 14:25:21 · 931 阅读 · 0 评论 -
基于python 开发调试rabbitmq - 2
基于python 3 pika 调试 openstack rabbitmq创建工作队列,类比一个大的工作,需要发送多个小任务到队列中,让多个消费者消费。原创 2024-08-14 10:43:28 · 472 阅读 · 0 评论 -
neutron服务启动源码分析(四)
初始化neutron agent, 创建br-int 交换机,启用tunnel则创建br-tun交换机以及流表, agent侧开启rpc,如果启用dvr则下发dvr流表,初始化firewall (目前是 基于iptables 的 neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver)调用了OVSNeutronAgentOSKenApp的start方法。这里初始了配置,import 了native的module。原创 2024-01-05 15:36:26 · 593 阅读 · 0 评论 -
经纬度的作用
了解并正确使用经纬度对于我们来说是非常有益的,它不仅可以满足我们对于地理位置的好奇心,还能够帮助我们更好地理解和探索我们生活的这个地球。随着科技的发展,如今我们的手机、平板电脑甚至手表等设备都内置了全球定位系统(GPS)功能,可以随时获取当前位置的经纬度。这为我们的生活带来了很大的便利,无论是出行导航还是外卖送餐,都离不开经纬度的精确定位。通过知道一个地点的经纬度,我们可以在地图上准确地找到该地点的位置。当我们在手机上使用导航软件或者在网上查找地址时,经常会发现一个选项,就是显示当前位置的经纬度。原创 2024-01-05 10:04:59 · 822 阅读 · 0 评论 -
neutron 安全组代码实现(二)
由前面安全组代码实现一中,我们知道,最终执行了ML2 plugin的create_security_group_rule 方法,由类继承我们知道最终执行了 SecurityGroupServerNotifierRpcMixin.create_security_group_rule, 函数中执行了父类sg_db.SecurityGroupDbMixin 中的create_security_group_rule。最终执行了refresh_firewall , 最终调用firewall driver更新。原创 2024-01-05 09:58:25 · 605 阅读 · 0 评论 -
neutron 安全组代码实现(一)
安全组创建create请求由controller处理,调用create函数,self._notifier.info 这里先init 了neutron-lib库中的rpc.py中的NOTIFIER,然后调用oslo_message发送了一个info的通知 security_group.create.start, 调用。因为event是events.BEFORE_RESPONSE,所以最终执行了self._notify_loop,最终执行了callback。最终发送cast广播出去了。原创 2024-01-05 09:57:14 · 1170 阅读 · 0 评论 -
openstack计算节点上iptables安全组分析
由上面可以看出,neutron-openvswi-INPUT链中将来自是 tap323ef4ca-8a和 tapa937d188-d6的流入转给了neutron-openvswi-o323ef4ca-8和 neutron-openvswi-oa937d188-d 两个安全组子链,再看下这俩安全组子链。之前介绍过neutron 安全组基于iptables 和 ct 实现,分析一下计算节点上面的neutron 安全组的iptables,加深一下理解iptables以及安全组的实现。FORWARD 链先跳到。原创 2023-11-09 16:27:19 · 568 阅读 · 0 评论 -
程序员的护城河有哪些
综上所述,程序员的“护城河”是一种综合能力,包括技术能力、经验、项目和作品集、开源社区贡献、持续学习和适应能力、解决问题的能力、团队合作能力、时间管理和情绪管理等多个方面。通过展示自己的学习能力和对新技术的掌握,程序员可以在竞争中保持优势。通过在开源项目中积极参与并提交代码,程序员可以展示他们的技术能力、合作能力和对技术社区的价值贡献。:程序员可以通过他们参与过的项目和作品集来展示他们的实际能力和成就。:程序员需要具备解决问题的能力,这包括分析问题、提出解决方案、实施解决方案和测试解决方案的能力。原创 2023-11-09 16:25:25 · 133 阅读 · 0 评论 -
Linux vim 报错 E437
方法2:要下一劳永逸,将上述命令写入 /etc/bashrc或者/etc/profile 文件确保永久生效,切记保存后顺手执行 source /etc/bashrc。方法1:要是偷懒,那直接执行命令 export TERM=linux 或者 export TERM=xterm。或者将export TERM=xterm 添加至/etc/profile文件中即可。这个错误一般是环境变量TERM没有配置或者配置错误所致。执行export TERM=xterm;原创 2023-11-08 12:59:31 · 697 阅读 · 0 评论 -
Linux-源码安装go
使用go 1.14 版本。原创 2023-11-08 12:56:30 · 400 阅读 · 0 评论 -
通过ssh隧道转发本地ssh,实现内网穿透
但我自己有比如阿里云上的一台服务器B,我想直接SSH A服务器,怎么办?实际场景,有A服务器,位于某内网环境,没有外网IP,外面无法SSH。当然也可以用开源工具 frp。原创 2023-11-07 22:43:38 · 298 阅读 · 0 评论 -
mysql常用操作集合
mysql常用操作集合。原创 2023-11-07 18:17:36 · 93 阅读 · 0 评论 -
nova虚机保存自定义镜像代码分析
虚机保存自定义镜像请求api 的_action_create_image ,这里查询instance以及bdms,因为未开enable_snapshot_volume_backed,所以执行了self.compute_api.snapshottry:bdms):context,instance,metadata)else:instance,原创 2023-11-03 15:42:42 · 560 阅读 · 0 评论 -
markdown 如何更改字体以及颜色等功能
markdown 是IT人士写文档的常用方式,但是markdown默认又不支持颜色字体等特殊功能,所以呢想实现字体颜色高亮等特殊功能,实现的方法呢就是使用HTML,所以将部分文字改成HTML代码就行原创 2023-11-03 14:55:33 · 594 阅读 · 0 评论 -
neutron服务启动源码分析(三)
v2_factory里面就是pecan的相关内容了,hooks中定义了filter用于校验body合法性的,入口在 root.V2Controller(), 这里将v2controller 传给了pecan,创建了pecan的application。这里做了很多初始化的事情, 初始化neutronManager, 初始化extensionManager初始化, 以及将pecan中 router mapping中的collection与对应的controller 对应起来。原创 2023-10-31 16:12:56 · 217 阅读 · 0 评论 -
neutron服务启动源码分析(二)
wsgi.Loader() 构造了loader实例,传入 config_path = conf.api_paste_config 使用该参数,对应到neutron配置文件中是 /usr/share/neutron/api-paste.ini,调用了loader的load_app方法。load_app 最终调用 deploy.loadapp 通过paste deploy 实现对api-paster.ini中配置信息的解析以及具体实现。上面可以看出其中api-paste.ini 中的。原创 2023-10-31 16:11:55 · 173 阅读 · 0 评论 -
neutron服务启动源码分析(一)
serve_wsgi 传入cls,然后直接调用对于cls的create函数并start启动,这里代指NeutronApiService class的create和start。boot_server函数主要是加载配置文件,配置日志,最终调用server_func() ,也就是 wsgi_eventlet.eventlet_wsgi_server。run_wsgi_app() 函数最终构造了一个wsgi Server实例,名字为Neutron,start函数中传入监听地址和端口号以及worker数量。原创 2023-10-30 11:45:50 · 385 阅读 · 0 评论 -
openstack常用命令集合
openstack常用命令集合。原创 2023-10-27 12:49:06 · 259 阅读 · 0 评论 -
Cinder volume服务启动以及创建挂载过程代码走读
cinder-volume的task_flows 中提取volume的spec相关信息,通知volume创建,开始创建volume云盘,因为基于镜像创建系统盘,所以执行_create_from_image函数,调用rbd driver clone_image,同时更新volume_glance_metadata表。筛选根据az,容量,特性等filter筛选合适的backend,并更新volume backend信息,最后调用cinde-volume的rpc_api create_volume。原创 2023-10-27 12:03:15 · 786 阅读 · 0 评论 -
go 与时间相关的计算以及实例
获取当前某年某月某日以及格式化输出年月日等。计算当前时间以及几天前的时间。原创 2023-10-27 10:44:28 · 147 阅读 · 0 评论 -
vue 2使用Element UI
接下来,可以在当前项目的任何视图中使用Element UI!安装完成后,还需要在main.js中添加配置。改变后的main.js。原创 2023-07-22 15:15:40 · 125 阅读 · 0 评论 -
golang优化-处理断言失败
类型断言 将会在检测到不正确的类型时,以单一返回值形式返回 panic,处理不好会对线上服务造成严重影响。因此,请始终使用“逗号 ok”的方式。原创 2023-07-21 06:49:08 · 110 阅读 · 0 评论 -
golang优化-正确姿势使用 goroutine
Goroutines 是轻量级的,但它们不是免费的: 至少,它们会为堆栈和 CPU 的调度消耗内存。虽然这些成本对于 Goroutines 的使用来说很小,但当它们在没有受控生命周期的情况下大量生成时会导致严重的性能问题。具有非托管生命周期的 Goroutines 也可能导致其他问题,例如防止未使用的对象被垃圾回收并保留不再使用的资源。因此,不要在代码中泄漏 goroutine。使用 go.uber.org/goleak 来测试可能产生 goroutine 的包内的 goroutine 泄漏。原创 2023-07-20 17:52:56 · 85 阅读 · 0 评论 -
小刀初试之使用idea开发vue
idea安装vue插件使用原创 2023-07-19 22:31:22 · 969 阅读 · 0 评论 -
gorm-使用mysql事务
了解mysql事务并通过grom使用mysql事务原创 2023-07-19 10:59:20 · 506 阅读 · 0 评论 -
openstack-cinder-volume服务启动分析
分析cinder-volume服务启动流程,代码分析原创 2023-07-11 18:06:53 · 441 阅读 · 0 评论 -
go-基于list方式的redis消息队列
基于list方式的redis消息队列原创 2023-07-06 10:51:18 · 231 阅读 · 0 评论 -
uniapp-小程序获取微信用户名称和头像
uniapp 开发小程序过程中,如何获取微信用户的昵称和头像信息,这个uniapp已经集成,通过getUserInfo即可获取到。原创 2023-06-30 21:46:25 · 4319 阅读 · 6 评论 -
go-连接使用mongo-增删改查(二)
mongo 连接自然要对文档进行增删改查,原创 2023-06-30 09:50:26 · 268 阅读 · 0 评论 -
go-连接使用mongo(一)
使用版本 go.mongodb.org/mongo-driver v1.8.4。工作中开发基于go,需要连接mongo,一直稳定运行,记录一下代码。原创 2023-06-30 09:49:59 · 324 阅读 · 0 评论 -
go-gorm 之mysql数据库读写分离
gorm 数据库mysql读写分离原创 2023-06-29 18:32:09 · 826 阅读 · 0 评论 -
go-gorm使用连接池连接mysql数据库
工作中服务端使用go开发的,需要连接mysql ,基于gorm,经过稳定运行,记录一下连接mysql的代码吧。原创 2023-06-29 14:25:34 · 1020 阅读 · 0 评论 -
uniapp-小程序开发如何获取当前地理位置
uniapp-小程序开发如何获取当前地理位置。原创 2023-06-28 22:17:30 · 1887 阅读 · 0 评论 -
openstack-nova-虚拟机热迁移过程源码刨析
其中_call_livem_checks_on_host函数会rpc 远程调用到目的主机上去执行/nova/compute/manager.py 下的 check_can_live_migrate_destination函数来检验目的主机是否满足热迁移,同时目的主机也会远程调用check_can_live_migrate_source函数检查源主机是否支持热迁移。_do_live_migration函数中的核心代码是pre_live_migration和live_migration的调用。原创 2023-04-13 10:53:55 · 1037 阅读 · 0 评论 -
openstack-nova-虚机创建流程以及源码分析(二)
创建image镜像,准备xml信息,然后调用_create_domain_and_network 创建libvirt guest信息 以及网络vif等信息,进行 plug_vifs 以及根据所选的防火墙driver进行 配置基础的filter (Set up basic filtering (MAC, IP, and ARP spoofing protection) 以及准备虚机的basic 防火墙filter (放行dhcp udp 67/68端口等),再直接调用libvirt 的driver启动虚机。原创 2023-04-11 13:59:11 · 390 阅读 · 0 评论