贴吧图片
0

众所周知,万达是中国最大的商业地产公司,万达老板王健林是中国首富,过去几年一直都是顺风顺水。不过,老冀觉得,万达即将面临“成长的烦恼”:随着中国人口红利的消失,房地产行业的增长将会放缓。因此,我们看到最近几年万达开始发力文化产业,不仅在各地的万达广场中大规模兴建万达影院,还以26亿美元收购了美国第二大影院院线AMC。此外,万达还准备建设一大批文化主题广场。老冀认为,万达之所以这么做,都是为了在房地产之外再造一个未来的支柱产业。

在此之前,万达集团已经涉足零售业,成立了万达百货,但是做得并不好。万达的年会报告披露,2013年万达百货的收入是154.9亿元,只完成了计划的91%,这还是下调之后的计划。目前,万达百货仍持续亏损。

目前,万达集团旗下有商业地产、酒店、文化旅游和百货四大产业,商业地产仍然占大头,是典型的“收租模式”:万达在城市核心地带找好一块地,盖好房子然后找商家来租,万达每年收租金。这种“收租模式”不接触最终消费者,也不怎么关心商家的经营状况,反正这家走了再找另一家就是了。

而万达未来重点发展的几大产业的商业模式则与商业地产有着很大的不同,无论是酒店、主题公园、电影院线还是百货,其实都需要持续经营消费者。可是,怎样才能将这几块新业务串起来,形成合力呢?互联网也许是个很好的工具。老冀认为,这也许才是王健林执意要做电商的理由,至于说是因为跟马云打赌才做的,恐怕更多的是个烟雾弹。

万达电商从2012年5月开始组建,万达也亮出了土豪本色,花了200万年薪招总经理,100万年薪招高管。据说,几乎所有知名的电商高管都被万达的猎头骚扰过一遍,以至于没接到万达电话的,都不好意思说自己是搞电商的。

2012年12月,曾担任谷歌总部电子商务技术部经理、阿里巴巴国际交易技术资深总监的龚义涛就任那个年薪200万的万达电商总经理。此外,一大批来自阿里、谷歌等互联网公司的高管纷纷加盟万达电商。

问题是这波人都没做过线下业务,对万达独特的商业模式也是不甚了解。老冀觉得,未来实物经济与虚拟经济肯定会结合得越来越紧密。因此,互联网人一定要谦虚谨慎,杜绝“互联网沙文主义”,不要觉得动动鼠标、倒腾点流量就能搞定一切。

而实际上,这波互联网人就是犯了这个错误。他们提了很多套方案,不过都是些建个网站、做个移动App这样的纯互联网思路,当然一一被英明的王老板给否决了。一直折腾到2013年八九月份,他们仍然没有拿出一个适合万达的电商方案。结果,军人出身的王老板一生气,干脆派上了自己的“近卫军”,让万达IT部门接管了万达电商。据老冀了解,此后这波互联网人大多离开了万达。

在房地产行业,万达的IT系统是公认做得最好的,王老板只需要坐在办公室里动动鼠标,万达的所有大事小情就能够尽收眼里。因此,万达的IT部门是很强的,有着400多人的团队,万达集团的CIO朱战备也是很厉害的。老冀见过朱总几次,感觉他是个对公司业务和IT系统都很精通的人才,而且绝对务实。由于朱总过去曾经在外资企业上海贝尔阿尔卡特担任过CIO,喝过洋墨水,那些高大上的国外IT厂商想用些似是而非的新概念去忽悠他,绝对没门!在这里老冀也给传统企业的老板提个建议:当你准备开拓新业务的时候,与其从外边找不太靠谱的职业经理人,倒不如从内部找靠谱的部下。如果感觉CIO很靠谱,直接用CIO去做新业务肯定没错,因为这个CIO必然是既了解公司的业务,又熟悉互联网的大趋势,还懂一些技术,做新业务最合适。

务实的朱总带着一帮人开始重新研究万达的电商要怎么搞,结论很快就出来了:万达做B2C电商肯定没戏!一个是做B2C需要巨大的投入,而且由于天猫和京东已经建立起了遥遥领先的优势,你肯定赶不上。事实也是如此,苏宁在B2C上的决心不可谓不大,投入的资源不可谓不多,但是到了2013年年底一盘点,苏宁易购与京东的差距反而有拉大的趋势。

万达电商的新团队接着分析,如果不做B2C,万达又能做什么呢?这个还得看万达有什么。目前万达在全国有85家万达广场,2014年开到120家,2015年140家。每家万达广场每年的访问人数有2000万,一年就有超过20亿人次的流量,绝对能够赶超国内任何一家中型B2C电商的流量!而且,这些线下流量的客单价、转化率要比线上的B2C电商高得多:你既然决定去万达广场,总是要买点东西或者看个电影、唱个卡拉OK吧?哪一样不得花银子?

于是,他们得到的下一个结论就是万达不做B2C,要做O2O。具体怎么做呢?他们想了个办法,就是建立大会员体系。所谓“大会员”,就是这个会员资格在全国所有的万达广场、万达酒店、万达文化园区内都是通用的,而且要在万达广场的所有门店中都是通用的。消费者在“万达系”的任何一个商家消费都能够获得积分,积分也是通用的,能够直接拿到万达广场的3万多商家中消费。目前,万达已经在全国20多家万达广场中做“大会员”试点,鼓励消费者办理会员卡,并计划将其推广到全国所有的万达广场。万达计划在两年之内,将万达广场的消费者转化成一亿名万达会员。有了这一亿名会员,万达才算是真正掌握住了自己的客户。

如果“大会员”进展顺利的话,万达同时就可以玩“大数据了”。例如,能够根据会员每次来万达广场的消费情况,给这些会员进行归类,打上标签。此后,万达也就能够经营会员了,例如帮助商家筛选消费者,做个性化营销。例如,我是万达广场中一家卖礼品的商家,情人节想搞个促销活动,就可以通过万达电商的后台,挑选出一批25-30岁的单身男女,然后根据他们所处的地理位置,有针对性地向他们推送促销信息。

有了“大会员”和“大数据”,万达其实已经能够帮商家干很多事情了。例如,过去商家搞促销,必须雇人到万达广场门口发纸质优惠券,发出1万份能回收800份就不错了,还得贴上近1万元的制作成本。有了“大会员”和“大数据”之后,商家就可以直接从后台的数据库中挑选出适合的消费者,通过短信或微信等各种渠道做精准营销,成本也要低很多。

有了“大会员”和“大数据”,万达还能够将商圈拓展到万达广场之外。例如,在万达广场周围的小商户中设置能刷万达会员卡的POS机,给这些小商户带来新的流量,也给会员提供了更多的便利。

有了“大会员”和“大数据”,万达就可以跟第三方商家打交道了。例如,万达可以跟银行信用卡中心、航空公司、连锁加油站等商家合作,他们每年发的卡里面都有大量的积分花不出去,就可以跟万达会员卡谈个兑换比例,让他们的会员到万达广场来消费。

这就是万达的O2O,能够做到扬长避短。老冀认为,同样是两个“O”,万达看重的还是线下的那个“O”。至于线上的那个“O”,无论是自家的万汇网、万汇App,还是第三方的微信、团购,只是给线下的“O”提供导流的作用。大家觉得,万达的O2O是不是比苏宁硬桥硬马地直接做B2C更可行一些?

不过,想法可行,并不代表一定就能做起来。作为消费者,我已经有了优衣库、沃尔玛的卡,为什么还要办万达会员卡?作为商家,如果客户都去刷万达会员卡了,我获取新客户的收益还抵不上支出,我为什么要接纳万达会员卡?另外,如果我手中已经有了很大的客户数据,我为什么要与万达共享?这些利益上的问题,都需要万达设计出一套很好的商业模式来解决。

 

要做成“大会员”和“大数据”不是那么容易的,既需要成熟的会员营销方法论,还需要可用的CRM软件,更需要懂得会员营销的运营团队,万达需要的是一整套解决方案。为了尽快找到这套解决方案,万达一方面广招贤才,另一方面则找了4家“外脑”IBM、西门子利多富、甲骨文、雅座来招标,让外部专家来说说到底应该怎么搞。出于意料的是,3家“高大上”的外企却没能赢得万达的欢心,反倒是雅座在线这家本土的小公司赢得了万达的信任。在这里,老冀不禁要为万达捏一把汗:虽然雅座在连锁餐饮企业的会员营销方面做得很不错,也有一套成熟的解决方案,但是毕竟从来没有做过这么复杂的商业广场项目,万达也真敢赌!

总之,万达的O2O看起来可行,但是要真正见到成效,恐怕也不是一年两年的事情,作为老板的王健林恐怕还需要多点耐心。

更新时间:03/20/2014
贴吧图片
0

 

谷歌CEO佩奇谈互联网隐私:不要因噎废食

  新浪科技讯 北京时间3月20日早间消息,谷歌(1199.25, -12.01, -0.99%)CEO拉里·佩奇(Larry Page)周三在温哥华举行的TED大会上表示,虽然隐私问题值得重视,但不应该因噎废食,不假思索地一味保护隐私。

  佩奇起初迟迟不肯公布自己的喉咙究竟出了什么问题,但当他对外公布实情后,立刻收到了数以千计与他有类似情况的人的回复,这也让他意识到开放的价值。他甚至认为,如果人们能将自己的病例匿名分享到网上,今年大约会有10万人的生命得到拯救。

  他在TED大会上说:“我很担心互联网隐私,我们对待此事的态度与对待病例类似,我们正在不加区分地把婴儿和洗澡水一起倒掉。我们并没有考虑,将正确的信息,通过正确的方式,与正确的人分享之后,所得到的巨大利益。”

  诚然,隐私问题十分重要。“世界变了,如果你拿着手机,它就知道你在那里。”佩奇说,“关于你的信息已经大幅增多。人们询问不同的问题的确在情理之中。而我认为,我们应该做的就是为他们提供选择,向他们展示哪些数据会被收集,并告知他们搜索历史和定位数据。我们对Chrome的隐身浏览模式感到振奋,并且在通过更多方式实现这种服务。但我们只是为人们提供了更多选择,让他们知道事情的进展。”

  佩奇一直在强调人工智能和上网的好处,他同时也在批评美国政府的监视行为。“棱镜门”泄密者爱德华·斯诺登(Edward Snowden)周二也通过远程视频参与了TED,谷歌联合创始人谢尔盖·布林(Sergey Brin)还借助视频会议与他合影。

  “没有安全就没有隐私。”佩奇说,“如果我们必须要预防用户受到政府的监视,那就没有民主可言。我们应该知道,这些监视活动的目的、方法和原因,但政府却将这一切保密。我认为我们应该就此展开辩论,否则便无法建立有序的民主制度。

更新时间:03/20/2014
贴吧图片
8

各位,我希望本届的 Android 程序设计竞赛能够从 trustie 平台上进行。
能否提供一个类似于 App Store 的功能?具体需求:

1. 参赛者能够上传自己的 android 程序,包括 apk 文件、程序logo、截图、版本更新。
2. 所有人员均可下载程序,并进行打分(五分制或者百分制),评价留言。
3. 每个 id 只有在下载过程序后才能评价,可以实名货值匿名。
4. 界面参考 App Store、iTunes 或者 Android 软件市场。

最后回复:张鹏飞
03/18/2014
更新时间:03/18/2014
贴吧图片
1
再强调一下,帖子内容应该可以为空
最后回复:王春
03/13/2014
更新时间:03/13/2014
贴吧图片
1
  1. 综述
  2. 解决方法
    1. 服务代理模式
    2. 跨子域名的调用
    3. 跨源资源共享
    4. 使用JSONP协议
    5. 跨文档消息Cross-documentMessaging

 

综述

出于防范跨站脚本攻击的同源安全策略,浏览器禁止客户端脚本(如Javascript)对不同域名的服务进行跨域调用。

同源策略(Same Origin)中的源有着严格的定义,参见RFC6454,第4章节。一般而言,Origin由{protocol, host, port}三部分组成。

下面是同源检查的一些实例:

 

可能有点意外的是,一般我们会认为不同的子域名应该被当做同域名,是安全的调用,但实际上浏览器同源策略甚至禁止了不同子域名和端口的服务之间的调用。

 

解决方法

有时候上述限制过于严格,为了在两个不同Origin的网页(服务)之间进行通讯,我们可以采用如下的一些技术方法:

1、服务代理模式

即在web服务器上封装第三方服务,然后给自己同源的web页面调用。

 

2、跨子域名的调用

如果想从www.example.com调用api.example.com的html/xml数据服务,那么可以通过使用iframe,并在document和iframe中均设置相同的document.domain属性,那么document和iframe所对应的页面直接就可以通信而不会有任何安全冲突(security violation),注意必须设置相同的一级域名(document.domain="example.com"),不要设置子域名。代码示例如下:

t.html

 

[html] view plaincopyprint?

  1. <html>  
  2.   <head>  
  3.   <script type="text/javascript">  
  4.     document.domain = "example.com";  
  5.     function update_me(result) {  
  6.       document.getElementById('update-me').innerHTML = "Result: " + result;  
  7.     }  
  8.     function load() {  
  9.         var c = document.createElement('iframe');  
  10.         c.style.display = "none";  
  11.         c.src = "http://api.example.com/cross-subdomains-ajax/t-frame.html#" + document.domain;  
  12.         document.body.appendChild(c);  
  13.     }  
  14.   </script>  
  15.   </head>  
  16.   <body onload="load();">  
  17.     <div id="update-me"></div>  
  18.   </body>  
  19. </html>  
<html>
  <head>
  <script type="text/javascript">
    document.domain = "example.com";
    function update_me(result) {
      document.getElementById('update-me').innerHTML = "Result: " + result;
    }
    function load() {
        var c = document.createElement('iframe');
        c.style.display = "none";
        c.src = "http://api.example.com/cross-subdomains-ajax/t-frame.html#" + document.domain;
        document.body.appendChild(c);
    }
  </script>
  </head>
  <body onload="load();">
    <div id="update-me"></div>
  </body>
</html>


t-frame.html

 

 

[html] view plaincopyprint?

  1. <html>  
  2.   <head>  
  3.   <script type="text/javascript">  
  4.     function spoof(status, headers, result) {  
  5.       var old_domain = document.domain;  
  6.       document.domain = example.com;  
  7.       window.parent.update_me("Ok, got it from the frame !");  
  8.       try {  
  9.         document.domain = old_domain;  
  10.       } catch (e) { }  
  11.     }  
  12.     spoof();  
  13.   </script>  
  14.   </head>  
  15. </html>  
<html>
  <head>
  <script type="text/javascript">
    function spoof(status, headers, result) {
      var old_domain = document.domain;
      document.domain = example.com;
      window.parent.update_me("Ok, got it from the frame !");
      try {
        document.domain = old_domain;
      } catch (e) { }
    }
    spoof();
  </script>
  </head>
</html>

 

3、跨源资源共享

 

这是已经标准化的技术方法,参见W3规范文档Cross Origin Resouce Sharing:http://www.w3.org/TR/cors/

通过在服务端设置Access-Control-Allow-Origin响应头(一般回填$_SERVER['HTTP_ORIGIN']),

header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);

来告诉浏览器该服务允许来自特定源的访问或者允许所有人访问。

尽管该规范支持使用origin list的形式,但实际浏览器实现只支持了单个origin、*、null,如果要配置多个访问源,可以在代码中处理如下(PHP):

 

[php] view plaincopyprint?

  1. $allowed_origins   = array(  
  2.                             "http://www.example.com"   ,  
  3.                             "http://app.example.com"  ,  
  4.                             "http://cms.example.com"  ,  
  5.                           );  
  6. if (in_array($_SERVER['HTTP_ORIGIN'], $allowed_origins)){    
  7.     @header("Access-Control-Allow-Origin: " . $_SERVER['HTTP_ORIGIN']);  
  8. }  
$allowed_origins   = array(
                            "http://www.example.com"   ,
                            "http://app.example.com"  ,
                            "http://cms.example.com"  ,
                          );
if (in_array($_SERVER['HTTP_ORIGIN'], $allowed_origins)){  
    @header("Access-Control-Allow-Origin: " . $_SERVER['HTTP_ORIGIN']);
}


或者在httpd配置或.htaccess文件(如果使用的是Apache服务器)中添加如下语句:

 

 

[plain] view plaincopyprint?

  1. SetEnvIf Origin "^(.*\.example\.com)$" ORIGIN_SUB_DOMAIN=$1  
  2. Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN  
SetEnvIf Origin "^(.*\.example\.com)$" ORIGIN_SUB_DOMAIN=$1
Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN


如用的是nginx,配置类似如下:

 

 

[plain] view plaincopyprint?

  1. location / {  
  2.     # this will echo back the origin header  
  3.     if ($http_origin ~ "example.com$") {  
  4.         add_header "Access-Control-Allow-Origin" $http_origin;  
  5.     }  
  6. }  
location / {
    # this will echo back the origin header
    if ($http_origin ~ "example.com$") {
        add_header "Access-Control-Allow-Origin" $http_origin;
    }
}

 

4、使用JSONP协议

出于同源策略,HTML禁止在两个页面之间进行通讯,但<script>元素是个例外,JSONP利用这个开放特性来实现跨域调用,

在客户端调用提供JSONP支持的URL Service,获取JSONP格式数据,然后在callback函数中处理返回的json协议数据:

 

[html] view plaincopyprint?

  1. <script type="text/javascript" src="http://api.example.com/getdata?jsonp=callback"></script>  
<script type="text/javascript" src="http://api.example.com/getdata?jsonp=callback"></script>

 

如使用jQuery的ajax调用方式,示范代码如下:

 

[javascript] view plaincopyprint?

  1. $.ajax({  
  2. dataType: 'jsonp',  
  3. data: 'id=10',  
  4. jsonp: 'jsonp_callback',  
  5. url: 'http://api.example.com/getdata',  
  6. success: function () {  
  7. // do stuff   
  8. },  
  9. });  
$.ajax({
dataType: 'jsonp',
data: 'id=10',
jsonp: 'jsonp_callback',
url: 'http://api.example.com/getdata',
success: function () {
// do stuff
},
});

 

5、跨文档消息(Cross-document Messaging)

这个是HTML5引入的一个在跨域页面之间通讯的方法,参见W3规范 http://dev.w3.org/html5/postmsg/

postMessage API应用范围主要有2个,1是文档和内嵌frame之间的消息通信,2是文档和自身通过脚本打开的windows之间的消息通信

最后回复:谭显波
03/12/2014
更新时间:03/12/2014
贴吧图片
0

Redmine 2.5.0 发布,此版本包括了许多改进和新特性,现已提供下载。此版本主要改进了自定义字段格式:

 

  • 支持文本格式

  • 支持 HTTP 链接

  • 提供给用户基于角色和版本状态的细粒度的选择

  • 完全重写了自定义字段格式的 API ;如果用户需要运行一些相关的插件(比如,添加非标准的字段格式),用户需要在升级之前更新

此版本同时还引入了对  Markdown 格式的支持,这是个非常流行的文本格式语法编辑。更多内容请查看Changelog

 

Redmine 2.4.4 版本是个维护版本,主要包括了一些缺陷修复和升级了 Rails 到 3.2.17 版本。

Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理。Redmine是一个自由开放 源码软件解决方案,它提供集成的项目管理功能,问题跟踪,并为多个版本控制选项的支持。

虽说像IBM Rational Team Concert的商业项目调查工具已经很强大了,但想坚持一个自由和开放源码的解决方案,可能会发现Redmine是一个有用的Scrum和敏捷的选择。 由于Redmine的设计受到Rrac的较大影响,所以它们的软件包有很多相似的特征。

Redmine建立在Ruby on Rails的框架之上,支持跨平台和多种数据库。。

更新时间:03/11/2014
贴吧图片
1

软件所魏老师的课程:http://forge.trustie.net/projects/76/boards

最后回复:王林春
03/11/2014
更新时间:03/11/2014
贴吧图片
0

做开发的时候要做Mysql数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,Mysql的版本是4.1.15,都是目前最新的版本。


1. 安装配置

两台服务器,分别安装好Mysql,都安装在 /usr/local/Mysql 目录下(安装步骤省略,请参考相关文档),两台服务器的IP分别是192.168.0.1和192.168.0.2,我们把192.168.0.1作为master数据库,把192.168.0.2作为slave服务器,我们采用单向同步的方式,就是master的数据是主的数据,然后slave主动去master哪儿同步数据回来。

两台服务器的配置一样,我们把关键的配置文件拷贝一下,默认的配置文件是在 /usr/local/Mysql/share/Mysql目录下,分别有 my-large.cnf, my-medium.cnf, my-small.cnf等几个文家,我们只是测试,使用my-medium.cnf就行了。Mysql安装完后,默认的配置文件是指定在数据库存放目录下的,我们用的是4.1.X的,所以配置文件就应该在 /usr/local/Mysql/var 目录下,于是把配置文件拷贝过去:
cp /usr/local/Mysql/share/Mysql/my-medium.cnf  /usr/local/Mysql/var/my.cnf

两台服务器做相同的拷贝配置文件操作。


2. 配置Master服务器


我们要把192.168.0.1配置为主Mysql服务器(master),那么我们就要考虑我们需要同步那个数据库,使用那个用户同步,我们这里为了简单起见,就使用root用户进行同步,并且只需要同步数据库abc。
打开配置文件:
vi /usr/local/Mysql/var/my.cnf

找到一下信息:
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id        = 1    //1为master,2为salve

添加两行:
sql-bin-update-same     //同步形式
binlog-do-db     = abc  //要同步的数据库

重启192.168.0.1的Mysql服务器:
/usr/local/Mysql/bin/Mysqladmin shutdown
/usr/local/Mysql/bin/Mysqld_safe --user=Mysql &


3. 配置Slave服务器

我们的slave服务器主要是主动去master服务器同步数据回来,我们编辑配置文件:
vi /usr/local/Mysql/var/my.cnf

找到下面类似的信息:
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id        = 1

把上面的server-id修改为2,同时添加一些信息:
server-id                   = 2                        //本Mysql是slave服务器
master-host             = 192.168.0.1    //master服务器的IP
master-user             = root                  //连接master服务器的用户
master-password   = ""                        //连接master服务器的密码
master-port              = 3306                //连接端口
master-connect-retry    = 10              //重试次数
replicate-do-db        = abc                  //要同步的数据库
log-slave-updates                              //同步的形式

重启192.168.0.2的Mysql服务器:
/usr/local/Mysql/bin/Mysqladmin shutdown
/usr/local/Mysql/bin/Mysqld_safe --user=Mysql &


4. 测试安装


首先查看一下slave的主机日志:
cat /usr/local/Mysql/var/xxxxx_err (xxx是主机名)

检查是否连接正常, 看到类似这样的信息就成功了

051031 11:42:40  Mysqld started
051031 11:42:41  InnoDB: Started; log sequence number 0 43634
/usr/local/Mysql/libexec/Mysqld: ready for connections.
Version: "4.1.15-log"  socket: "/tmp/Mysql.sock"  port: 3306  Source distribution
051031 11:42:41 [Note] Slave SQL thread initialized, starting replication in log "FIRST" at position 0, relay log "./new4-relay-bin.000001" position: 4
051031 11:43:21 [Note] Slave I/O thread: connected to master "root@192.168.0.1:3306",  replication started in log "FIRST" at position 4

在Master查看信息

/usr/local/Mysql/bin/Mysql -u root

查看master状态:
Mysql> show master status;

查看Master下Mysql进程信息:
Mysql> show processlist;


在slave上查看信息:

/usr/local/Mysql/bin/Mysql -u root

查看slave状态:
Mysql> show slave status;

查看slave下Mysql进程信息:
Mysql> show processlist;

你再在master的abc库里建立表结构并且插入数据,然后检查slave有没有同步这些数据,就能够检查出是否设置成功。

 

可能出现的问题如下

1.show master status 时没有数据显示
确保my.cnf
log-bin=mysql-bin

2.'Could not find first log file name in binary log index file'的解决办法
数据库主从出错:
Slave_IO_Running: No 一方面原因是因为网络通信的问题也有可能是日志读取错误的问题。以下是日志出错问题的解决方案:

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in 
binary log index file'

解决办法:
从机器停止slave
mysql> slave stop;

到master机器登陆mysql:
记录master的bin的位置,例如:mysql> show mster status;
+-------------------+----------+--------------+-------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB 
|
+-------------------+----------+--------------+-------------------------------------------+
| mysqld-bin.000010 | 106 | | information_schema,mysql |
+-------------------+----------+--------------+-------------------------------------------+
日志为mysqld-bin.000010

刷新日志:mysql> flush logs;
因为刷新日志file的位置会+1,即File变成为:mysqld-bin.000011

马上到slave执行
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysqld-bin.000011',MASTER_LOG_POS=106;
mysql> slave start;
mysql> show slave status\G;

更新时间:03/11/2014
贴吧图片
0

分为同步集群和异步集群。

 

同步集群(mysql cluster)

结构:(data + sql + mgm节点)

特点:

1) 内存级别的,对硬件要求较低,但是对内存要求较大。换算比例为:1:1.1;

2) 数据同时放在几台服务器上,冗余较好;

3) 速度一般;

4) 建表需要声明为engine=ndbcluster

5) 扩展性强;

6) 可以实现高可用性和负载均衡,实现对大型应用的支持;

7) 必须是特定的mysql版本,如:已经编译好的max版本;

8) 配置和管理方便,不会丢失数据;

 

 

 

 

 

异步集群(mysql replication)

结构:(master + slave)

特点:

1) 主从数据库异步数据;

2) 数据放在几台服务器上,冗余一般;

3) 速度较快;

4) 扩展性差;

5) 无法实现高可用性和负载均衡(只能在程序级别实现读写分离,减轻对主数据库的压力);

6) 配置和管理较差,可能会丢失数据;

更新时间:03/11/2014
贴吧图片
0

1.1 系统说明
采用三台linux服务器,均采用centos6.2版本,最小化安装系统。
1.2 软件说明
数据库管理节点,数据库节点均采用:
mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
1.3 拓扑结构说明
mysql集群有如下三层:
应用程序层:负责与mysql服务器通信的各种应用程序。
Mysql服务器层:处理SQL命令,并与NDB存储引擎通信和Mysql服务器。

NDB集群组件层:NDB集群组件有时也称数据节点,负责处理查询,然后将结果返回给mysql服务器。拓扑结构图如下所示:

 
mysql-cluster:192.168.254.200
NDB节点:IP地址:192.168.254.221
NDB节点:IP地址:192.168.254.222
SQL节点:IP地址:192.168.254.221
SQL节点:IP地址:192.168.254.222
第2章  Mysql管理节点安装
2.1 依赖包安装
yum install wget gcc gcc-c++ make cmake ncurses-devel libtool zilib-devel –y
注:此处cmake是mysql 5.5之后版本所必需的,5.5之后的版本将cmake取代configure;
2.2 创建mysql用户
useradd -s /sbin/nologin -M mysql
2.3 编译安装mysql管理节点
tra xvf mysql-cluster-gpl-7.2.8.tar.gz
cd mysql-cluster-gpl-7.2.8
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306


make && make install


2.4 修改配置文件
mkdir –p /data/mysql-cluster/ 
vi /data/mysql-cluster/config.ini
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M      
[ndb_mgmd]
Id=1
Hostname=192.168.254.200           
datadir=/data/mysql/
[ndbd]
Id=2
Hostname=192.168.254.221     
datadir=/data/mysql/


[ndbd]
Id=3
Hostname=192.168.254.222
datadir=/data/mysql/
[MYSQLD]
[MYSQLD]
2.5 启动管理节点
/usr/local/mysql/bin/ndb_mgmd -f /data/mysql-cluster/config.ini
如果启动成功则会显示:
MySQL Cluster Management Server mysql-5.5.27 ndb-7.2.8
 
第3章  Mysql运行节点安装
3.1 安装说明
Mysql节点安装过程请参考管理节点安装;
3.2 配置文件修改
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
3.3 初始化mysql
bash scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
3.4 启动mysql节点服务
/usr/local/mysql/bin/ndbd –initial
/etc/init.d/mysqld start


第4章  管理、测试说明
4.1 管理节点状态
进入管理节点工作台
/usr/local/mysql/bin/ndb_mgmd
运行show 显示当前状态
 
即表明,集群运行正常。
4.2 Mysql节点状态
启动ndbd服务即会产生如下进程;
 
4.3 测试数据同步
221(master)上执行如下操作:
 
然后登录222mysql,查看状态:
 
同样在222上执行以下操作:
 
然后在221上查看同步结果:
 
以上结果即表明:集群运行成功,可以保证数据库主-辅同步。


然后将222的网络服务断掉,查看管理节点;
 
启动222网络服务,运行/usr/local/mysql/bin/ndbd –initial;
 
然后查看管理节点服务;
 
在断掉一个服务的情况下仍可继续使用mysql服务。
4.4 节点管理
如果修改过config.ini文件,则执行下面的语句使得配置文件生效;/usr/local/mysql/bin/ndb_mgmd -f /data/mysql-cluster/config.ini  --reload
滚动重启旧的数据存储节点服务(滚动重启,不能所有节点同时重启,如果同时停止,数据库前端查询就会出现错误);
ndb_mgm> “id” (restart;stop;start)
重启,停止,启动,”id”的节点服务。

更新时间:03/11/2014
贴吧图片
0 1

用于参加竞赛的项目在新建时必须选择“公开”,否则该项目将不会显示于竞赛的“参与项目”中,若用户不想其他人看到本项目的源码,新建项目时可以选择“隐藏代码库”;若用户在新建项目时未公开项目,则可以在本项目的“配置”项中重新将该项目设为“公开“

更新时间:03/11/2014
贴吧图片
2

http://forge.trustie.net/project/course?project_type=1

 

这个页面在Google Chrome上显示不正常(显示器分辨率1600x900)。字体重叠了,请尽快修复。具体现场看附件。

translation missing: en.field_teacher_name:

translation missing: en.label_duration_time:

translation missing: en.label_course_brief_introduction:

NUDT第五届信息安全竞赛新锐级培训课程。请参加竞赛的同学加入此课程。

最后回复:王林春
03/11/2014
更新时间:03/11/2014
贴吧图片
3

我上的是分布计算环境课程,主讲教师是史殿习,我是第二教师。

但是我不能在课程中发布作业。

最后回复:王林春
03/10/2014
更新时间:03/10/2014
贴吧图片
2

我不清楚是我弄错了,还是系统的小bug.请开发小组关注。

最后回复:尹刚
03/10/2014
更新时间:03/10/2014
贴吧图片
1

使用浏览器里的WebGL技术逼真模拟水池、水、球、光影的互动变化效果。本演示需要你的电脑有一个相当不错的显卡和最新的显卡驱动。互动效果有:点击水面激起波澜,拖拽页面来旋转视角,使用G键来翻转重力,等等.

http://www.webhek.com/misc/webgl-water/

最后回复:尹刚
03/03/2014
更新时间:03/04/2014
贴吧图片
1
他们跟我说是课程平台哦
最后回复:Anonymous
02/27/2014
更新时间:02/27/2014
贴吧图片
0

 Nginx的优点

部署nginx最关键的好处就是能够高性能高效的处理高并发。同时,还有更多有意思的好处。

最近几年,web架构拥抱解耦的理念并且将应用层设施从web服务器中分离。虽然现在仅仅是将原先基于LAMP(Linux, Apache, MySQL, PHP, Python or Perl)所构建的网站,变为基于LEMP(E表示Engine x)的。但是,越来越多的实践是将web服务器推入基础设施的边缘,并且用不同的方法整合这些相同或更新的应用和数据库工具集。

Nginx很适合做这些工作。他提供了必要的关键功能用于方便将下列功能从应用层剥离到更高效的边缘web服务器层:并发、长连接处理、SSL,静态内容、压缩和缓存、连接和请求限速,以及HTTP媒体流等。Nginx同时也允许直接整合memcached、Redis或者其他的NoSQL解决方案,增强为处理大规模并发用户的性能。

随着现代编程语言和开发包广泛使用,越来越多的公司改变了应用开发和部署的方式。Nginx已经成为这些改变范例之中的最重要的部件之一,并且已经帮助许多公司在预算内快速启动和开发他们的web服务。

Nginx开发始于2002年,2004年基于2-clause BSD授权正式对外发布。自发布起,Nginx用户就在不断增长,并且贡献提议,提交bug报告、建议和评测报告,这极大的帮助和促进了整个社区的发展。

Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。

谈谈关于Windows版本nginx。当nignx在Windows环境下工作时,Windows版本的nginx更像是概念验证版本,而不是全功能移植。这是由于目前nginx和Windows内核架构之间交互的某些限制导致。Windows版本ngnix已知的问题包括:低并发连接数、性能降低、不支持缓存和带宽策略。未来Windows版本的nginx的功能会更接近主流版本。

 Nginx架构综览

传统基于进程或线程的模型使用单独的进程或线程处理并发连接,因而会阻塞于网络或I/O操作。根据不同的应用,就内存和CPU而言,这是非常低效的。派生进程或线程需要准备新的运行环境,包括在内存上分配堆和栈、生成一个新的运行上下文。创建这些东西还需要额外的CPU时间,而且过度的上下文切换引起的线程抖动最终会导致性能低下。所有这些复杂性在如Apache web服务器的老架构上一览无遗。在提供丰富的通用应用功能和优化服务器资源使用之间需要做一个权衡。

最早的时候,nginx希望为动态增长的网站获得更好的性能,并且密集高效的使用服务器资源,所以其使用了另外一个模型。受不断发展的在不同操作系统上开发基于事件模型的技术驱动,最终一个模块化,事件驱动,异步,单线程,非阻塞架构成为nginx代码的基础。

Nginx大量使用多路复用和事件通知,并且给不同的进程分配不同的任务。数量有限的工作进程(Worker)使用高效的单线程循环处理连接。每个worker进程每秒可以处理数千个并发连接、请求。

代码结构

Nginx worker的代码包含核心和功能模块。核心负责维护一个紧凑的事件处理循环,并且在请求处理的每个阶段执行对应的模块代码段。模块完成了大部分展现和应用层功能。包括从网络和存储设备读取、写入,转换内容,进行输出过滤,SSI(server-side include)处理,或者如果启用代理则转发请求给后端服务器。

nginx模块化的架构允许开发者扩展web服务器的功能,而不需要修改nginx核心。Nginx模块可分为:核心、事件模块,阶段处理器,协议、变量处理器,过滤器,上游和负载均衡器等。目前,nginx不支持动态加载模块,即模块代码是和nginx核心代码一起编译的。模块动态加载和ABI已经计划在将来的某个版本开发。更多关于不同模块角色的详细信息可在14.4章找到。

Nginx在Linux、Solaris和BSD系统上使用kqueue、epoll和event ports等技术,通过事件通知机制来处理网络连接和内容获取,包括接受、处理和管理连接,并且大大增强了磁盘IO性能。目的在于尽可能的提供操作系统建议的手段,用于从网络进出流量,磁盘操作,套接字读取和写入,超时等事件中及时异步地获取反馈。Nginx为每个基于Unix的操作系统大量优化了这些多路复用和高级I/O操作的方法。

图14.1展示了nginx架构的高层设计。

nginx-architecture.png图 14.1 nginx架构图

工作进程模型

前面提到过,nginx不为每个连接派生进程或线程,而是由worker进程通过监听共享套接字接受新请求,并且使用高效的循环来处理数千个连接。Nginx不使用仲裁器或分发器来分发连接,这个工作由操作系统内核机制完成。监听套接字在启动时就完成初始化,worker进程通过这些套接字接受、读取请求和输出响应。

事件处理循环是nginx worker代码中最复杂的部分,它包含复杂的内部调用,并且严重依赖异步任务处理的思想。异步操作通过模块化、事件通知、大量回调函数以及微调定时器等实现。总的来说,基本原则就是尽可能做到非阻塞。Nginx worker进程唯一会被阻塞的情形是磁盘性能不足。

由于nginx不为每个连接派生进程或线程,所以内存使用在大多数情况下是很节约并且高效的。同时由于不用频繁的生成和销毁进程或线程,所以nginx也很节省CPU时间。Nginx所做的就是检查网络和存储的状态,初始化新连接并添加到主循环,异步处理直到请求结束才从主循环中释放并删除。兼具精心设计的系统调用和诸如内存池等支持接口的精确实现,nginx在极端负载的情况下通常能做到中低CPU使用率。

nginx派生多个worker进程处理连接,所以能够很好的利用多核CPU。通常一个单独的worker进程使用一个处理器核,这样能完全利用多核体系结构,并且避免线程抖动和锁。在一个单线程的worker进程内部不存在资源匮乏,并且资源控制机制是隔离的。这个模型也允许在物理存储设备之间进行扩展,提高磁盘利用率以避免磁盘I/O导致的阻塞。将工作负载分布到多个worker进程上最终能使服务器资源被更高效的利用。

针对某些磁盘使用和CPU负载的模式,nginx worker进程数应该进行调整。这里的规则比较基本,系统管理员应根据负载多尝试几种配置。通常推荐:如果负载模式是CPU密集型,例如处理大量TCP/IP协议,使用SSL,或者压缩数据等,nginx worker进程应该和CPU核心数相匹配;如果是磁盘密集型,例如从存储中提供多种内容服务,或者是大量的代理服务,worker的进程数应该是1.5到2倍的CPU核心数。一些工程师基于独立存储单元的数目来决定worker进程数,虽然这个方法的有效性取决于磁盘存储配置的类型,。

Nginx开发者在下个版本中要解决的一个主要问题是怎么避免磁盘I/O引起的阻塞。目前,如果没有足够的存储性能为一个worker进程的磁盘操作提供服务,这个进程就会阻塞在磁盘读写操作上。一些机制和配置指令用于缓解这个磁盘I/O阻塞的场景,最显著的是sendfile和AIO指令,这通常可以降低许多磁盘利用率。应该根据数据集(data set),可用内存数,以及底层存储架构等来规划安装nginx。

当前的worker模型的另一个问题是对嵌入脚本的支持有限。举例来说,标准的nginx发布版只支持Perl作为嵌入脚本语言。这个原因很简单:嵌入脚本很可能会在任何操作上阻塞或者异常退出,这两个行为都会导致worker进程挂住而同时影响数千个连接。将脚本更简单,更可靠地嵌入nginx,并且更适合广泛应用的工作已经列入计划。

更新时间:02/22/2014
贴吧图片
0

充实而充满挑战的蛇年即将过去,马年我们将翻开新的篇章,祝大家身体健康、学业有成、马到成功!

感谢Trustie开发小组,感谢Trustie的所有用户,希望Trustie能够为大家带来更多的快乐

 

更新时间:01/27/2014
贴吧图像
我在问吧
回答
发帖

问吧

新建贴吧
问题和建议
还能输入50个字符 Submit

加入QQ群

关注微信APP


×