为您找到搜索结果:5124个
深入云存储系统Swift核心组件:Ring实现原理剖析
http://www.cnblogs.com/yuxc/archive/2012/06/22/2558312.html简介OpenStack是一个美国国家航空航天局和Rackspace合作研发的开源云计算项目,并成为Apache下的一个重要开源项目,目前已经发展到了180家公司参与其中。OpenStackObjectStorage(Swift)是OpenStack开源云计算项目的子项目之一。Swift的目的是使用普通硬件来构建冗余的、可扩展的分布式对象存储集群,存储容量可达PB级。OpenStackObjectStorage 最初由 Rackspace 采用Python语言开发,并于 2010 年 7 月贡献给 OpenStack,作为该开源项目的一部分。它的目的是用于托管 Rackspace的 CloudFilesservice ,原始项目代号是 swift,所以沿用至今。在分布式对象存储中的一个关键问题是数据该如何存放。Ring是Swift中最重要的组件,用于记录...
实现容器的底层技术
https://www.cnblogs.com/CloudMan6/p/7045784.html为了更好地理解容器的特性,本节我们将讨论容器的底层实现技术。cgroup和namespace是最重要的两种技术。cgroup实现资源限额,namespace实现资源隔离。cgroupcgroup全称ControlGroup。Linux操作系统通过cgroup可以设置进程使用CPU、内存和IO资源的限额。相信你已经猜到了:前面我们看到的--cpu-shares、-m、--device-write-bps 实际上就是在配置cgroup。cgroup到底长什么样子呢?我们可以在/sys/fs/cgroup中找到它。还是用例子来说明,启动一个容器,设置 --cpu-shares=512:查看容器的ID:在/sys/fs/cgroup/cpu/docker目录中,Linux会为每个容器创建一个cgroup目录,以容器长ID命名:目录中包含所有与cpu相关的cgroup配置,文件cpu.shares保存的就是 --cpu-shares 的配置,值为512。同样的,...
把虚拟教练带回家,「EuMotus」想用AI实现高精度运动反馈系统
https://36kr.com/p/5089139.html无需穿戴设备,只需一个红外摄像头和+已安装好EuMotus专利软件的手提电脑由政府主导的高达2200亿美金的健身与运动支出,15%的健身俱乐部年增长率,46%的中国年轻人正在使用健身器材与健身软件。这是美国IBIS此前发布的关于中国体育与健身产业行业报告的部分数据,36氪此前曾报道过Keep、Fittime、乐动力、超级猩猩、小熊快跑等健身产业的明星项目,他们都利用了互联网的红利改变了人们的生活。近期36氪接触了来自哈佛大学的初创团队团队「EuMotus」,与上述团队不一样的是,「EuMotus」希望借助于AI的力量提升整体健身市场的训练标准。这里有一组数据,中国有36%的成年人患有慢性疼痛;2016年清远马拉松参赛人数2万,受伤人数却达1万2;包括姚明、刘翔在内的中国体育明星因为运动伤害最终导致职业生涯的提早结束。事实上,每一个从事体育和健身产业的人都知道,不标准的运动与健身姿势会对身体带来极大的损伤,但并不是每一个用户都有专业教练或反馈系统帮助他们对动作进行监测、分析与矫正。「EuMotus」创始人Henry告诉36氪,...
SaaS加速器 III 技术中心:提供SaaS Launchkit,快速定制,一云多端等能力,一云多端将通过小程序云实现
https://yq.aliyun.com/articles/695746演讲主题:SaaS加速器III技术中心:聚合开放高效强大技术中心定义:阿里云以聚合开放的姿势,提供一个高效强大的技术开发平台技术中心中提到的企业应用典型开发场景,最主要的受众是开发者。今天我们将会重磅发布两款产品系列:SaaSlaunchKit和APaaS。第一,企业应用需要快速接入阿里云基础设施和售卖服务体系不论是合作伙伴还是企业客户的应用,都会面临一个怎样快速上云的问题;上云后的不同应用,如何带给企业客户统一的登陆和使用体验,这些就是SaaSlaunchKit想要解决的问题。此外,SaaSlaunchKit也希望让所有应用能快速接入售卖服务体系,开拓商机和变现。第二,从0到1,快速业务创新试错,需要大幅提升应用研发效率过去很多开发团队普遍会遇到三种状况,我们需要高效快速的定制,快速满足企业客户多变的应用需求。0代码:当公司没有储备软件工程师,且业务开发人员需要定制业务流程时,可以做到不写代码,通过宜搭上的简单操作,即拖即用,就能快速构建新流程新表单;低代码:当大客户定制需求多、时间紧时,即使服务商具备开发能力...
HashMap 中的容量与扩容实现,细致入微,值的一品!
开心一刻 巴闭,你的脚怎么会有味道,我要闻闻看是不是好吃的,嗯~~爸比你的脚臭死啦!!…… JDK1.8中HashMap的底层实现,我相信大家都能说上来个一二,底层数据结构 数组+链表(或红黑树) ,源码如下/***数组*/transientNode<K,V>[]table;/***链表结构*/staticclassNode<K,V>implementsMap.Entry<K,V>{finalinthash;finalKkey;Vvalue;Node<K,V>next;Node(inthash,Kkey,Vvalue,Node<K,V>next){this.hash=hash;this.key=key;this.value=value;this.next=next;}publicfinalKgetKey(){returnkey;}publicfinalVgetValue(){returnvalue;}publicfinalStringtoString(){retu...
Spring拓展接口之BeanPostProcessor,我们来看看它的底层实现
开心一刻 小明:“妈,我被公司开除了”,妈:“啊,为什么呀?”,小明:“我骂董事长是笨蛋,公司召开高层会议还要起诉我”,妈:“告你诽谤是吧?”,小明:“不是,他们说要告我泄露公司机密” 不管三七二十一,我们先来看看它的定义,看看spring是如何描述BeanPostProcessor的/**Copyright2002-2016theoriginalauthororauthors.**LicensedundertheApacheLicense,Version2.0(the"License");*youmaynotusethisfileexceptincompliancewiththeLicense.*YoumayobtainacopyoftheLicenseat**http://www.apache.org/licenses/LICENSE-2.0**Unlessrequiredbyapplicablelaworagreedtoinwriting,softw...
Spring MVC的工作原理,我们来看看其源码实现
开心一刻 晚上陪老丈人吃饭,突然手机响了,我手贱按了免提……哥们:快出来喝酒!哥几个都在呢!我:今天不行,我现在陪老丈人吃饭呢。哥们:那你抓紧喝,我三杯白酒,把我岳父放倒了才出来的,你也快点。看着我老丈人的脸,我不知道该怎么回了……猪一样的队友 在关于利用maven搭建ssm的博客,我们一起来探讨下问的最多的问题中,我遗留了一个问题:Springmvc是何时、何地、如何将Model中的属性绑定到哪个作用域,这里的作用域指的是Servlet的四大作用域;不了解问题背景的可以回过头去看看我的上篇博文。 明确的解答我会放到最后,在解答问题之前,我先和大家一起来捋一捋Springmvc的工作原理。废话不多说,开始我们神秘的探险之旅! 在讲工作原理之前,我们先看一个简单的springmvc(ssm)示例,以及实现的效果 工程代码地址:ssm-web 工程结构与效果如上所示,我们不做过多的探究,我们打起精神往下看本篇的重点 准备-资源的加载与初始化 1、DispatcherServlet静态初始化 Di...
Spring拓展接口之FactoryBean,我们来看看其源码实现
开心一刻 那年去相亲,地点在饭店里,威特先上了两杯水,男方绅士的喝了一口,咧嘴咋舌轻放桌面,手抚额头闭眼一脸陶醉,白水硬是喝出了82年拉菲的感觉。如此有生活情调的幽默男人,果断拿下,相处后却发现他比较木讷,问他为什么那天喝水那么有趣,他仰头道:鬼知道那杯水怎么那么烫啊! FactoryBean的源码比较简单,大家可以细读下其注释,我做了简单的如下翻译/***实现此接口的bean不能用作普通bean。此bean暴露的对象是通过getObject()创建的对象,而不是它自身*/publicinterfaceFactoryBean<T>{/***返回此工厂管理的对象的实例(可能是共享的或独立的,取决于isSingleton()的返回值)*/@NullableTgetObject()throwsException;/***返回此FactoryBean创建的对象类型,*/@NullableClass<?>getObjectType();/***该工厂管理的对象是否为单例?*如果是(returntrue),getObject()总是返回同一个共享的实例,该对象会被...
设计模式之代理,手动实现动态代理,揭秘原理实现
开心一刻 周末,带着老婆儿子一起逛公园。儿子一个人跑在前面,吧唧一下不小心摔了一跤,脑袋瓜子摔了个包,稀里哗啦的哭道:“爸爸,我会不会摔成傻子!” 我指了指我头上的伤痕安慰道:“不会的,你看,这是爸爸小时候摔的。” 话还没有说话,小家伙哭的更厉害了:“那就是说我长大后就会和你一样傻了,我不要,我不要!” 老婆忍不住发飙:“别哭了,你怎么会变傻呢?你看你爸,你爸傻吗?” 我赶紧回应道:“是啊,你看我多聪明!” 儿子:“真的,不骗我?” 老婆:“当然!” 儿子:“可是如果老爸不是傻子,当年怎么会娶你这个母老虎呢?” 我、老婆:…… 所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的左右。 代理模式:...
应用集成mycat,实现mycat的高可用与mysql的读写分离
开心一刻 一个女人自朋友圈写道:我家老公昨天和别人家的老婆出去旅游,迄今未归,我则被别人家的老公折腾了一天,好累哦! 圈子下面,评论无数,老公在下面评论到:能不能好好说话,我只不过陪女儿去毕业旅游行,而你负责在家留守,照顾三岁儿子,要不要写的这么刺激、让人浮想联翩的?你是不是有点虎?诺维斯基:你往哪射了?周子瑜:我只是个娱乐明星,射箭我不是专业的... 路漫漫其修远兮,吾将上下而求索! github:https://github.com/youzhibing 码云(gitee):https://gitee.com/youzhibing 通过前面的两篇博文:Mycat-实现数据库的读写分离与高可用和Mycat-高可用与负载均衡实现,满满的干货!,我们完成了如下图所示的组件部署组件结构图一 SQL请求发给VIP,keepalived完成VIP的映射,并通过lvs将请求转发mycat,mycat根据SQL请求类型(DMLSQL还是SELECTSQL,亦或是强制指定db节点)将SQL分发到具体的db,完成由具体的数据库服务完成SQL的执行。 但这还只是停留在数据库层...
keepalived实现mycat高可用问题排查;道路坎坷,布满荆棘,定让你大吃一惊!
开心一刻 医院里,一母亲带着小女孩打针。小女孩:“妈妈我不想打针,疼!”妈妈:“宝贝儿听话,这里这么多护士阿姨,咱们找个打针不疼的。”小女孩:“那哪个阿姨打针不疼呢?”妈妈:“妈妈也不知道,咱们试试看吧。”小女孩高兴的点了点头。。。 路漫漫其修远兮,吾将上下而求索! github:https://github.com/youzhibing 码云(gitee):https://gitee.com/youzhibing Mycat-实现数据库的读写分离与高可用写完之后,本以为一两天就能写完Mycat-高可用与负载均衡实现,满满的干货!,可事实是却用了一个星期;期间虽然产生了一系列的问题,但主要还是卡在了keeplaived实现mycat的高可用,那时候两台keepalived服务器的keepalived.conf内容如下 细心的朋友应该已经找到问题了,不管你找没找到问题,都可以准备好花生、瓜子和啤酒,且看我是如何埋雷和扫雷的 个人一直用ifconfig命令来管理...
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
开心一刻 小白问小明:“你前面有一个5米深的坑,里面没有水,如果你跳进去后该怎样出来了?”小明:“躺着出来呗,还能怎么出来?”小白:“为什么躺着出来?”小明:“5米深的坑,还没有水,跳下去不死就很幸运了,残是肯定会残的,不躺着出来,那能怎么出来?”小白:“假设没死也没残呢?”小明:“你当我超人了?那也简单,把脑子里的水放出来就可以漂出来了。”小白:“你脑子里有这么多水吗?”小明:“我脑子里没那么多水我跳下去干嘛?” 路漫漫其修远兮,吾将上下而求索! github:https://github.com/youzhibing 码云(gitee):https://gitee.com/youzhibing springboot1.x到2.x变动的内容还是挺多的,而2.x之间也存在细微的差别,本文不讲这些差别(具体差别我也不知道,汗......),只讲1.5.9与2.0.3的redis缓...
elk + filebeat,6.3.2版本简单搭建,实现我们自己的集中式日志系统
刚从事开发那段时间不习惯输出日志,认为那是无用功,徒增代码量,总认为自己的代码无懈可击;老大的叮嘱、强调也都视为耳旁风,最终导致的结果是我加班排查问题,花的时间还挺长的,要复现问题、排查问题等,幸亏那是公司内部员工用的系统,时间长一点也没什么大问题,但是如果是针对客户的,时间就代表很多东西了,那造成的影响就非常大了。自那以后养成了输出日志的习惯。 但是后来发现,仅仅只是输出日志文件,对于排查问题来说,还是很费时,因为要在一个庞大的日志文件中过滤出我们需要的信息也十分耗时;那么此时基于日志文件的日志系统就被需要了。 至于需不需要搭建日志系统、以及搭建一个怎样的日志系统,需要根据我们的业务实际情况而定,例如公司内部员工用的一个不重要的系统,那么日志文件可能就够了;而对于针对客户的、直接与公司利益挂钩的,我认为不仅要搭建日志系统,更要输出更详细的日志信息到日志文件,提供运维的效率。 elk+filebeat各个组件的功能 Elasticsearch:分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于ApacheLucene构建,能对大容量的数据进行接近实时的存储、...
Redis Cluster的搭建与部署,实现redis的分布式方案
上篇RedisSentinel安装与部署,实现redis的高可用实现了redis的高可用,针对的主要是master宕机的情况,我们发现所有节点的数据都是一样的,那么一旦数据量过大,redis也会效率下降的问题。redis3.0版本正式推出后,有效地解决了Redis分布式方面的需求,当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构方法达到负载均衡的目的。 而此篇将带领大家实现RedisCluster的搭建,并进行简单的客户端操作。 github地址:https://github.com/youzhibing/redis redis版本:redis-3.0.0 linux:centos6.7 ip:192.168.11.202,不同的端口实现不同的redis实例 客户端jedis,基于spring-boot 节点准备 192.168.11.202:6382,192.168.11.202:6383,192.168.11.202:6384,192.168.11.20...
Redis Sentinel安装与部署,实现redis的高可用
对于生产环境,高可用是避免不了要面对的问题,无论什么环境、服务,只要用于生产,就需要满足高可用;此文针对的是redis的高可用。 接下来会有系列文章,该系列是对spring-session实现分布式集群session的共享的完整阐述,同时也引伸出缓存的实现;而此篇是该系列的第一篇。 github地址:https://github.com/youzhibing/redis redis版本:redis-3.0.0 linux:centos6.7 ip:192.168.11.202,一台服务器上搭建搭建全部redis实例,包括数据节点实例以及哨兵(sentinel)实例 客户端jedis,基于spring-boot 搭建一主二从的主从环境 1、redis安装 安装很简单,网上资料很多,redis官网也有说明;主要就是3步:解压,make,makeinstall 2、数据节点配置文件 redis解压后,redishome目录下有redis配置的样例文件,我们不直接在此文件上就行修改,在redishome目录下新建文件夹master_slave,将配置文件都放于...