- 博客(32)
- 资源 (4)
- 收藏
- 关注
原创 opentelemetry实践
场景描述根据 open-telemetry提供的exampleshttps://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/examples/demo假设我们有两个服务,一个是demo-server,一个是demo-client,demo-client会周期性调用demo-server,我们希望可以采集到demo-server与demo-client之间的监控数据,包括请求延迟和请求数统计(demo里面也提.
2021-11-24 15:31:58 3732
原创 6.824 Spring 2021 -- Lab 2A
实验说明:6.824 Lab 2: Raft可视化:Raft实现目标根据论文Figure 2和5.2实现Raft系统的选主和心跳整体流程新节点启动时,大致的流程如下:初始化自己的属性信息,主要有votedFor=-1,currentTerm=0;设置选举超时(论文的election timeout)的时间范围为1000ms-2000ms,心跳间隔为150ms;设置自己的状态为Follower,开启electionTimeout计时器。 如果接收到来自其他节点的
2020-05-22 07:28:23 1069
原创 6.824 Spring 2021 -- Lab 1: MapReduce
介绍:https://pdos.csail.mit.edu/6.824/labs/lab-mr.html前期工作使用windows vscode远程linux来做,这样我们可以在windows debug,也可以直接在remote server运行我们的测试脚本remote development 开发vscode使用阅读6.824 Lab 1: MapReduce的介绍,我们先把mrsequential的例子使用我们的环境运行起来# remote server上git cl...
2020-03-22 18:34:42 1354 1
原创 国内搭建k8s环境
下面演示在国内,在虚拟机ubuntu18.04中利用kubeadm,从零搭建一个有1个master的kubernetes环境一、ubuntu18.04安装及环境配置从官网下载ubuntu18.04的镜像,并使用vmware进行安装,一路默认配置就可以了,安装完毕之后进行如下操作。1. 【非虚拟机不用】设置静态IP和访问外网,这样方便后面使用xshell进行登录,具体配置可以看 《VMw...
2019-11-10 17:01:43 1829
原创 VMware下如何实现ubuntu的静态地址设置和外网访问和ssh连接
静态地址设置目的这一步的目标在于通过NAT模式实现VMware下ubuntu的静态地址,同时实现主机与虚拟机的互通(可以互相ping通)步骤1、编辑“虚拟网络编辑器”打开VMware里面的 编辑->虚拟网络编辑器->添加网络->VMnet8,然后按如下的配置进行配置 子网和子网掩码由系统自己分配,不用管 因为我们要设置静态地址,所...
2019-09-08 16:34:20 1629 1
原创 go 协程池 ants库分析
简介相比于创建多个线程,goroutine 更轻量、资源占用更少、切换速度更快、无线程上下文切换开销更少。但是受限于资源总量,系统中能够创建的 goroutine 数量也是受限的。默认每个 goroutine 占用 8KB 内存,一台 8GB 内存的机器满打满算也只能创建 8GB/8KB = 1000000 个 goroutine,更何况系统还需要保留一部分内存运行日常管理任务,go 运行时需要内存运行 gc、处理 goroutine 切换等。使用的内存超过机器内存容量,系统会使用交换区(swap),导
2021-10-30 15:34:06 1040
原创 go net/http 基础解析
整体的类图1. 我们调用的http.ListenAndServe会生成一个Server对象,这个对象会通过ListenAndServer创建一个监听连接(底层应该就是一个监听socket),然后把这个传递给Serve函数,Serve函数会调用accept开始监听,接受到请求后,会生成一个请求连接(底层应该就是一个连接socket)2. Server生成请求连接后,会调用其server函数,开协程处理这个函数3. conn.server处理的过程中,主要会封装出一个Server..
2021-10-27 20:34:36 1165
原创 EdgeX Foundry 安装与实践
EdgeX 安装1. docker-compose安装sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose2.下载edgex docker-compose文件,参考:https://docs.edgexfoundry.org/2.0/getting-start
2021-10-09 15:53:12 1621
原创 透彻理解TLS1.2
通过理论理解TLS/SSL背景一些已有的协议通常安全问题,以HTTP为例来说明,HTTP在设计之初就没有考虑安全问题,它的目的就是数据传输和共享,HTTP协议三个安全问题如下:数据没加密,是明文传输;而且TCP/IP的特点同时导致HTTP数据很容易被截获 无法验证身份。 数据易篡改:HTTP数据传输过程中,会经过很多节点,这些节点都可以修改原始数据,而对于客户端和服务器来说,没有任何技术来确保接收的数据就是发送者发送的原始数据 (也叫中间人攻击)而要解决类似上面的这些安全问题,我们就需要.
2021-08-28 14:17:35 4861
原创 k8s service基于域名访问的服务发现
准备busybox准备如下:apiVersion: v1kind: Pod name: busybox-sleep-resource-cloudspec: nodeName: ke-cloud containers: - name: busybox image: busybox:latest args: - sleep - "12000"HTTP 协议的域名访问httpserver服务如下:apiVersion: v1kind: Podmet
2021-03-23 22:03:21 5194 2
原创 容器网络通讯场景实践及原理解析
容器通讯场景主机容器间通信实践docker run -it busybox # 开终端1,创建容器busybox-1docker run -it busybox # 开终端2,创建容器busybox-2ifconfig # 在busybox-1和busybox-2中查看网址,假设busybox-1为172.0.0.2, busybox-2为172.0.0.3ping 172.0.0.3 # 在busybox-1容器中执行ping命令,发现可以互通原理上面就是经典容器组网模型 veth pa
2021-02-21 10:30:20 344
原创 使用serviceaccount制作kubeconfig文件
背景有时为了需要,我们需要给出一些具有特定集群权限的kubeconfig文件,这时我们可以通过使用serviceAccount来制作具有一定集群权限的kubeconfig下面我们来使用这一技术创建一个只有greenstock命名空间权限的pod读取权限的kubeconfig代码来源:https://gist.github.com/innovia/fbba8259042f71db9...
2020-03-15 17:11:12 2168
原创 Go语言——字符串和编码
声明:下面的许多知识点来自:https://blog.csdn.net/qq_36431213/article/details/83029133和https://www.liaoxuefeng.com/wiki/1016959663602400/1017075323632896以及 https://zhuanlan.zhihu.com/p/38333902下面只是以自己的理解做了个整理...
2019-11-24 21:46:29 1342
原创 gatekeeper实践
环境要求gatekeeper是基于k8s的 admission controller webhooks实现的,需要k8s的 kube-apiserve开启相应的准入控制,也就是 validating admission webhook和mutating admissionwebhook.关于admission controller webhooks可以参考:链接 kube-apiserv...
2019-10-27 18:49:39 2584
原创 gatekeeper调研
动机及简介如果你的组织在运行 Kubernetes,那么你可能一直在寻找控制终端用户可以在集群上做什么,以及确保集群符合公司或组织政策的方法。这些政策可能是用来满足治理和法律需求,或者执行最佳实践和组织约定。使用 Kubernetes,你如何在不牺牲开发灵活性和操作独立性的情况下确保遵从性?例如,你可以执行以下政策:所有镜像必须来自已批准的存储库 所有pod都必须有资源限制 所有...
2019-10-27 18:36:50 580
原创 内网穿透-----ngrok服务器搭建
一,需求与ngrok简介1)需求有时我们需要进行内网穿透,也就是说我们需要去访问和使用一些内网的机器;比方说,我在实验室有一台机器,而实验室的网络是内网(192.168.0.48),这个时候我想在宿舍的机器(172.18.61.246)去上对它进行ssh登录是做不到的,因为我宿舍的机器是跟实验室的网关是在同一个网段,但是跟实验室里面的机器不是在同一个网段的;所以为了方便我对实验室的机器进行...
2019-09-15 09:09:27 1014
原创 spring boot实现多租户数据存储
背景目前多租户数据存储模式主要有三种,分别是共享硬件隔离数据库实例、共享数据库实例隔离数据表、共享数据库实例共享数据表,这三种数据存储模式如下图所示。项目代码介绍预备项目:实现swagger展示接口,以及对一个数据实体对象的读取操作;具体代码看:https://github.com/sysuKinthon/multi-tenant-database/tree/v1.0...
2019-05-18 23:13:10 8706 1
原创 Spring Boot集成Activiti —— 流程编辑器集成
项目说明该项目综合参考了:chenhai201和secsea在进行下面的项目实践时,请先生成一个spring boot项目,并配置swagger2,开发工具建议使用IDEA。为了方便正文的描述,下面先给出项目的整体目录结构。项目已经上传到github,需要可以自行下载Activitig下载首先从github上下载Activiti的源码,命令如下git clone ...
2019-05-18 13:04:53 11033 5
原创 使用SSM实现简单工作流系统之实现篇
项目说明本项目是依据《轻量级 Java EE 企业应用实战 第4版》的最后一章中的项目实现的,原本项目使用的框架是Struts2 + Spring 4 + Hibernate,因为本人在学习Spring MVC + Spring + Mybatis,所以将它重写了一次,使用了Spring MVC + Spring + Mybatis项目。在正文中介绍项目的时候,也将主要依据原书的叙述。因为项目是根...
2018-03-10 18:10:14 7611 5
原创 ubuntu服务器安装及网络配置
零. 前言本文主要记述了安装三台服务器和设置三台服务器网络及子网的过程,内容主要侧重于后者。一. 服务器安装主要参考http://blog.csdn.net/u010442136/article/details/52032260;本文安装的系统是ubuntu server 16.04;文章中使用的分区方式是手动,本文采用了 "use entire disk and ...
2017-09-26 00:44:04 22825 3
原创 SSH之IDEA使用maven整合实现简易用户登录
前言前面,我们已经通过IDEA直接整合过SSH(Spring, Struts, Hibernate),在这个文章中, 我將主要实现如下事件: a)使用maven搭建一个SSH项目(基本的项目框架) b)实现一个简易的登录程序,涉及到Mysql,Hibernate, Spring, Struts c)如何使用IDEA2017搭建maven项目...
2017-06-26 20:34:03 21126 24
原创 SSH之IDEA2017整合Struts2+Spring+Hibernate
推荐大家使用maven解决依赖问题,可以省去手动解决依赖的问题,项目参考:链接摘要IDEA无疑是Java编程的利器,在下面我们将介绍如何使用IDEA来整合SSH(Struts2 + Spring + Hibernate);介绍將分为三个部分来讲,分别是新建工程,Spring引入并测试, Hibernate引入并测试,Struts2引入并测试; 下面使用的IDEA的版本是2017.1以下...
2017-04-01 11:59:24 34596 77
原创 ubuntu下使用IntelliJ IDEA 新建Tomcat项目
一. 准备在ubuntu环境下,安装好IntelliJ IDEA[安装与激活参考] ,JDK,Tomcat[安装参考] ;二. 新建 Tomcat项目具体可以参考 [IntelliJ新建 Tomcat项目],这里只做一些补充1)对于tomcat的路径,最好还是直接放在home目录或其子目录下就可以了;如果是在根目录下的话,会有权限问题2)在按上面参考配置之后呢,可以使用如下
2017-03-22 17:52:56 2831
原创 ubuntu 与windows双系统记录
安装直接参考 链接问题有时会出现在进入ubuntu时只出现一横线,此时请重新设置一下easyBCD,把原有的ubuntu删除,然后再加入引导,boot区记得设置好,为大小在190M的的分区在windows进行硬盘分区后,可能会出现 解决方式如下 找出你的Linux盘在哪个分区以及grub目录位置,使用ls 测试grub rescue> ls grub rescue>
2017-01-17 19:16:00 350
404问题解决
2019-03-11
刘杰-分布式系统原理介绍
2018-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人