<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>架构 on Yeqown</title>
    <link>https://www.yeqown.xyz/tags/%E6%9E%B6%E6%9E%84/</link>
    <description>Recent content in 架构 on Yeqown</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Tue, 17 Apr 2018 15:01:33 +0000</lastBuildDate>
    <atom:link href="https://www.yeqown.xyz/tags/%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>分布式架构入门</title>
      <link>https://www.yeqown.xyz/2018/04/17/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84%E5%85%A5%E9%97%A8/</link>
      <pubDate>Tue, 17 Apr 2018 15:01:33 +0000</pubDate>
      <guid>https://www.yeqown.xyz/2018/04/17/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84%E5%85%A5%E9%97%A8/</guid>
      <description>&lt;p&gt;在开始之前必须明确的是，分布式和集群的区别，简单的说：&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;1.分布式是一种工作方式，把一个系统的不同功能放在不同的机器上；&#xA;2.集群是一种物理形态，同一个任务放在不同的机器上；&#xA;&#xA;这样说，也并不是说这两个概念是完全不同，还互相独立，而是实际应用中相辅相成。&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;我们常说的负载均衡的背后就是集群部署，某些公司为了能扛住突然增长的流量，会采用加很多台服务器的方式来提高性能。看下图：&#xA;&lt;img src=&#34;http://xiyouqi.github.io/EAD-Documents/html/01-Platform-Architecture/images/deployment-distribute.png&#34; alt=&#34;集群部署&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;对于小公司来说，这样部署的方式在于：简单快速，成本在可接受范围。（如果愿意多花点时间进行代码重构和技术再选型或许效果会更好，当然估计要换个不懂技术的老板，然后忽悠他😊）&lt;/p&gt;&#xA;&lt;p&gt;但是也不是没有隐患，一方面，集群部署虽然能提高系统的可用性，但是如果多台机器离线，会导致其他机器压力增大，如果严重超过机器负载能力，会导致越来越多的机器离线，一旦解决不及时便会导致整个应用崩溃。其次，集群部署为了保证数据的一致性，一般多采用相同数据源，因此集群并不能无限制扩张。&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;h3 id=&#34;分布式系统的应用场景&#34;&gt;分布式系统的应用场景&lt;a class=&#34;anchor&#34; href=&#34;#%e5%88%86%e5%b8%83%e5%bc%8f%e7%b3%bb%e7%bb%9f%e7%9a%84%e5%ba%94%e7%94%a8%e5%9c%ba%e6%99%af&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;分布式主要解决的问题是提升应用的负载能力。&lt;/p&gt;&#xA;&lt;h3 id=&#34;分布式的优缺点&#34;&gt;分布式的优缺点&lt;a class=&#34;anchor&#34; href=&#34;#%e5%88%86%e5%b8%83%e5%bc%8f%e7%9a%84%e4%bc%98%e7%bc%ba%e7%82%b9&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;将一个系统的不同模块分别部署在不同的机器上。这里不得不说到微服务，微服务是把系统服务拆分成为独立的服务来部署（这里说的&lt;code&gt;独立&lt;/code&gt;，是数据独立和部署独立，不依赖于其他服务）。&lt;/p&gt;&#xA;&lt;p&gt;从本质上来说微服务也是分布式部署的一种。只是相比一般分布式应用，拆分更加彻底。&lt;/p&gt;&#xA;&lt;h4 id=&#34;优点&#34;&gt;优点&lt;a class=&#34;anchor&#34; href=&#34;#%e4%bc%98%e7%82%b9&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;pre&gt;&lt;code&gt;分成多个模块，并使用接口通信，低耦合；&#xA;团队协作开发，事先约定好接口，独立开发，效率更高；&#xA;部署更加灵活；&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h4 id=&#34;缺点&#34;&gt;缺点&lt;a class=&#34;anchor&#34; href=&#34;#%e7%bc%ba%e7%82%b9&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;pre&gt;&lt;code&gt;依赖网络通信，增加额外开发通信接口。&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;总结&#34;&gt;总结&lt;a class=&#34;anchor&#34; href=&#34;#%e6%80%bb%e7%bb%93&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;以上说的都是垃圾，只希望打开思路。某邓同志说：能抗住压力的应用才是好应用。&lt;/p&gt;&#xA;&lt;h3 id=&#34;参考资料&#34;&gt;参考资料&lt;a class=&#34;anchor&#34; href=&#34;#%e5%8f%82%e8%80%83%e8%b5%84%e6%96%99&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://blog.csdn.net/boonya/article/details/55046568&#34;&gt;https://blog.csdn.net/boonya/article/details/55046568&lt;/a&gt;&#xA;&lt;a href=&#34;https://www.jianshu.com/p/39c1e4ec0d63&#34;&gt;https://www.jianshu.com/p/39c1e4ec0d63&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
