OOS

NFS-heartbeat-drbd模拟NFS高可用

一曲冷凌霜 提交于 2020-11-13 01:04:50
NFS介绍:   NFS(Network File System)即 网络文件系统 ,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 实战案例 NFS+DRBD+HEARTBEAT 1.环境描述 OS: NFS-MASTER: centos6.5 IP: eth0:172.16.50.199 #管理ip eth1:10.0.0.1 #内网直连ip VIP:172.16.50.249 软件: NFS DRBD hearteat NFS-BACKUP: centos6.5 IP: eth0:172.16.50.193 eth1:10.0.0.2 VIP:172.16.50.249 软件: NFS DRBD hearteat 描述: 本案例假设有2台NFS存储系统服务器NFS-master、NFS-backup,其实际IP分别为172.16.50.199、172.16.50.193 NFS-master的NFS存储系统文件目录为/data,对前端提供的访问VIP为172.16.50.249 配置目标:一旦NFS存储系统服务器NFS-master宕机,该服务器上的NFS存储系统服务和虚拟IP会自动切换到热备服务器NFS

我向面试官讲解了单例模式,他对我竖起了大拇指

倾然丶 夕夏残阳落幕 提交于 2020-10-28 17:32:58
作者:小菠萝 单例模式相信大家都有所听闻,甚至也写过不少了,在面试中也是考得最多的其中一个设计模式,面试官常常会要求写出两种类型的单例模式并且解释其原理,废话不多说,我们开始 学习如何很好地回答这一道面试题吧。 什么是单例模式 面试官问什么是单例模式时,千万不要答非所问,给出单例模式有两种类型之类的回答,要围绕单例模式的定义去展开。 单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。 单例模式的类型 单例模式有两种类型: 懒汉式 :在真正需要使用对象时才去创建该单例类对象 饿汉式 :在类加载时已经创建好该单例对象,等待被程序使用 懒汉式创建单例对象 懒汉式创建对象的方法是在程序使用对象前,先判断该对象是否已经实例化(判空),若已实例化直接返回该类对象。否则则先执行实例化操作。 根据上面的流程图,就可以写出下面的这段代码 public class Singleton { private static Singleton singleton; private Singleton () {} public static Singleton getInstance () { if (singleton == null ) {

阿里云是干啥的,你都使用过哪些产品?

懵懂的女人 提交于 2020-10-15 18:53:34
阿里云的产品太多了,大多数是针对开发者或者是企业用户的,个人用户能用到的比较少,就拿我个人来说吧,我是做java开发的,用过很多阿里云的产品,比如阿里云的服务器,域名,数据库,短信验证,邮件传输,oss对象存储,阿里云建站等等,下面详细解释一下: 云服务器: 一提到阿里云更多的人应该想到的就是云服务器了,我刚开始也一样,首先使用的就是云服务器,我使用云服务器是用来部署我的个人博客的,选择了一个最基础的版本,价格也很便宜,性能安全方面也没啥问题,到现在已经用了三年多了,还是很不错的. 域名: 我的网站部署之后,起初是通过IP地址+端口号访问的,比较麻烦,也不好推广,后边就购买了域名,我选择的域名是我自己名字的缩写,后缀是.com的,建议你们也这样选择,当然其他后缀也是可以的,域名购买之后需要备案,备案时不需要花钱的,需要的时间比较长,至少需要半个月左右. 短信验证和邮件传输 这个一般作为用户注册登录或者更改密码等重要的操作进行验证的,一般网站都是会这样操作的,还有就是可以通过这两个进行推广自己的产品或者是网站 oos对象存储 这个我用的比较少,只用过一次,主要是存储照片的,个人需求不多的情况下,基本上都是免费的,能用这个尽量使用这个,总比存在本地好很多 阿里云建站 前边说到我的个人网站,哪个是通过我自己写的代码,存在的问题太多,很多bug,而且功能很少,后来就发现了这个阿里云的 云

JAVA自学笔记(8)—IO流

帅比萌擦擦* 提交于 2020-10-02 09:46:51
IO流(流?) 1.0 概念和分类 2.0 字节 输出 流 (1)输入一个字节 import java.io.FileOutputStream; import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException { FileOutputStream fos=new FileOutputStream("Demo01\\a.txt"); fos.write(97); fos.close(); } }    (2)多个字节的输入 import java.io.FileOutputStream; import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException { FileOutputStream fos=new FileOutputStream("Demo01\\b.txt"); byte bytes[]={65,66,67,68};//ABCD //第一种 fos.write(bytes); //第二种 fos.write(bytes,1,3); //第三种 String s="你好,很高兴认识你";

阿里云服务器升降配置更改CPU内存和宽带大小的方法

醉酒当歌 提交于 2020-08-19 13:06:00
阿里云ECS云服务器购买成功后如果云服务器配置不合适或者遇到一些突发应用场景,可以通过阿里云服务器控制台的升降配功能来升级或降低云服务器配置,升降配可以更改ECS实例规格、CPU内存配置、公网带宽值、云盘存储等,阿里云服务器网来说说升降配功能的使用方法: 阿里云服务器升降配方式 阿里云服务器“升降配”功能可用于升级配置、降低配置、带宽临时升级、使用自动化运维OOS实现周期性的带宽临时升级及续费降配等操作,可以更改ECS云服务器实例规格、CPU内存配置、公网带宽大小,阿里云服务器网来详细说下云服务器升降配教程: 1. 登录到ECS云服务器控制台 ; 切换左上角地域,找到目标ECS实例 2. 点击右侧“升降配” 如下图: 点击升降配功能后,可以选择升级配置、降低配置、带宽临时升级、使用自动化运维OOS实现周期性的带宽临时升级和续费降配几个选项,不同选项对应的功能如下,根据实际操作即可: 升级配置 支持对当前实例的实例规格(CPU、内存)和基础公网带宽进行升级,同时可以将数据盘的付费模式从按量付费转换成包年包月,升级后新配置将覆盖实例的整个生命周期,您需要支付从当前配置到升级新配置的差价。实例规格或经典网络类型实例的首次0Mbps带宽升级在您支付完成后需要通过ECS控制台或ECS API重启ECS实例,配置变更才能生效;通过其他方式重启实例无效。 降低配置 支持对当前实例的实例规格

Install Office Online Server for Exchange 2016 CU3

时光毁灭记忆、已成空白 提交于 2020-08-17 23:52:15
通过安装 Office Online Server 使用户可以在 Exchange Outlook 网页版中查看和编辑受支持的文件附件,而无需先下载这些附件,也无需在本地安装相关程序。 1.环境:三台服务器 域:sen.hi.cn 1)DC: Sen-dc01.sen.hi.cn OS: Windows Server 2016 RTM 角色:DC,CA, 2)Exchange: Sen-Ex01.sen.hi.cn OS: Windows Server 2016 RTM 角色:Exchange Server 2016 CU3 3)OOS: Sen-oos.sen.hi.cn OS:windows Server 2012 R2(由于在Windows 2016中取消了功能组件Ink and Handwriting Services,OOS目前还无法支持安装在Windows server 2016上) 角色:Office Online Server 注:不能在 Exchange 服务器、SharePoint 服务器、Active Directory 域控制器或其他任何安装了现有应用程序的计算机上安装 Office Online Server。 2.安装 Office Online Server 必备组件: 1)下载安装Visual C++ Redistributable for

您的单例模式,真的单例吗?

时间秒杀一切 提交于 2020-08-16 05:23:36
单例模式,大家恐怕再熟悉不过了,其作用与实现方式有多种,这里就不啰嗦了。但是,咱们在使用这些方式实现单例模式时,程序中就真的会只有一个实例吗? 聪明的你看到这样的问话,一定猜到了答案是NO。这里笔者就不卖关子了,开门见山吧!实际上,在有些场景下,如果程序处理不当,会无情地破坏掉单例模式,导致程序中出现多个实例对象。 下面笔者介绍笔者已知的三种破坏单例模式的方式以及避免方法。 1、反射对单例模式的破坏 我们先通过一个例子,来直观感受一下 (1)案例 DCL实现的单例模式: 1 public class Singleton{ 2 private static volatile Singleton mInstance; 3 private Singleton(){} 4 public static Singleton getInstance(){ 5 if (mInstance == null ){ 6 synchronized (Singleton. class ) { 7 if (mInstance == null ){ 8 mInstance = new Singleton(); 9 } 10 } 11 } 12 return mInstance; 13 } 14 } 测试代码: 1 public class SingletonDemo { 2 3 public static

(转)java 深克隆(深拷贝)与浅克隆(浅拷贝)详解

ぐ巨炮叔叔 提交于 2020-08-14 11:05:44
java深克隆和浅克隆 基本概念 浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所拷贝的对象,而不复制它所引用的对象。 深复制(深克隆) 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍。 实现java深复制和浅复制的最关键的就是要实现Cloneable接口中的clone()方法。 如何使用clone()方法 首先我们来看一下Cloneable接口: 官方解释: 1:实现此接口则可以使用java.lang.Object 的clone()方法,否则会抛出CloneNotSupportedException 异常 2:实现此接口的类应该使用公共方法覆盖clone方法 3:此接口并不包含clone 方法,所以实现此接口并不能克隆对象,这只是一个前提,还需覆盖上面所讲的clone方法。 public interface Cloneable { } 1 2 看看Object里面的Clone()方法: clone()方法返回的是Object类型,所以必须强制转换得到克隆后的类型 clone()方法是一个native方法

重构 JAVA 聊天室 —— CS 模式的简单架构实现

泪湿孤枕 提交于 2020-08-11 23:24:00
前言 自从开始弄起数据挖掘之后,已经很久没写过技术类的博客了,最近学校 JAVA 课设要求实现一个聊天室,想想去年自己已经写了一个了,但是有些要求到的功能我也没实现,但看着原有的代码想了想加功能好像有那么点点难,于是就想着重构,也正好之前有看到别人写的CS架构的代码,感觉扩展性还不错,就试着写了写,写完这个聊天室后,还同时写了一个教学白板,那个白板基于这个聊天室的代码仅仅花了三四个小时就完成了!所以,有一个好的架构还是很重要的。下面就开始介绍我重构后的聊天室( 代码已上传到github ) 功能介绍 1. 用 Java图形用户界面编写聊天室服务器端和客户端, 支持多个客户端连接到一个服务器。每个客户端能够输入账号, 包括注册功能 。 2. 可以实现群聊(聊天记录显示在所有客户端界面)。 3. 完成好友列表在各个客户端上显示, 包括头像和用户名 。 4. 可以实现私人聊天,用户可以选择某个其他用户,单独发送信息, 同时实现了文件传输,还能发送窗口振动 。 5. 服务器能够群发系统消息, 能够对用户私发消息 ,能够强行让某些用户下线。 6. 客户端的上线下线要求能够在其他客户端上面实时刷新。 7.服务器能够查看在线用户和注册用户 (加了下划线的是课设要求之外的) 整体思路 数了数,总共写了27个类,看起来还是蛮多的,但是仔细看一看还是很简单的,我将在下面对其中部分进行解释 工具类

Java 的引用拷贝、浅拷贝、深拷贝

半城伤御伤魂 提交于 2020-08-11 17:23:18
1、引用拷贝 将对象的引用赋值给新的对象,也就是两个变量其实指向的是同一个对象实例。 public class Main { static class Teacher { private String name; public Teacher(String name) { this.name = name; } // 省略 getter setter } public static void main(String[] args) { Teacher teacher1 = new Teacher("张三"); // 这里只是把 teacher1 对象的引用赋值给 teacher2 Teacher teacher2 = teacher1; // 不管怎么运行,以下输出的两个对象地址是相同的 System.out.println(teacher1); System.out.println(teacher2); // 修改 teacher1 同样也会影响 teacher2 teacher1.setName("李四"); // 输出结果为 李四 System.out.println(teacher2.getName()); } } teacher1 和 teacher2 输出的对象地址是相同的,说明其指向的对象是相同的。teacher1 只是把引用地址赋值给了 teacher2