namespace

反射

£可爱£侵袭症+ 提交于 2019-12-08 14:00:36
新建一个控制台应用程序 Bike中的代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 反射 { public class Bike : ICar { public void Light() { Console.WriteLine("我有1个灯"); } public void Wheel() { Console.WriteLine("我有2个轮子"); } } } View Code Car中的代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 反射 { public class Car : ICar { public void Light() { Console.WriteLine("我有8个灯"); } public void Wheel() { Console.WriteLine("我有4个轮子"); } } } View Code Factory中的代码 using

原生技术基础学习(基础概念)

依然范特西╮ 提交于 2019-12-08 13:11:32
云原生技术基础学习 这是阿里的一个技术公开课, 视频链接 基础 容器基本概念: namespace 资源视图隔离 cgroup 控制资源使用率 chroot 独立的文件系统 容器是一个视图隔离,资源可限制、独立文件系统的进程集合。 容器镜像: 运行容器所需要的所有文件集合 Dockerfile 来描述镜像构建步骤。 构建步骤所产生出文件系统的变化叫做 changeset disk snapshot, 提高分发效率,减少磁盘压力。 Kubernetes 的概念: Kubernetes 是自动化的容器编排平台, 包括部署、弹性、管理 核心功能: (kubernetes 的水平伸缩, 自动恢复, 调度) 服务发现与负载均衡 容器自动装箱 存储编排 自动容器恢复 自动发布与回滚 批量执行 水平伸缩 架构简介: Kubernetes 架构是一个比较典型的二层架构 和 server-client 架构。master 作为作为中央的控制节点会与Node 进行一个连接。 所有 UI,client 这些user侧组件只会和 Master 进行连接,把希望的状态或像执行的命令下发给master, master 会把这些命令或者状态下发给相应的节点,进行最终的执行。 Kubernetes 的 master 包含四个主要的组件: API Server, Contronller, Scheduler 以及

C++递归函数

巧了我就是萌 提交于 2019-12-08 09:26:06
C++递归函数 【递归,就是在运行的过程中调用自己】 比如:(点击了下面的递归,搜索结果还是递归) A.构成递归需具备的条件: 1.子问题须与原始问题为同样的事,且更为简单。 2.不能无限制的调用本身,必须有个出口,化简为非递归状况处理。 B.递归可以解决的问题: 阶乘、斐波那契数列、汉诺塔、杨辉三角的存取、字符串回文判断、字符串全排列、二分查找、树的深度求解 C.递归的过程(图片来源见水印,侵删) 【递归的过程可以理解为,把一个复杂的问题转化为一个个的小问题,而小问题能转化为更简单的问题,直到达到递归的“终点”——递归边界。递归边界是递归问题的特殊案例或者简单的情况,通过递归边界向上一层一层的返回数据,结束递归】 D.递归实例 Example ①://阶乘 #include <iostream> using namespace std; int Leo(int n) { int sum = 1; if(1 == n)//递归终止条件 { return 1; } sum =n * Leo(n - 1); return sum;//返回阶乘的总和 } int main() { int num; cin >> num;//输入一个数 cout << Leo(num) << endl; //输出该数的阶乘 return 0; } /* *在求X的阶乘和时 *可以利用递归的思想

MyBatis使用Mapper查询时报错:java.lang.StringIndexOutOfBoundsException: String index out of range: 8000

丶灬走出姿态 提交于 2019-12-08 07:18:18
SpringBoot项目做订单查询接口开发,使用Mybatis的Mapper做查询的时候,抛出异常 java.lang.StringIndexOutOfBoundsException: String index out of range: 8000 错误信息指向了响应查询请求的Controller之后没有更具体的错误信息,一路跟踪,最后指向我定义的mapper的查询方法,但是我这个方法内没看到可能导致越界问题的代码段,似乎是mybatis抛出的错误。 List<OrderEntity> resultList = orderMapper.selectOrderByOrderId(orderId); 网上查了一堆资料,基本上都是在说定义了sql语句的xml文件中有错误,检查了一遍,没出现网上所说的单双引号,美元符和井号导致的问题。 把sql语句拉出来单独跑,可以跑通,说明不是sql的问题,但可以定位应该是OrderMapper.xml的问题。 仔细检查了一遍定义sql的OrderMapper.xml文件,发现OrderMapper.class在OrderMapper.xml文件中的注册包路径不对。 因为我没有使用下面这种整个package注册mapper接口文件的形式,因此我在xml文件中注册mapper的class需要写到具体的mapper而不是写到mapper的所在包。 <!--

K8S安装prometheus+grafana

我是研究僧i 提交于 2019-12-08 02:58:25
k8s安装Prometheus+Grafana: 1.在kubernetest集群中创建namespace: [root@master k8s-promethus]# cat namespace.yaml apiVersion: v1 kind: Namespace metadata: name: ns-monitor labels: name: ns-monitor [root@master k8s-promethus]# kubectl apply -f namespace.yaml 2.安装node-exporter: [root@master k8s-promethus]# cat node-exporter.yaml kind: DaemonSet apiVersion: apps/v1 metadata: labels: app: node-exporter name: node-exporter namespace: ns-monitor spec: revisionHistoryLimit: 10 selector: matchLabels: app: node-exporter template: metadata: labels: app: node-exporter spec: containers: - name: node-exporter image:

mybatis一级缓存与二级缓存

亡梦爱人 提交于 2019-12-07 23:20:31
一级缓存 :默认开启 MyBatis一级缓存的生命周期和SqlSession一致。 MyBatis一级缓存内部设计简单,只是一个没有容量限定的HashMap,在缓存的功能性上有所欠缺。 MyBatis的一级缓存最大范围是SqlSession内部,有多个SqlSession或者分布式的环境下,数据库写操作会引起脏数据, 脏数据原因:在一个sqlSession中执行几个查询操作,但在这些查询操作中间另一个sqlSession去更新了数据库,而这次的更新第一个sqlSession是无感知的,此时它再去查询依然是在缓存中查询 使用mybatis-spring时一级缓存失效(原因没弄懂) 二级缓存: 默认关闭       生命周期为namespace   开启二级缓存的步骤:一开启全局缓存(setting中 默认开启)             二在对应的mapper.xml中开启   当sqlSession没有关闭时或者提交时,这次查询的数据不会缓存到二级缓存 MyBatis的二级缓存相对于一级缓存来说,实现了 SqlSession 之间缓存数据的共享,同时粒度更加的细,能够到 namespace 级别,通过Cache接口实现类不同的组合,对Cache的可控性也更强。 MyBatis在多表查询时,极大可能会出现脏数据(一个namespace中的缓存变化对另一个namespace是无感知的)

查找并绘制轮廓

人走茶凉 提交于 2019-12-07 19:46:25
1 寻找轮廓:findContours()函数 void findContours(InputOutputArray image,OutputArrayOfArrays contours,OutputArray hierarchy,int mode,int method,Point offset=Point()) 2 绘制轮廓:drawContours()函数 void drawContours(InputOutputArray image,InoutArrayOfArrays contours,int contourIdx,const Scalar&color,int thickness=1,int lineType=8,InputArray hierarchy=noArray(),int maxLevel=INT_MAX,Point offset=Point()) //例子 //轮廓查找 include <opencv2/opencv.hpp> include "opencv2/highgui/highgui.hpp" include "opencv2/imgproc/imgproc.hpp" using namespace cv; using namespace std; //-----------------------------------【main( )函数】----

socket.io 几个类总结

天大地大妈咪最大 提交于 2019-12-07 17:32:56
Server socket.io的入口类,通过require可创建出来。一般代码里都将其实例命名为“io”或“server”,因此当我们看到代码里有这个两个变量,指的就是这个类:fa-thumbs-o-up: Namespace 实际上是同一个server的不同的分支,同一个客户端连接多个namespace实际上是公用一个connection (websocket连接)。 Room 对于某个Namespace下面的分组。比如聊天的时候,不同的分组可以对应不同的Room。 Socket 与客户端通信的类。属于某个特定的Namespace,并且绑定了一个Client来做数据交互,在Namespace的on的callback中,作为第一个参数传给用户。 Client 表示一个链接,多个Socket可以公用一个Client来做通信。 关于namespace与room的区别 This is what namespaces and rooms have in common (socket.io v0.9.8): Both namespaces (io.of('/nsp')) and rooms (socket.join('room')) are created on the server side Multiple namespaces and multiple rooms share the

docker lxc cgroup namespace简述

余生长醉 提交于 2019-12-07 16:39:38
docker、lxc、cgroup、namespace是最近比较的技术。先了解一下他们分别是什么,然后说一下他们怎么用,具体实现机制以后再单独研究。 docker是lxc的管理器,lxc是cgroup的管理工具,cgroup是namespace的用户空间的管理接口。namespace是linux内核在task_struct中对进程组管理的基础机制。 再详细点说: docker是用go来实现的,自动化了对lxc的管理过程,能够自动在线下载相应的发行版本的rootfs。 lxc可以直接chroot到任意的系统的rootfs上并通过cgroup的限制机制来控制容器内系统的资源占有率。 cgroup通过配置文件或者命令配置后,限制相应进程或一组进程使用的系统资源。 很明显,在lxc以上已经借助于chroot机制在一个限制的容器中运行一个完整的系统了,这样多个不通过虚拟化技术的新系统就在特定的占有物理资源的限制上运行起来。据说运行效率直逼实际机器。 下面说一下用法吧,先从下往上说: cgroup 步骤: 在文件系统上建立层次结构 挂载文件系统并关联子系统 建立控制组 设置控制参数 将进程加入到控制组 通过/etc/cgconfig.conf配置或者cgroup-bin的相关指令来配置: mount { cpuset = /sys/fs/cgroup/cpuset; momory = /sys

LXC、LXD、Docker的区别与联系

☆樱花仙子☆ 提交于 2019-12-07 16:37:21
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 容器 namespace技术用来进行做进程间的隔离,linux namespace包括:mount namespace, uts namespace, ipc namespace, pid namespace, network namespace, user namespace六种,用于将mount点、UTS(hostname, domain name)、IPC资源、进程、网络、用户等六种资源做到进程级别的隔离。容器作为一个普通的进程,使用namespace技术作隔离。 pivot_root根文件系统切换。mount –bind /etc /tmp/test/etc方式允许从任何其他位置访问任何文件或目录,但是其他用户仍然能看到这些mount点,而mount namespace可以做到mount点在各个进程之间隔离。尽管如此,目前没有对文件/目录做进程间隔离的namespace,所以有必要制作根文件系统再采用pivot_root命令在容器内替换为这个根文件系统(注:chroot只是在指定的根文件系统下运行命令)。 cgroups技术用来做资源限制,这些资源包括CPU、内存、存储、网络等。