十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
简单的说就是将一个整体的应用按照一定的规则拆分成一个个独立的应用,这些独立的应用后面又组合成了一个整体的应用。
比如说一个博客系统,我可能包含了发表文章,用户登录,用户评论等功能,如果是一个单一的应用这些功能都会包含在这个应用里面。
而如果是微服架构 这些功能可能会包含在 文章服务,用户服务,评论服务里面。
这是我简单写的一个微服例子
整体实现了发文章,浏览文章。用户登录,用户评论的功能。
分别有 用户服务,文章服务,评论服务,文件服务组成。
服务的编排
我的系统需要怎么要划分我的服务,一个是按照业务功能划分,每个服务只负责单一的业务。
服务划分的太细导致服务偏多,对于维护和开发都会增加不少难度,划分的太粗,又可能达不到当初使用微服的预想。所以采用微服架构前服务的划分要详细考虑。
分布式事物
由于系统划分成为了 一个个独立的系统,个个系统之间的采用 REST API方式,本地事物无法使用与夸多个系统的事物。所以分布式事物是微服需要解决的重中之重。一般微服的事物多采用可靠事件处理。后面出再讨论。
夸表查询
不同的服务,数据库是不共享的,都有独立的数据库,所以 查询的时候不能 采用单体架构 的 join 等语句与跨表查询,查询方面增加了不少难度。
持续集成与部署
微服的持续集成相对于单体应用要复杂的多,应为你有更多的服务需要部署,部署的时候你需要更多的硬件设备。所以微服常常会与docker一起使用,方便集成与服务扩容。
测试
微服的测试,由于服务的划分,不仅需要对单独的服务进行测试还需要对整体的功能进行测试。对测试也提高了一个难度。
spring cloud 集成了微服常用的组件,包含了服务的注册与发现,服务调用,负载均衡,熔断,监控,配置管理,服务网关等。配合spring 庞大的技术站,spring cloud也渐渐成为了 微服的代名词。
主要的一些组件:
针对于上面所涉及到的知识点我总结出了有1到5年开发经验的程序员在面试中涉及到的绝大部分架构面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习,也可以关注我一下以后会有更多干货分享。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。