For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
微服务技术的发展与应用现在已经逐渐覆盖到了许多的行业领域,而本文我们就通过案例分析来简单了解一下,微服务技术应用需要掌握哪些知识。
一组小的服务一组“小”的服务,这个小其实是相对而言的,原来的单体服务都是把所有的业务大而全的打包在一个单体结构中,而微服务将这些单体结构进行拆分,形成一个一个独立的服务,这个小是相对原来大而全的结构而言。很多同学会纠结“小”这个点,那么要多小的程度才为之“小”,因为这个小并没有特别和明确的规定,所有这也引申出来现在很多DDD领域驱动设计来指引微服务的拆分,基本上一个微服务能让一个开发人员能独立的理解,就可以称为一个微服务,具体有多少行代码不是关键。
独立的进程微服务是运行在独立的进程当中,例如Java程序部署在Tomcat的容器中,也可以将Tomcat部署在Docker容器中,因为容器本身也是一种进程,所以微服务可以以进程的方式去扩展。使用容器进行部署,使得定义,部署与运行一个微服务变的更加简单,由于微服务粒度比传统的SOA服务更小,它对Web应用服务器的要求也变成更加的轻量级。
轻量级的通讯微服务主张使用轻量级去构建通讯机制,我认为是使用基于HTTP协议的API资源,一般是RESTfulAPI。不过现在正式投入生产的应用中,微服务之间的通讯绝不止于RESTful,虽然HTTP协议相对来说较为简单,但它在传输的性能和可靠性也存在比较大的局限,特别是JSON在序列化也较弱。所以在微服务内部通讯会使用更多的RPC框架,例如Netty,gRPC,阿里的dubbo协议等等,甚至还可以使用消息中间件来完成通讯传输。
基于业务能力构建文中强调了服务的规划和划分,是基于业务进行构建,这一点非常的重要,是业务而非技术驱动微服务的设计,这一个观点从而也推动了领域驱动设计(DDD)的发展,越来越多的人尝试将领域驱动设计引入微服务架构的设计中。例如:在电商的系统中,我们划分服务更多考虑的是业务,例如:用户服务,商品服务,订单服务等等。
独立部署在以往的大型独体项目中,部署和发布永远是高悬头顶的达摩克利斯之剑,某一个模块的错误都可能让整个系统崩塌。但是微服务的一个关键原则是:每一个服务都是系统的组件,均可以独立的进行部署,团队之间是不需要特别的进行协调,当我们开发和部署一个服务时,我们只需要确保测试和部署好一个服务,如果真的把它搞砸了,也不会把整个系统都搞砸。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。