domain

云计算openstack核心组件——glance— 镜像服务(6)

半世苍凉 提交于 2019-11-27 12:40:49
云计算openstack核心组件——glance— 镜像服务(6) 一、glance介绍: Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找、注册和检索等。 Glance提供Restful API可以查询虚拟机镜像的metadata及获取镜像。 Glance可以将镜像保存到多种后端存储上,比如简单的文件存储或者对象存储。 理解 Image 要理解 Image Service,先得搞清楚什么是 Image 以及为什么要用 Image? 在传统 IT 环境下,安装一个系统要么从安装 CD 从头安装,要么用 Ghost 等克隆工具恢复。这两种方式有如下几个问题: 如果要安装的系统多了效率就很低 时间长,工作量大 安装完还要进行手工配置,比如安装其他的软件,设置 IP 等 备份和恢复系统不灵活 云环境下需要更高效的方案,这就是 Image。 Image 是一个模板,里面包含了基本的操作系统和其他的软件。 举例来说,有家公司需要为每位员工配置一套办公用的系统,一般需要一个 Win7 系统再加 MS office 软件。 OpenStack 是这么玩的: 先手工安装好这么一个虚机 然后对虚机执行 snapshot,这样就得到了一个 image 当有新员工入职需要办公环境时,立马启动一个或多个该 image 的 instance(虚机)就可以了 在这个过程中

ENode 2.0 - 整体架构介绍

天涯浪子 提交于 2019-11-27 12:38:18
前言 今天是个开心的日子,又是周末,可以轻轻松松的写写文章了。去年,我写了ENode 1.0版本,那时我也写了一个 分析系列 。经过了大半年的时间,我对第一个版本做了很多架构上的改进,最重要的就是让ENode实现了分布式,通过新增一个分布式消息队列 EQueue 来实现。之所以要设计一个分布式的消息队列是因为在enode 1.0版本中,某个特定的消息队列只能被某个特定的消费者消费。这样就会导致一个问题,就是如果这个消费者挂了,那这个消费者对应的消息队列就不能自动被其他消费者消费了。这个问题会直接导致系统不可用。而ENode 2.0中,就不会有这个问题了,因为消息队列被设计为独立的,被消费者所共享的;一个消息队列可以被多个消费者集群消费或广播消费,如果一个消费者挂了,那其他的消费者会自动顶上。这里具体的细节,我会在后面详细介绍。 ENode框架简介 框架名称:ENode 框架特色: DDD+CQRS + EDA + Event Sourcing + In Memory 设计目标:让程序员只关注业务代码、高性能、分布式、可水平扩展 开源地址: https://github.com/tangxuehua/enode 基于enode实现的一个完成案例,一个论坛: https://github.com/tangxuehua/forum nuget包Id:ENode

CentOS 7 YUM 10分钟快速安装 LNMP 环境详细教程

老子叫甜甜 提交于 2019-11-27 10:47:31
源码编译安装 LNMP 环境虽然便于自定义,但是对于小型服务器来说,漫长的编译时间让人无法等待。如果能在 10 分钟后内搞定环境安装,再好不多了。 那么如何在 10 分钟内快速安装完 LNMP 环境呢,答案是 使用 YUM 安装 。 什么 YUM ? 官网给出的解释 yum is a software package manager that installs, updates, and removes packages on RPM-based systems. It automatically computes dependencies and figures out what things should occur to install packages. yum makes it easier to maintain groups of machines without having to manually update each one using rpm. Features include: Support for multiple repositories Simple configuration Dependency calculation Fast operation RPM-consistent behavior Package group support,

14Cookie

浪子不回头ぞ 提交于 2019-11-27 08:33:39
1.1. 会话技术 1.1.1. 会话概述 会话可简单理解为:用户开一个浏览器,访问多个资源,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。 在浏览器和服务器建立链接之后,浏览器和服务器为了完成某一功能,浏览器发送一次或多次请求,服务器作出的一次或多次响应,在浏览器关闭之前,所有的请求和响应就构成了一次会话。 1.1.2. HTTP协议特点: HTTP无状态协议:当前请求和上一次请求之间没有任何的联系。 1.1. 3. 使用会话技术的原因: 为了能够在多次请求响应之间共享数据,所有提出会话技术。 1.1.2. 会话中的问题 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据。 如用户登录过后,应该保存一个用户状态,在会话结束前表明用户一直是登录状态。并且不同的用户之间的登录状态应该互不影响。 我们之前已经学过request域和SerlvetContext域,我们分别分析一下。 Request域太小了,在多次请求中,每次请求响应都是新的Request对象,之前存入的request域中的域属性,在请求结束后随着request域的销毁而消失了。 ServletContext域太大了,所有用户都在操作这个域,必然会发生混乱。 此时我们需要会话相关的技术,保存会话产生的数据。 2.Cookie会话技术 a.

socket 在Unix domain的使用

爱⌒轻易说出口 提交于 2019-11-27 08:17:58
server.c #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <sys/un.h> #include <pthread.h> #include <sys/syscall.h> #define UNIX_DOMAIN "/tmp/test" void *threaddeal(void *arg) { printf("这是一个新线程.\n"); //输出新线程提示 int com_fd = *(int*)arg; static char recv_buf[1024]; memset(recv_buf,0,1024); char snd_buf[1024]; memset(snd_buf,0,1024); strcpy(snd_buf,"server to client"); int num; while(num=read(com_fd,recv_buf,sizeof(recv_buf))) { printf("server recv (%d)) :%s, threadid = %u,lwpid = %u\n",num,recv_buf,pthread_self(),syscall(SYS_gettid)); memset(recv_buf,0

业务领域建模Domain Modeling

霸气de小男生 提交于 2019-11-27 08:17:14
业务领域建模的概念 领域建模是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。(百度百科) 业务领域建模的原因 分析系统和设计系统不是同一个人,这种割裂导致需求分析的结果无法直接进行设计编程,而能够进行编程运行的代码却扭曲需求,导致客户运行软件后才发现很多功能不是自己想要的,而且软件不能快速跟随需求变化。DDD(领域驱动设计)则打破了这种隔阂,提出了领域模型概念,统一了分析和设计编程,使得软件能够更灵活快速跟随需求变化。对于复杂的业务场景,事务脚本很难应对,容易造成代码的“一锅粥”,系统的腐化速度和复杂性呈指数级上升。目前比较有效的治理办法就是领域建模,因为领域模型是面向对象的,在封装业务逻辑的同时,提升了对象的内聚性和重用性,因为使用了通用语言(Ubiquitous Language),使得隐藏的业务逻辑得到显性化表达,使得复杂性治理成为可能。 业务领域建模的步骤 初步建模: 建模也是一个不断迭代的过程,所以一开始可以简单点来,就采用两步建模法抓住一些核心概念:首先从User

多线程的宏观和微观视角

主宰稳场 提交于 2019-11-27 08:09:41
首先我们在做并发编程的的时候会考虑到原子性丶可见性和有序性,在宏观上会考虑到安全性丶活跃性和性能; 微观视角 可见性 : 一个线程对共享变量的修改,另外一个线程能够立刻感知到,我们称为可见性; 原子性 : 一个或者多个操作在 CPU 执行的过程中不被中断的特性称为原子性; 有序性 : 就是我们代码的执行顺序,依赖等。(指令重排导致顺序被打乱);    线程工作内存: 是指 Cpu 的 ‘寄存器’ 和 ‘高速缓存’ ,线程的 工作内存/本地内存 是指cpu的寄存器和高速缓存的抽象描述,数据读取顺序优先级 是: 寄存器->高速缓存->内存 宏观视角 安全性 : 安全性我认为其实是包含了原子性丶可见性和有序性的,是一个总的概念,在程序开发的时候首先要注重安全性,会在下面详细解释这三点; 活跃性 活跃性告诉我们的是要避免死锁,饥饿和活锁; — 死锁 :这个都不陌生,线程A持有1锁,等待获取2锁,线程B持有2锁,等待获取1锁,这就是个典型的死锁,就就是阻塞了。 — 饥饿 :饥饿当多线程获取锁都得时候,总有线程没有机会获取到锁,出现饥饿的三中情况: 1-高优先级的线程吞噬了低优先级线程的CPU使用权 2-线程被一直阻塞(比如Thread.Sleep) 3-等待线程永远不被唤醒 ,也可以理解为锁的优先级,我们常用的synchronized就是非公平锁,例如线程A,B,C按顺序获取锁1

Cookie&Session

你。 提交于 2019-11-27 05:04:58
Cookie&Session 背景 :Cookie和Session的原理、作用及如何设置和相关面试。 一、诞生背景 HTTP是无状态的,即服务器无法知道两个请求是否来自同一个浏览器,也就是服务器不知道用户上一次做了什么,每次请求都是完全独立的。 早期互联网只是用于简单的浏览文档信息、查看黄页和门户网站等,并没有交互这个概念。但是随着互联网慢慢发展,宽带、服务器等硬件设施得到了很多的提升,互联网允许人们做更多的事情,所以交互式Web(交互式Web即客户端与服务器可以互动,如用户登录、商品购买和论坛等)慢慢就兴起了,而HTTP无状态的特点对此造成了严重阻碍。 由于不能记录用户上次的操作,伟大的程序员发明了隐藏域用于记录用户上一次的操作信息;通过隐藏域把用户上次操作记录放在form表单的input中,这样请求时将表单提交就可以知道上一次用户的操作了,但是这样每次都得常见隐藏域而且需要赋值,既麻烦又容易出错;但是隐藏域作用强大,时至今日都有很多人在用它解决各种问题。隐藏域的写法如下: <input type="hidden" name="field_name" value="value"> 网景公司的卢-蒙特利Lou Montulli,在1994年将Cookies的概念应用于网络通信,用于解决用户网上购物的购物车历史记录,而当时最强大的浏览器也是网景浏览器

<BEA-141281> <unable to get file lock, will retry ...> (转)

[亡魂溺海] 提交于 2019-11-27 04:16:34
转自: http://gdutlzh.blog.163.com/blog/static/164746951201291903824812/ BEA-141281 Info: unable to get file lock, will retry … Description This message indicates that WLS can not get file lock because other process still holds the lock. W LS will try again before timeout. Cause This is an information-level message only. Action If WLS fails to start due to unable to get file lock, then lock files need to be removed manually before restart WLS. The funny thing is that it tells you to remove the locks but doesn’t provide their location, if you are running OBIEE 11g you can remove AdminServer.lok

业务领域建模Domain Modeling

泪湿孤枕 提交于 2019-11-27 03:50:00
一、什么是业务领域建模 领域建模: 从领域模型开始,我们就开始了面向对象的分析和设计过程,可以说,领域模型是完成从需求分析到面向对象设计的一座桥梁。 顾名思义,就是显示最重要的业务概念和它们之间关系,是真实世界各个事物的表示(现实世界的可视化抽象字典)而不是软件中各构件的表示。领域模型是描述业务领域(业务实体)的静态结构。 理论派观点: Domain Model是一个商业建模范畴概念,即使一个企业不开发软件,也具备其业务模型;所有同行企业,其业务模型必定有非常大的共性和内在的规律性。 由行业内的各个企业的业务模型再向上抽象出整个行业的业务模型,这个模型称之为“领域模型”。 领域模型是一种特殊的业务模型,它分析范围是整个行业,抽象出行业里共性和内在规律性的业务,比业务模型更加抽象,它不属于软件开发范畴的概念,与软件开发无关。 实战派观点: 领域模型是一个分析模型,帮助系统分析人员、用户认识现实业务的工具,描述的是业务中涉及到的实体及其相互之间的关系,它是需求分析的产物,与问题域相关。 是需求分析人员与用户交流的有力工具,是彼此交流的语言。 领域模型是一种分析模型,在软件开发过程分析阶段用于分析如何满足系统功能性需求,属于软件开发范畴,在UML中主要使用类图来描述领域模型。 业务模型是业务建模的输出物,业务建模研究的对象是公司或者组织,业务建模属于软件开发过程中的初始阶段。