CEPH

结构

  • RADOS 核心存储部分
  • LIBRADOS 单机的api库.用c语言写的.有其他语言的调用客户端,其他语言的客户端只是个壳子,实现操作时,调用还是librandos C实现的库
  • RADOSGW 网关.提供出一套restfull风格的api出来.采用http,或者https访问.
  • 应用层RADOSGW相同的。用户操作的部分。

RADOS原理及逻辑

抽象

  • OSD (把存储节点上的数据存储为对象)
  • MON (维护,监控.由OSD主动向MON上传状态.

RADOS核心结构

  • FILE 用户的文件
  • OBJECTS 将FILE分隔成小块.每小块由RADOS设置大小.如2mb,4mb
  • PGS 将OBJECT映射到PG.与OBJECT 1:N .
  • OSD 具体的一个OSD存储实例.与PGS n:n .为了保证不丢失 ,一个PGS至少分到2个OSD中.

参考网站:

http://docs.ceph.org.cn/

http://docs.ceph.org.cn/rados/api/librados-intro/?highlight=java#librados-java

http://www.cnblogs.com/bodhitree/p/4831626.html

ceph java 调用

获取librados包

jan,juni,

名词解释

  • account,container,object 定义.(container数量好像只能1000?测试过的数据.)
    image

面试题

  • jvm性能调优都做了什么
  • 分布式接口重试,事务.幂等(分布式锁?)
  • dubbox.模块怎么分.怎么样提供服务的,只是对系统间的调用,还是直接暴露出来
  • 海量用户,并发,可用性,负载均衡.是怎么考虑的.
  • netty,socket 通讯怎么设计
  • 各种中间件的性能指标,测试结果.
  • 高并发情况下,我们系统是如何支撑大量的请求的
  • 集群如何同步会话状态
  • 负载均衡的原理
  • 数据库事务属性
  • hashtable和hashmap的区别

  • 并发、同步的接口或方法

  • string、stringbuilder、stringbuffer区别

  • https处理的一个过程,对称加密和非对称加密

  • 线程的几种状态
  • 与同事沟通的时候,如果遇到冲突了如何解决
  • 工作中觉得哪方面欠缺?

  • 个人优势

  • 为什么要离开现在的公司

要求

高级JAVA工程师###岗位职责:

  1. 在总体架构设计下,完成系统模块设计、框架和核心代码的实现,负责项目技术文档的编写与维护;2. 按计划完成产品模块的代码编写及单元测试,保证代码质量;3. 分析并解决系统开发及运营维护过程中的问题,对系统性能进行调优;1. 负责系统代码质量评审及项目质量管控;1. 协助团队完成Code Review的任务,确保代码的有效性和正确性,提供相关性能以及安全的建议。###任职要求:1. 5年以上Java开发经验,熟悉Java/JEE,基础扎实;1. 熟悉算法、数据结构、多线程、IO、网络等,熟练掌握常用Java技术框架,能编写高质量简洁清晰的代码;1. 精通Java基础技术体系(包括JVM、类装载机制、多线程并发、IO、网络等);1. 良好的面向对象设计理解,熟悉面向对象设计原则,掌握设计模式及应用场景;1. 有底层中间件、分布式技术(包括缓存、消息系统、热部署、JMX等)的经验者优先;1. 对于高并发、高负载,高可用性、高性能、大数据处理有过实际项目产品经验者优先;1. 具有比较强的问题分析和处理能力,有比较优秀的动手能力,热衷技术,精益求精。

中级JAVA工程师

岗位职责:

  1. 独立完成业务后台系统的模块设计、编码、单元测试、维护等各阶段的开发任务;1. 参与系统的架构设计、详细设计与核心模块编码等工作;1. 协调开发后期的功能测试、集成测试、性能测试、部署上线等措施部署流程。###任职要求:
  2. 2年以上JAVA开发的经验,JAVA基础扎实,熟悉互联网和web应用的相关开发技术;1. 熟悉JAVA、J2EE体系架构及B/S结构系统的开发设计,熟练使用Spring,Mybatis等;1. 熟练使用Oracle或Mssql等数据库;1. 工作认真、细心、有条理,具有较强的沟通能力及团队合作精神;1. 有ERP系统或后台系统开发经验的优先考虑。

面试题(基础)

  • == 与 equals 的区别
  • hashMap原理, 与HashTable的区别,有没有兼顾两者优点的类
  • 写出下面代码的输出结果,并解释原因:
1
2
String str0 = null;
String str1 = "Tomcat";
String str2 = "Tom" + "cat";
String str3 = new String("Tomcat");
System.out.println(str1 == str2); System.out.println(str1 == str3); System.out.println(str1 == str3.intern()); System.out.println(str1.equals(str2)); System.out.println(str0 == str1); System.out.println(str0.equals(str1));
  • 写出下面代码的输出结果,并解释原因
1
public class Device extends Base {
	private String name = "dervied";
	public Device() {
		tellName();
		printName();
	}
	public void tellName() {
		System.out.println("Dervied tell name: " + name);
	}
	public void printName() {
		System.out.println("Dervied print name: " + name);
	}
	public static void main(String[] args) {
		new Device();
	}
}
class Base {
	private String name = "base";
	public Base() {
		tellName();
		printName();
	}
	public void tellName() {
		System.out.println("Base tell name: " + name);
	}
	public void printName() {
		System.out.println("Base print name: " + name);
	}
}
  • 手写线程安全的单例模式
  • 深拷贝与浅拷贝场景,哪些方法是浅拷贝。如何实现深拷贝。

标准工作时间-个性化工作时间配置

定义

中文名称 定义码
毫秒
半年
季度

##默认有几个标准的配置,calendar_type = N

日历 ba_calendar

字段英文名称 字段含义 示例
calendar_ukid 主键 12321321
calendar_name 日历名称 开发人员的996
create_date 创建时间
calendar_type 日历类型 N:公共,M:私有
bu_id 所属的人员,或者公司 32323

日历时间 ba_calendar_detail

字段英文名称 字段含义 示例
calendar_ukid 主表主键 123124324324
calendar_time_ukid 子表主键 123124324324
time_name 名称 三月份特殊排班
seq 排序 如果含有多项,则按此顺序进行配置。如果相同天,则后边覆盖前边
detail_type 类型 休息日,非休息日
freq_type 间隔类型 D:天 W:星期 M:月 Y:年
freq_value 间隔值 1
freq_sub_type 子间隔类型 D:天 W:星期 M:月
freq_sub_value 子间隔值 D:1,2,3,4 W:2,1 M:2,3,2
times 工作时间段 09:12-12:33;23:00-24:00
start_date 生效时间 2015-04-03
end_date 失效时间 2015-05-03
remark 备注 添加者的备注
cn_comment 中文描述 自动将配置转化为中文

每天
每周
每月
每年
fds

,