- 博客(265)
- 资源 (2)
- 收藏
- 关注
转载 Mac的环境变量配置文件zsh与bash
一、什么是shell?shell 单词的本意是“壳子”,在计算机领域一样可以理解为机器外面的一层壳,目的是进行用于人机交互,本质上是命令解释器。总结一下就是:只要是人与电脑之间交互的接口,就可以称为 shell。二、shell有哪些?1、zsh很多人的 mac 中会使用 zsh 而不是 bash,一大半是因为 oh-my-zsh 这个配置集,它兼容 bash,还有自动补全等好用的功能。2、shsh的全称是 Bourne shell,由 AT&T 公司的 Steve Bourne开发,为
2022-05-25 23:10:07
7696
转载 golang yaml与json相互转化
原文链接:https://github.com/ghodss/yamlpackage mainimport ( "fmt" "github.com/ghodss/yaml")func main() { j := []byte(`{"name": "John", "age": 30}`) y, err := yaml.JSONToYAML(j) if err != nil { fmt.Printf("err: %v\n", err) return } fmt.Println
2022-04-18 21:41:47
2672
转载 git cherry-pick 冲突解决
cherry pick1、作用:把A分支的commit同步更新(提交)到B分支2、使用步骤1)git checkout B2)git cherry-pick -n [A分支中的commitId]3)git status 查看是哪些文件发生冲突(红色的为有冲突的文件)4)解决冲突5)git add 这些文件(git add相当于标记为已解决)6)接下来可以继续cherry pick下一个需要同步的commit,如若不继续,即可在B分支提交同步转自:https://blog.youkuaiyun.com
2022-03-23 23:45:07
3379
转载 在 macOS 系统上安装和设置 kubectl
转自 https://kubernetes.io/zh/docs/tasks/tools/install-kubectl-macos/#verify-kubectl-configuration
2022-03-23 23:37:07
2757
原创 使用kubeadm安装Kubernetes
一、环境信息1、操作系统:CentOS 7.62、master节点:172.26.167.1383、worker节点:172.27.192.168,172.26.167.1394、docker版本:18.06.35、kubelet版本:1.15.06、kubeadm版本:1.15.07、kubectl版本:1.15.0二、所有节点(master和worker)1、检查操作系统1)cat /etc/redhat-release CentOS Linux release 7.6.1810
2022-03-13 22:23:18
2193
1
转载 kubernetes调度之污点与容忍
NodeAffinity节点亲和性,是Pod上定义的一种属性,使Pod能够按我们的要求调度到某个Node上,而Taints则恰恰相反,它可以让Node拒绝运行Pod,甚至驱逐Pod。 Taints(污点)是Node的一个属性,设置了Taints(污点)后,因为有了污点,所以Kubernetes是不会将Pod调度到这个Node上的。 于是Kubernetes就给Pod设置了个属性Tolerations(容忍),只要Pod能够容忍Node上的污点,那么Kubernetes就会忽略Node上的污点,就
2022-03-10 21:48:58
990
原创 Prometheus metric
一、Metric获取方式1、graph页面http://普罗米修斯域名/graph2、API接口1)瞬时数据查询2)区间数据查询二、PromQL1)基本语法2)操作符3)内置函数三、常用度量指标类型指标含义CPUcontainer_cpu_cfs_periods_total容器生命周期中度过的 cpu 周期总数CPUcontainer_cpu_cfs_throttled_periods_total容器生命周期中度过的受限的 cpu 周期总数CP
2022-03-06 16:17:39
1099
转载 安装wiki
一、下载安装包和破解包1、下载confluencewget https://downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.15.4-x64.bin2、下载破解工具wget https://files.cnblogs.com/files/Javame/confluence破解工具.zip3、下载mysql驱动wget https://files.cnblogs.com/files/Javam
2021-10-24 10:39:08
1436
原创 安装Docker环境
1、下载安装包,本文用的docker-20.10.0.tgz2、安装:本文安装在/home/docker 目录(安装目录需要足够大,或挂载较大磁盘) 1)创建文件夹:mkdir /home/docker 2)安装包上传到/home/docker目录 3)安装cd /home/dockertar zxvf docker-20.10.0.tgzcp docker/* /usr/binln -s /home/docker /var/lib/ 4)配置成系统服务vi /usr/lib/syst
2021-10-24 10:00:49
1073
原创 JVM参数设置模版
-Xmx4g \ 最大堆内存-Xms4g \ 初始化堆内存-Xmn1g \ 年轻代大小-XX:SurvivorRatio=10 \ 伊甸园:幸存1:幸存2=10:1:1-XX:MetaspaceSize=256m \ 元空间高水位线,默认21m-XX:MaxMetaspaceSize=512m \ 元空间最高水位线-server \-XX:LargePageSizeInBytes=128M \ 单个内存页大小,默认4M-XX:SoftRefLRUPolicyMSPerMB=1000 \ 每
2021-09-03 20:22:18
305
原创 JVM监控:springboot actuator + springboot admin
最近几个月天天加班,好久没更新博客了。这两天排查一个CPU飙高导致服务假死的问题,常规套路:jpstop -H -p 进程IDjstack -l 高CPU线程以上常规套路相信大家都比较熟练,但是当节点比较多的时候,就需要挨个进到机器或容器内,查看jvm堆栈情况,耗时耗力,如果能使用可视化工具就方便多了。Arthas(阿尔萨斯)需要单独部署成进程,部署复杂;springboot actuator作为信息采集客户端,springboot admin作为可视化页面,侵入性较小,因此选择后者,废话不多,上
2021-08-03 01:41:13
1491
转载 监控工具选型对比
监控维度可以分为节点资源监控(CPU、内存、带宽、磁盘)、应用探活监控(探活心跳)、应用服务能力监控(自动化回归测试)、应用服务性能监控等(全链路追踪),本文主要对比节点资源监控中常使用的prometheus和zabbix。一、监控工具1、prometheus Kubernetes自从2012年开源以来便以不可阻挡之势成为容器领域调度和编排的领头羊,Kubernetes是Google Borg系统的开源实现,于此对应Prometheus则是Google BorgMon的开源实现。Promethe
2021-02-27 13:29:58
1412
转载 全链路追踪选型对比
监控维度可以分为节点资源监控(CPU、内存、带宽、磁盘)、应用探活监控(探活心跳)、应用服务能力监控(自动化回归测试)、应用服务性能监控等(全链路追踪),本文主要对比全链路追踪中常使用的Zipkin、Pinpoint、SkyWalking和CAT。一、全链路追踪工具1、Zipkin Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。2、Pinpoint 韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特
2021-02-27 13:29:16
3864
原创 远程调用选型对比
一、远程调用 一般来说服务间远程调用有两种方式,HTTP和RPC。HTTP主要包括Httpclient、OkHTTP、RestTemplate、Feign(对RestTemplate封装可集成Ribbon做负载均衡)等;RPC主要包括dubbo、grpc、brpc、motan、rpcx、thrift等。本文主要对比springcloud框架常使用的远程服务调用框架Feign和Dubbo二、远程调用对比对比项feigndubbo协议httprpc/rmi/http性能
2021-02-27 13:28:17
1164
原创 网关选型对比
一、为什么使用网关 不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题: 1)客户端会多次请求不同的微服务,增加了客户端的复杂性 2)存在跨域请求,在一定场景下处理相对复杂 3)认证复杂,每个服务都需要独立认证 4)难以重构,随着项目的迭代,可能需要重新划分微服务 5)某些微服务可能使用了防火墙 / 浏览器不友好的协议,直接访问会有一定的困难 典型的网关架构如下:二、常见网关对比1
2021-02-27 13:27:33
3312
原创 配置中心选型对比
一、为什么使用配置中心1、配置的动态更新:修改配置后,不重启服务也能使修改后的配置生效2、配置集中式管理:如果每个节点自己维护配置文件,当有成百上千的服务节点时,维护起来成本太大3、配置内容的安全性和权限:有些密码、密钥等保存在代码库会被所有享有代码库权限的程序员看到,容易泄密4、多环境下的配置管理二、常见配置中心对比功能点SpringCloud ConfigApolloNacos开源时间2014.92016.52018.6配置实时推送支持(SpringCl
2021-02-27 13:26:50
1211
原创 注册中心选型对比
一、为什么使用注册中心 服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。二、常见注册中心对比对比项NacosEurekaConsulZookeeper数
2021-02-27 13:25:56
1489
原创 基于Netty实现UDP双向通信
1、Channel继承关系关于ChannelPipeline原理可参考:https://blog.youkuaiyun.com/qq_21033663/article/details/1056742612、NIO Channel分类1)NioDatagramChannel:发送和接收数据包,支持TCP和UDP,对DatagramSocket和selector进行封装2)NioServerSocketChannel:服务端使用,对JDK的ServerSocketChannel进行了封装3)NioSocketC
2021-02-09 17:44:27
6985
4
原创 Nginx Https 双向认证
1 基础知识1.1 单向认证 SSL 步骤1、客户端的浏览器向服务器传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息2、服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书3、客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和
2021-02-04 17:27:08
865
原创 工作五年经验总结
2020年终总结1、工作: 1)加入了百度自动驾驶(百度AI逆袭关键),并在新工作中成为骨干力量 2)意外收获:刚入职就赶上公司薪酬体系调整加了0.5薪,股票算是抄底目前已经double+了 3)机会成本:放弃了对标阿里P7的offer,此处应手动@谭小胖同学补顿酒,说好的能申请跨级转正呢2、生活: 1)30岁,而立之年,划过一道美丽的弧线 2)百善孝为先:奶奶去世了,到现在我也不太能接受,总觉得一回到老家就能见到奶奶,希望趁爸妈还未老去多陪陪他们,尽尽孝心,从未感受过能和家人在一起原来那么重
2021-01-01 12:31:13
3571
5
原创 分布式数据一致性/分布式事务总结
一、简述1、分布式事务/分布式数据一致性问题根源:存储资源的分布性,写多个资源,写入不能确保一定成功2、分布式事务模型: 1)AP:Application,应用程序 2)RM:Resource Manager,资源管理器 3)TM:Transation Manager,事务管理器 注:事务可分为全局事务和分支事务二、常见解决方案1、两阶段提交 1)实现思路: a)准备阶段:事务管理器(TM)通知资源管理器(RM)准备分支事务,记录事务日志,并告知事务管理器的准备结果。即挨个资源管理器除
2020-11-14 19:34:35
837
原创 Protobuf序列化
Protobuf是Google出品的一款编解码框架。1、优点: 1)谷歌内部长期使用,成熟度高 2)跨语言,支持C++、Java、Python、JavaScript、PHP、Ruby、C#、Objective-C等 3)码流小 4)性能高2、缺点: 1)pojo生成方式增加额外复杂度 2)灵活性差,定义数据格式后不可修改,需要重新生成pojo 3)pojo不支持json操作综上所述:Protobuf序列化方式适用于跨语言通信、对码流大小和性能要求高、且pojo不经常变化的场
2020-05-17 11:51:02
5729
2
原创 使用jclasslib修改字节码/源码
查看源码很简单,一些常用IDE里如idea、eclipse都提供了查看class文件源码的功能,虽然跟源码有些出入(解语法糖等),但功能实现上是一致的,且比源码更贴近于JVM运行时的情况。 有时候我们需要修改源码以满足使用要求,对于java代码生成的字节码重新源码就比较简单了,一种方式是继承然后重新部分功能,另一种方式是直接创建一个同名类文件,把反编译的源码复制进去,修改后,将新生成的cl...
2020-05-05 11:38:31
2025
原创 gateway url适配
由于版本迭代,有的时候需要做老接口的兼容适配,有很多种方式,比如在nginx配置路由规则,在网关配置路由规则,本篇通过使用反射的方式在网关层全局过滤器中重写request请求的方式实现url适配。import lombok.extern.log4j.Log4j2;import org.apache.commons.lang3.StringUtils;import org.springfram...
2020-05-03 13:28:05
2196
原创 网关支持跨域
一、zuul跨域:配置方式application.ymlzuul: sensitive-headers: Access-Control-Allow-Origin ignored-headers:Access-Control-Allow-Origin,H-APP-Id,Token,APPToken二、gateway跨域:过滤器方式Spring Cloud Gateway 2.x Net...
2020-05-03 13:18:14
895
原创 java序列化框架码流、性能对比
本文对序列化框架:JDK、Kryo、Hession、FST、Fastjson、Gson进行对比,对比维度包括序列化后码流大小、10w次序列化反序列化性能耗时。1、依赖jar包 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifa...
2020-04-25 11:57:34
898
转载 ChannelPipeline
Netty4Netty是一个和MINA类似的Java NIO框架,目前的最新版本是4.0.13,这两个框架的主要作者好像都是同一个韩国人。ChannelChannel是Netty最核心的接口,一个Channel就是一个联络Socket的通道,通过Channel,你可以对Socket进行各种操作。ChannelHandler用Netty编写网络程序的时候,你很少直接操纵Channel,而是...
2020-04-22 09:37:32
3420
原创 将微服务运行在Docker上
将微服务运行在Docker上,首先要把服务制作成镜像,然后将镜像推送到公有仓库或私有仓库(可选步骤),最后像使用其他镜像的方式一样,使用我们的镜像。 本文将展示三种将微服务运行在Docker上的方式:1)通过Dockerfile;2)通过maven插件;3)通过Docker Compose一、Dockerfile的方式 Dockerfile是一个文本文件,其中包含了若干指令,指令描述了构建...
2020-03-08 17:21:51
627
原创 springboot集成rocketmq
本文是springboot集成rocketmq的入门篇,主要介绍单机环境下安装rocketmq,并集成到springboot框架中,实现字符串类型消息的生产和消费。 1)高可用集群部署方案请参考 待更新。。。 2)更多使用方式请参考 待更新。。。一、下载、安装、启动1、下载http://rocketmq.apache.org/dowloading/releases/2、安装...
2020-02-17 22:22:07
1357
转载 使用Docker安装Nginx
本文主要讲述使用docker安装nginx镜像,并将docker内文件挂载到物理机上1、下载Nginx镜像docker pull nginx2、本地创建挂载文件夹/Users/zhanghao/data/nginx/conf//Users/zhanghao/data/nginx/conf.d//Users/zhanghao/data/nginx/html//Users/zhangh...
2020-01-30 23:27:45
705
jclasslib-猴子哥哥.zip
2020-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人