- 博客(61)
- 资源 (1)
- 收藏
- 关注
原创 docker打包多架构镜像(manifest)
可以实现docker多架构打包,这样不同的系统架构,也可以使用同一个镜像,就不用再给镜像每个镜像的版本后面拼接**-arm64。在执行pull操作时,客户端会自动将当前的架构发送给服务端,服务端则会响应对应架构的镜像。通过将多个镜像的清单文件,汇总成一个清单列表,为每个清单文件标注上对应架构。由于没有arm架构的机器,这里直接用tag,创建两个不同的镜像,模拟演示。本质上,外部看到的这个镜像,其实不算是一个镜像,应该称它为。是一个文件,其中包含了镜像的基本信息,例如架构,大小等。再为每个镜像,标注架构。
2022-11-21 19:15:44 3117 3
原创 算力节点加入k8s集群calico插件报错Unable to auto-detect an IPv4 address using interface regexes [eno1]: no valid
如果按照eno1的匹配规则,是找不到bm1684算能盒子节点的,所以,需要修改calico的IPV4网卡匹配规则。这里是直接修改的已运行的calico组件,也可以直接去yaml文件中,找到这个环境变量,在下面加一个环境变量。这里原本是只有eno1的,所以calico只会去匹配名称为eno1的网卡,并获取它的IP。而我使用的bm1684算能盒子,是 PCI-E独立网卡,所以网卡名是enpxxxx。然后重新创建下calico,也是可以的。如图所示,IP获取方式为自动获取。下面是各个网卡名所表示的含义。
2022-09-16 14:42:50 1381
原创 SpringBoot默认Jackson解析json大小写转换问题导致前端传值后端接收不到
SpringBoot默认Jackson解析json大小写转换问题导致前端传值后端接收不到
2022-06-22 22:38:20 1151
原创 使用nfs为k8s提供pv动态供给存储
环境:k8s一主两从k8s-master: 192.168.31.200k8s-node1: 192.168.31.201k8s-node2: 192.168.31.202nfs: 192.168.31.100nfs共享目录:/data1、搭建nfs服务器1、更改/etc/exports文件/data 192.168.31.0/24(rw,async,no_root_squash)/data:nfs服务器上提供的共享目录192.168.31.0:表示白名单ip,这里192.168.31
2022-03-25 16:34:49 2984 1
原创 Java8中lambda表达式分组后去重、排序、合并
List<HomeSettings> list = settingsList.stream().filter(x -> x.getCode().contains(oneOuid)) .collect( Collectors.groupingBy(HomeSettings::getName, Collectors.mapping(
2022-02-16 14:13:43 2096
原创 k8s安装nginx-ingress-controller
k8s版本为,v1.20.21、下载nginx-ingress-controller对应yaml下载地址:https://github.com/kubernetes/ingress-nginx/blob/main/deploy/static/provider/cloud/deploy.yaml如果地址不正确了,可以到github去找github(点击跳转)2、下载所需镜像deploy.yaml中有三个镜像是需要到k8s.gcr.io去下载的,但是这个网站需要翻墙,那么,只能到https:/
2021-12-21 23:13:39 3107 3
原创 使用rclone挂载FTP目录到Minio
环境Minio挂载远程FTP目录,上传文件至FTP目录下时,自动同步到Minio中机器工具192.168.31.190FTP192.168.31.191MinioMinio挂载FTP,所以rclone是安装的Minio所在机器上安装rclone官网官网推荐安装方式curl https://rclone.org/install.sh | sudo bash下载完成配置使用rclone config进行挂载配置rclone支持很多种对象存储服务器的挂
2021-11-16 23:34:00 3884 6
原创 Centos7.6搭建Minio文件系统,并添加开机自启动(使用systemctl控制)
下载wget http://dl.minio.org.cn/server/minio/release/linux-amd64/miniochmod 777 minio启动脚本指定用户名、密码、数据存放目录在minio文件同目录,新建一个start.sh脚本,内容为以下代码ROOT_DIR是minio所在文件夹MINIO_ROOT_USER:账号MINIO_ROOT_PASSWORD:密码–address:服务端接口–console-address:web后台接口$ROOT_DIR
2021-11-16 22:47:40 1321
原创 Centos7.6搭建FTP,并设置账号只能访问指定目录(解决了530问题)
1、安装vsftp防止后面出现500错误,先把selinux关闭vim /etc/selinux/config将SELINUX=enforcing修改为SELINUX=disabled修改完后,需要重启服务器才能生效,reboot一下开始安装yum install -y vsftpd直接用yum安装就好然后systemctl查看一下状态systemctl status vsftpd2、配置关闭匿名登录配置用户只能访问指定目录开启被动模式限制被动模式端口范围对应配置关
2021-11-16 22:19:45 3122 2
原创 MySQL数据页,B树,B+树,innodb索引树的演变历史
1、数据页MySQL中有很多的页1、B-Tree Node(数据页,索引页)2、Undo Log Page (undo页)3、System Page(系统页)4、Transaction System Page(事务数据页)5、Insert Buffer Bitmap(插入缓冲位图页)6、Insert Buffer Free List(插入缓冲位图列表页)7、Uncompressed Blob Page (未压缩的二进制大对象页)本文主要讲解最常见的数据页在MySQL中,数据页是存储数据的
2021-09-30 15:19:55 698
原创 MySQL之联合索引,覆盖索引,索引下推
本文演示所用的表结构CREATE TABLE `test_group_index` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` varchar(10) DEFAULT NULL, `b` varchar(10) DEFAULT NULL, `c` varchar(10) DEFAULT NULL, `d` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAUL
2021-09-27 20:52:37 1116 1
原创 Java动态代理之JDK动态代理Proxy类
注:示例代码如下public interface ProxyInterface { String targetMethod(String param);}public class JDKProxy { public Object getInstanceProxy(Class c) { Object instance = Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
2021-09-20 19:01:47 963
原创 Netty pipeline执行机制
pipeline结构如下 ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast("decoder", new MyClientDecoder()); pipeline.addLast(new MyServerHandler()); pipeline.addLast("encoder", new MyClientEncoder());MyServerHandler.java代码如
2021-08-31 21:12:55 675 1
原创 helm安装openebs报错Error: release openebs failed: namespaces “openebs“ is forbidden: User “system:servic
所有错误解决办法执行下面两行命令kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tillerkubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"
2021-08-19 17:01:15 898
原创 kubernetes之helm安装报错“https://kubernetes-charts.storage.googleapis.com“ is not a valid chart repositor
完整报错解决办法先手动创建repositories.yaml文件,执行命令touch /root/.helm/repository/repositories.yaml然后再更改地址为国内地址helm repo add stable https://charts.helm.sh/stable最后再执行初始化命令就可以了helm init --service-account=tiller --tiller-image=sapcc/tiller:v2.16.6 --history-max 30
2021-08-19 16:10:44 1240
原创 Redisson实现分布式锁以及lock()方法源码,流程解析
创建Redisson这里创建了一个单体的Redisson,集群创建方式参考redisson官网 @Value("${spring.redis.host}") String host; @Value("${spring.redis.port}") String port; @Value("${spring.redis.password}") String password; @Bean public RedissonClient redi.
2021-07-05 14:05:09 6076 2
原创 Wireshark日期过滤条件
frame.time >= "Apr 16, 2021 06:00:00.0" && frame.time <= "Apr 16, 2021 06:59:00.0"通过data.data可以启动报文中的数据,但是是ASCII值data.data contains 23:23
2021-05-13 13:51:02 2136
原创 Centos7安装Flume1.9.0
1、下载Flumewget https://mirror-hk.koddos.net/apache/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz2、解压tar -zxvf apache-flume-1.9.0-bin.tar.gz
2021-03-01 16:37:52 301
原创 设计模式-单例模式
单例模式的定义与特点单例模式:指一个类只有一个实例,且该类只能由自己自行创建这个实例的一种模式,对外提供一个获取实例的方法,不需要实例化该类的对象。单例模式有三个特点:单例类只有一个对象该单例对象必须由单例类自行创建单例类对外提供一个访问该单例的全局访问点单例模式优缺点优点单例模式可以保证内存里只有一个实例,减少了内存的开销可以避免对资源的多重占用单例模式设置全局访问点,可以优化和共享资源的访问缺点不适用于经常变化的对象,入同一类型的对象经常在不同的场景下变化,容易引起数据
2021-02-02 13:59:07 489 1
原创 设计模式-各个类型模式的特点
1、创建型设计模式创建型设计模式,分为以下几种单例模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式原型模式(克隆):将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例工厂模式:定义一个用于创建产品的接口,由子类决定创建什么类型的产品抽象工厂模式:提供一个创建产品族的接口,其每个子类都可以生产一系列相关的产品建造者模式:将一个复杂的对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。注:有限多例模式就是
2021-01-31 13:54:38 1717
原创 设计模式-面向对象六大原则
1、开闭原则开闭原则指的是,开发软件的扩展,封闭软件的修改,当应用的需求改变时,不修改软件的源代码的前提下,可以扩展模块的功能,使其满足新的需求开闭原则的作用1、对软件测试的影响软件如果遵守开闭原则,在需求变化时,只需要测试扩展的代码,因为原有代码并没有改动,依旧能够正常运行2、可以提高代码的复用性粒度越小,被复用的可能性就越大;在面向对象的程序设计中,根据原子和抽象编程可以提高代码的复用性3、可以提高软件的可维护性遵守开闭原则的软件,其稳定性高和延续性强、从而易于扩展和维护注:一个软件产
2021-01-29 12:46:13 159
原创 Cnetos安装clickhouse以及注意事项
sudo apt-get install apt-transport-https ca-certificates dirmngrsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4echo "deb https://repo.clickhouse.tech/deb/stable/ main/" | sudo tee \ /etc/apt/sources.list.d/clickhouse.list
2021-01-22 14:17:42 531
原创 Java中的钩子函数
钩子函数的概念源于模板方法模式(Template Method Pattern)模板方法的核心概念就是,提供一个算法的骨架,将一些算法实现的逻辑,交由子类来完成。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。而钩子函数在这个模式中,就是在抽象父类里,提供了一个默认的方法,父类对这个方法有一个默认的实现(也可不实现),子类可以对这个方法进行重写,从而影响到父类的实现逻辑。钩子,顾名思义,就是用来挂东西的,模板方法模式中的抽象父类,就是被挂的、被勾住的,而钩子函数,就是哪个钩子,我
2020-12-13 16:31:38 4115
原创 Springboot将yml配置文件中配置注入静态变量中
1、配置文件default_city_code: 3506000000002、代码@Componentpublic class MapUtils { static String defaultAreaCode; @Value("${default_city_code}") public void setDefaultCityCode(String cityCode){ defaultAreaCode = cityCode; } }
2020-12-11 12:17:18 1283
原创 SpringBoot集成WebSocket
1、引入pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>2、开启Wbesocket支持@Configurationpublic class W
2020-12-09 17:14:52 140
原创 SpringBoot读取指定YML配置文件含配置对象集合
1、创建配置文件application-county-contour.ymlcontour: zoom: 12 param-infos: - area_code: 350602000000 left_down: 117.492954,24.484256 right_up: 117.721185,24.69892 - area_code: 350603000000 left_down: 117.668088,24.4779
2020-12-08 17:45:39 2079
原创 Java实现桥接模式结合适配器模式
1、桥接模式桥接(Bridge)模式包含以下主要角色。抽象化(Abstraction)角色:定义抽象类,并包含一个对实现化对象的引用。扩展抽象化(Refined Abstraction)角色:是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。实现化(Implementor)角色:定义实现化角色的接口,供扩展抽象化角色调用。具体实现化(Concrete Implementor)角色:给出实现化角色接口的具体实现。桥接模式,是在一个类中,某个对象有不同维度的实现
2020-12-02 12:58:29 580
原创 Java实现深克隆,浅克隆
在说Cloneable接口前,先将一下什么是浅克隆,什么是深克隆浅克隆浅克隆,顾名思义就是把表层的东西复制一份,对于基础数据类型来说,就是把值克隆一份(栈中的值),而对引用数据类型而言,则是复制了一份引用地址。例如User user1 = new User();User user2 = user1;以上代码可以理解为浅克隆,两个对象操作的都是同一个引用地址深克隆沈克隆,则比浅克隆要克隆的更加深层次,深克隆相当于是直接又创建了一个属性相同的对象,可以理解为在堆中,把原有空间的值,复制了一
2020-11-04 13:12:38 313 2
原创 Jdk1.8HashMap底层源码理解
/* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */package java.util;import java.io.IOExce
2020-10-20 12:38:47 147
原创 Linux通过shell脚本定时删除三天前的日志文件
1、脚本#!/bin/bashdate_time=$(date -d "${time} - 3 day " +%s)for file in `ls`;do file_date=$(echo $file | awk '{match($0,/([0-9]+(-)[0-9]+(-)[0-9]+)/,a)}{print a[0]}') if [ ! -z "$file_date" ]; then file_date_time=$(date -d
2020-09-27 17:33:12 2217
原创 application.yml自定义对象集合(List<Object>)
application.ymlvalid: param-infos: - url: www.baidu.com develop: false - url: www.baidu.com develop: false - url: www.baidu.com develop: true创建一个实体,来对应配置文件中的字段ParamInfo.java@Datapublic class ParamInfo extends BasePOJO
2020-09-18 15:08:16 2581 3
原创 Fiddler抓取HttpClient发送的Http请求
HttpHost proxy = new HttpHost("127.0.0.1", 8888, "http");//127.0.0.1:8888地址为fiddler的抓包代理地址 DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy); private CloseableHttpClient client = HttpClients.custom().setRoutePlanner(route.
2020-09-07 19:20:56 189
原创 C# Web配置外部可以访问(Asp.Net 配置IISExpress允许外部访问)
在windows server服务器上配置C# web外部通过公网ip进行访问1、保证系统安装了IISExpress(一般Visual studio默认都会安装,能启动web就算是安装了)下载地址(10.0版本):https://www.microsoft.com/zh-CN/download/details.aspx?id=482642、创建虚拟目录点击这个小箭头,下拉选择,web属性,选项3、启动项目,查看配置文件并修改启动项目之后,在系统右下角,就能看到IIS容器右击,选择,显示所
2020-07-24 10:12:41 2620
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人