- 博客(24)
- 收藏
- 关注
原创 Spring加载bean的流程
可以通过beanfactorypostprocessor获取和修改bean定义。initializlingbean的afterpropertiesset。Spring加载所有的class文件。
2023-03-14 07:50:04 133
原创 k8s部署应用
kubectl create secret docker-registry regcred --docker-server=<你的镜像仓库服务器> --docker-username=<你的用户名> --docker-password=<你的密码> --docker-email=<你的邮箱地址>image: registry.cn-qingdao.aliyuncs.com/charis1/demo:0.0.1 # 镜像。# 用来查找关联的 Pod,所有标签都匹配才行。# 定义容器,可以多个。
2023-03-13 14:32:00 185
原创 K8s一些简单指令
3.创建headless service,用于部署statefulset中的通过hostname连接其它节点的service。5.获取service的endpoints,并输出成yaml文件格式。1.从远程镜像仓库拉取镜像部署 deployment。2.创建service并映射节点端口。4.创建普通service。
2023-03-13 14:12:07 104
原创 删除旧Docker的命令
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \
2023-03-13 14:00:12 279
原创 Dockfile关键字以及含意
指定基础镜像,当前新镜像是基于哪个镜像的。其中,scratch是个空镜像,这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像,当前镜像没有依赖于其他镜像。类似于ADD,拷贝文件和目录到镜像中,将从构建上下文目录中<源路径>的文件/目录复制到新的一层镜像内的<目标路径>位置。当构建一个被继承的Dockerfile时运行的命令,父镜像在被子镜像继承后,父镜像的ONBUILD指令被触发。指定一个容器启动是要运行的命令。指定在创建容器后,终端默认登陆进来的工作目录,一个落脚点。容器构建时需要运行的命令。
2023-03-13 13:59:09 92
原创 安装Docker
添加"registry-mirrors":["https://v4gms44s.mirror.aliyuncs.com"]也可以将这两个repo下载下来直接放入/etc/yum.repos.d目录下。执行完成后修改 /etc/docker/daemon.json。1.需要将yum repo改成aliyun镜像。执行yum install -y docker。执行yum clean all。
2023-03-13 13:52:27 39
原创 Docker的常用命令
docker login --username=xxxx 保存仓库请求凭证 docker login --username=xxxx registry.cn-qingdao.aliyuncs.com。docker -v 挂载宿主主机磁盘 docker run -d -p 80:80 --restart=always -v /data/nginx/conf:/etc/nginx。docker -p 与宿主主机映射端口 docker -d -p 80:80 nginx:1.23。
2023-03-13 13:14:03 64
原创 K8S的部署安装
执行完后,可能安装得等4-5分钟,可在master节点查看所有pod的安装进度。8. 将桥接的IPv4流量传递到iptables的链,直接可以用附件文件替换。加入docker-ce.repo和kubernetes.repo。2. 替换yum 仓库 /etc/yum.repos.d/11.安装container(老版本安装docker)# 设置aliyun地址,不设置会连接不上。#执行脚本,直接可以用附件文件替换。#安装ipset和ipvsadm。# 安装containerd。# 安装crictl工具。
2023-03-13 12:57:20 147
原创 Dubbo容错策略
消费者同时调用多个提供者,只要有一个调用成功即结束并返回结果,用于实时性高的读操作,会浪费较多的服务器资源。广播调用所有提供者,逐个调用,任一台报错则报错,通常用于通知所有提供者更新缓存和日志等本地资源信息。消费者调用服务失败后,记录失败请求,定时重新发送请求,用于实时性不太高的服务,如消息通知操作。Failover 故障转移策略,消费者调用生产者失败时,会自动调用其他服务器,用于读操作,消费者调用服务失败后忽略,通常用于不太重要的服务,如日志操作。消费者只调用一次,失败后立即报错。
2023-03-12 21:11:38 248
原创 Redis缓存的集群
一主二从三哨兵,只提供高可用,不能分担负担,读写还是主机,主机宕机后哨兵推选出新主机,实现高可用,推荐使用,如果业务负担过高,可以单个业务部署一套,还是撑不住时换集群模式。一台主机,多台从机,主机提供写入服务,从机提供读取服务,降低主机负担,不是高可用,主机宕机后需人工切换新主机。当单个主节点丢失数据时,数据从从节点恢复到其他主节点。从节点不提供服务,从节点只用于数据备份。主节点提供服务,数据分散在不同的节点。多主多从,16384个槽。
2023-03-12 17:24:47 66
原创 分布式BASE理论
分布式系统提供的服务保证可用,牺牲数据的部分一致性。提供中间状态,数据不是最新数据,订单与积分,缓存等。要求最终达到数据的一致性,可以有延时。
2023-03-12 16:44:01 40
原创 Spring Cloud Gateway 自带Filter的简单说明
/ RequestRateLimiter 请求限流 RequestRateLimiter=10, 20, #{@principalNameKeyResolver} https://blog.csdn.net/weixin_42073629/article/details/106934827。// RequestHeaderSize 单个请求头大小超限,默认16000L 追加错误信息放到返回头,返回431状态。// 给当前请求添加一个请求头,请求头值是一个数组,可以多个相同名称的,追加。
2023-03-11 19:24:14 345 1
转载 JMX超详细解读
JMX超详细解读一、JMX的定义 JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。这是官方文档上的定义,我看过很多次也无法很好的理解。我个人的理解是JMX让程序有被管理的功能,例如你开发一个WEB网站,它是在24小时不间断运行,那么你肯定会对网站...
2018-04-02 12:41:12 304
原创 特殊字符ascii码
ASCII控制字符二进制十进制十六进制缩写可以显示的表示法名称/意义0000 0000000NUL␀空字符(Null)0000 0001101SOH␁标题开始0000 0010202STX␂本文开始0000 0011303ETX␃本文结束0000 0100404EOT␄传输结束0000 0101505ENQ␅请求0000 0110606ACK␆确认回应0000 0111707BEL␇响铃0000 ...
2018-02-27 10:50:18 16443
转载 MESI协议
MESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议,该协议被应用在Intel奔腾系列的CPU中,详见“support the more efficient write-back cache in addition to the write-through ca
2018-01-23 10:30:26 1221
原创 volatile关键字
1.volitile关键字只能保证可见性,不能保证原子性.只可以做附值操作,不可以执行运算再附值;private static final volatile a = 1;正确用法:void test(){ a = 2;}错误用法:void test(){a++;}2.volatile关键字定义的变量,存在内存中,并没有存在cpu的缓存中,所以Thre
2018-01-23 09:45:09 136
原创 分布式id创建
1.java自带uuid方式.生成的uuid太长,且不为数字类型,不是自增长,影响数据查询效率2.共享数据库生成id,N机器可以使用自增(1+N)...(N+N)数据库压力大,维护成本高,需部署多台机器3.使用Twitter的snowflakesnowflake,前42位为时间截(普通的13位long型时间,占长为41位),5位为datacenterId,5位为workerId
2018-01-22 18:12:31 179
原创 java锁
32位JVM的Mark Word的默认存储结构如下: 64位JVM下, Mark Word是64bit大小的,存储结构如下: 参考:https://www.cnblogs.com/charlesblc/p/5994162.html每一个线程在准备获取共享资源时: 第一步,检查MarkWord里面是不是放的自己的ThreadId ,如果是,表示当前线程是处于 “偏向
2018-01-22 17:57:36 127
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人