ZooKeeper

提升 10 倍!阿里云对象存储 OSS 可用性 SLA 技术揭秘

自古美人都是妖i 提交于 2020-08-12 02:09:09
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 阿里妹导读:对象存储被广泛应用于互联网应用中,当我们打开手机观看视频、收听音乐、分享图片、浏览网页、淘宝购物时,背后的数据基本都是存在对象存储中。应用使用卡、打不开就和对象存储的可用性 SLA 有关,SLA 越高,应用体验越好。本文分享阿里云在对象存储 OSS(Open Storage Service) 的可用性 SLA (Service Level Agreement) 上的实践和技术沉淀。 一 概述 阿里云对象存储 OSS 通过十年积累的技术红利,长期在双十一淘宝应用如丝般顺滑体验需求的打磨下,2020 年 6 月将可用性 SLA 提升 10 倍,其中 OSS 标准型(同城冗余)存储,SLA 从 99.95% 提升到 99.995%,简单理解能支持 10 万张图片最多只有 5 个显示卡,下一章有详细解释。 二 如何度量 OSS 可用性 SLA 要想掌握 OSS 可用性 SLA,可以通过梳理业界可用性的来龙去脉,来理解背后的技术。 1 业界常见的可用性度量为年故障时长 业界对可用性的描述,通常采用年故障时长。比如,数据中心机房划分为不同等级,如 T1~T4 机房,它们的可用性指标如下所示: T1 机房:可用性 99.671%、年平均故障时间 28.8 小时 T2 机房:可用性

Dubbo整合SpringBoot

巧了我就是萌 提交于 2020-08-12 01:04:24
目前的dubbo已支持和springboot集成,还是之前的 例子 ,这次我们通过springboot容器来实现。借此了解一下基于springboot容器启动的dubbo的配置及使用。 1. 准备工作 创建一个Maven空项目,作为项目的父工程,此工程的子项目基于Spring Boot 2.0.5 实现 在父工程的pom.xml引入之后要创建的子工程 < modules > < module > gmall-interface </ module > < module > user-service-provider </ module > < module > order-service-consumer </ module > </ modules > 可以提前看一下工程结构 下面分别来实现子工程:(子工程的实现方式都是在gmall工程下新建Module) 2. 公共API 项目中共用的接口和POJO类,代码和之前一样,这里不再展开 3. 服务提供者 工程结构如下 引入依赖 <!-- 引入公共API,以实现其接口 --> < dependency > < groupId > com.zang </ groupId > < artifactId > gmall-interface </ artifactId > < version > 1.0-SNAPSHOT </ version

超硬核Java工程师学习指南,真正的从入门到精通,众多粉丝亲测已拿offer!

时光毁灭记忆、已成空白 提交于 2020-08-12 00:52:46
最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好。原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很多小白们的感受,而很多朋友都需要更加基础,更加详细的学习路线。 所以,今天我们重新开一个新的专题,分别按照四篇文章讲述Java的学习路线(分别是入门篇,初级篇,中级篇,高级篇),笔者也打算趁此机会,回忆一下自己的Java学习历程。今天我们要讲的是,小白同学如何入门Java。 先声明一点,文章内容不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦。 本文所述的方法不一定适合所有人,如有错误敬请谅解。 Java工程师学习指南 入门篇 文中提到我的技术博客专栏 https://github.com/h2pl/Java-Tutorial 【Java工程师面试复习指南】本仓库涵盖大部分Java程序员所需要掌握的核心知识,整合了互联网上的很多优质Java技术文章,力求打造为最完整最实用的Java开发者学习指南,如果对你有帮助,给个star告诉我吧,谢谢! 前期准备工作 开发环境搭建 这一步我们往往会直接跳过,但既然是面向小白的教程,这里就提一下吧。首先你需要一台电脑,然后安装好JDK和JRE

2020Java面试题及答案,刷这些题,准没错!

十年热恋 提交于 2020-08-12 00:10:35
Java基础 1.JDK JRE 2. Java异常了解吗?说说平时遇到的异常?说出6种常见的java异常。写程序遇到过哪些异常 运行时异常有哪些 3. 面向对象 面对对象的几大特性 多态怎么理解 4. 修饰符:public;protect;default;private优先级 5. 对string类的理解。stringbuffer 和 stringbuilder 6. 反射机制介绍一下 7. bio,nio,aio分别介绍一下,nio的实现方式 8. 问了public等变量定义修饰词的时间域 9. 问了反射机制,还有问了动态代理的好处和坏处,好处答不上来 10. 接口和抽象类的区别。 11. 有一个public static final的HashMap,里边对象的属性能不能修改? 12. 为什么java 平台无关性 机器码和字节码区别 JVM加载代码的一个流程 13. java数据类型以及自己的应用 自动拆箱和自动装箱以及自己的应用即什么时候用到的,列举几种情况 14. 什么是值传递和引用传递,区别及应用 15. 重载和重写 16. static方法是否能重写,接口和抽象类的区别 17. 你觉得java是一种什么样的语言以及java特性 18. lamda表达式了解吗?1.8新特性有什么?(面试宝典对接口抽象这个问题是错的,过时了) 19. 内存泄露怎么造成的,怎么排查 20.

dubbo-admin的安装

拟墨画扇 提交于 2020-08-11 23:56:22
一.所需依赖介绍   Dubbo-admin是Dubbo RPC框架的“管理端”,可以对注册的服务(provider)和服务调用方(comsumer)进行服务治理,包括路由、监控、配置等功能;   Dubbo一般都是使用zookeeper来进行管理服务注册,而dubbo-admin查看哪些注册了哪些服务,也是需要从zk上查询的,所以Dubbo-admin需要依赖于zookeeper;   另外,Dubbo-admin是一个web项目(spring-boot),提供了管理端页面,页面是使用vue框架,所以需要安装node环境;   对于zookeeper和node的相关安装配置,这里就不在阐述。 二.dubbo-admin项目   github地址: https://github.com/apache/dubbo-admin   克隆到本地: git clone https://github.com/apache/dubbo-admin.git   我这里使用IDEA打开项目:      主要分为3个模块:   1.dubbo-admin-distribution,这个没有用过,可以用来打包分发管理端项目(dubbo-admin-server);   2.dubbo-admin-ui,这个模块就是dubbo的页面代码,使用了vue框架,依赖的数据都是通过http请求dubbo

本地window搭建kafka操作

[亡魂溺海] 提交于 2020-08-11 23:04:18
kafka 很多人说不需要安装zk的是因为他们都使用了kafka自带的zk至于kafka为什么使用zk,你首先要知道zk的作用, 作为 去中心化 的集群模式。需要要消费者知道现在那些生产者(对于消费者而言,kafka就是生产者)是可用的。如果没了zk消费者如何知道呢?如果每次消费者在消费之前都去尝试连接生产者测试下是否连接成功,效率呢?所以kafka需要zk,在kafka的设计中就依赖了zk了。 本地安装kafka操作步骤 1.下载安装 http://kafka.apache.org/downloads.html 2.修改配置文件 D:\kafka\kafka_2.12-2.1.0\config 1) 修改config目录下的server.properties文件,修改 log.dirs=D:\kafka\kafka_2.12-2.1.0/kafka-logs 2) 修改config目录下的log4j.properties文件,修改 log4j.appender.kafkaAppender.File=D:\kafka\kafka_2.12-2.1.0/logs/server.log 3) 修改config目录下的zookeeper.properties文件,加入或者修改 dataDir=D:\kafka\kafka_2.12-2.1.0/data/zookeeper 3

白天干开发,晚上搞副业赚钱 | Java 人生

喜欢而已 提交于 2020-08-11 20:25:30
阅读全文,约 5 分钟 这是江帅帅的第024篇文章 今天,只想聊如何提升技能,然后,赚钱! 作为 Java 程序员,你有想过怎样才能正确地增加自己的收入么? 每个起早贪黑去上班、卖命工作的人,都不是为了去当卧底,而是想凭自己的努力赚点儿钱,让自己和家人过得更好,对吧? 1 那你对增加收入,有研究过么? 接外包小单? No,浪费精力不说,能到手的钱寥寥无几。 写公号,然后接广告? 可以,因为公号仍然是所有自媒体中变现最好的方式,没有之一。 但现在才开始写公号,想要短时间内去涨粉,实在是太难了! 比如,我们沈剑老师的“架构师之路”公号,好几年前就开始坚持写,才有今天的规模。他说,如果让他重新开始不借助已有的流量来打造一个新的号,会非常的困难。 公号虽然难做,但变现非常容易! 还需要长期坚持才行,短期看不到任何效果的。不管抖音、知乎、B站、微博,还是视频号,都是一样的道理。 2 好,既然有好的选择,那也需要有好的落地执行! 1)不要害怕自己写得不好,担心写出来的东西被人笑话。 文字的顺畅程度,就跟梳头发一样,持续去写会越来越顺的。你没办法让所有人都喜欢你,但你也没办法让所有人都不喜欢你。萝卜白菜,各有所爱,坚持写就是了。 2)定好方向,不断的输出一定会倒逼你大量的输入,速度越来越快。 比如,你想写 Java 的文章,那你得不断去总结自己学过的内容,还有工作中沉淀下来的经验等等

他们都说JVM能实际使用的内存比-Xmx指定的少?这是为什么呢

不问归期 提交于 2020-08-11 19:59:52
这确实是个挺奇怪的问题,特别是当最常出现的几种解释理由都被排除后,看来JVM并没有耍一些明显的小花招: -Xmx和-Xms是相等的,因此检测结果并不会因为堆内存增加而在运行时有所变化。 通过关闭自适应调整策略(-XX:-UseAdaptiveSizePolicy),JVM已经事先被禁止动态调整内存池的大小。 重现差异检测结果 要弄清楚这个问题的第一步就是要明白这些工具的实现原理。通过标准APIs,我们可以用以下简单语句得到可使用的内存信息。 System.out.println("Runtime.getRuntime().maxMemory()="+Runtime.getRuntime().maxMemory()); 而且确实,现有检测工具底层也是用这个语句来进行检测。要解决这个问题,首先我们需要一个可重复使用的测试用例。因此,我写了下面这段代码: package eu.plumbr.test; //imports skipped for brevity public class HeapSizeDifferences { static Collection objects = new ArrayList(); static long lastMaxMemory = 0; public static void main(String[] args) { try { List

微服务技术栈:常见注册中心组件,对比分析

瘦欲@ 提交于 2020-08-11 18:35:08
本文源码: GitHub·点这里 || GitEE·点这里 一、注册中心简介 1、基础概念 在分布式架构的系统中注册中心这个概念就已经被提出了,最经典的就是Zookeeper中间件。 微服务架构中,注册中心是最核心的基础服务之一,注册中心可以看做是微服务架构中的通信中心,当一个服务去请求另一个服务时,通过注册中心可以获取该服务的状态,地址等核心信息。 服务注册主要关系到三大角色:服务提供者、服务消费者、注册中心。 2、流程和原理 基础流程 服务启动时,将自身的网络地址等信息注册到注册中心,注册中心记录服务注册数据。 服务消费者从注册中心获取服务提供者的地址,并通过地址和基于特定的方式调用服务提供者的接口。 各个服务与注册中心使用一定机制通信。如果注册中心与服务长时间无法通信,就会注销该实例,这也称为服务下线,当服务重新连接之后,会基于一定的策略在线上线。 服务地址相关信息发生变化时,会重新注册到注册中心。这样,服务消费者就无需手工维护提供者的相关配置。 核心功能 通过上面的基本流程,不难发现一个注册中心需要具备哪些核心功能: 服务发现 服务发现是指服务在启动后,注册到注册中心,服务方提供自身的元数据,比如IP地址、端口、运行状况指标的Uri 、主页地址等信息。 服务记录 记录注册中心的服务的信息,例如服务名称、IP地址、端口等。服务消费方基于查询获取可用的服务实例列表。

使用kafka自带工具类进行重置kafka偏移量

徘徊边缘 提交于 2020-08-11 18:26:31
查看 kafka 偏移量信息 命令: ./kafka-consumer-groups.sh –zookeeper [多个地址以逗号分割,例子:192.1.1.1:2181,192.2.2.2:2181] –group [消费组 test-consumer-group] –describe 新建 properties 文件后续工具类用到 例子:test.properties 内容如下: #zookeeper地址加端口 zookeeper.connect=192.168.1.1:2181,192.168.1.2:2181 #链接zookeeper超时时间 zookeeper.connection.timeout.ms=6000 #消费者组id group.id=test-consumer-group 使用kafka自带工具类kafka.tools.UpdateOffsetsInZK重置偏移量 命令:./ kafka-run-class.sh kafka.tools.UpdateOffsetsInZK [earliest: 最早偏移量/latest:最新偏移量] [properties文件例:/test/test.properties] [topic:例子 wait-data] 重启消费项目即可 来源: oschina 链接: https://my.oschina.net/u