SOA与微服务

写一点自己学习之后的理解,主要是为了加深理解以及作为日后回想的依据;
我并没有实际工业生产经验,写的不对的地方请多指教。

发展历史

从单机系统到分布式

应用程序开始时规模不大,单机就可以支持;但随着用户需求的不断增加,单一台服务器已经无法支撑;于是将一个大型的系统
拆分到多个服务器上,于是产生了分布式。

SOA

SOA是分布式的一种表现形式,全称是面向服务的架构(Service-oriented architecture)
主要解决的问题是,拆分后多个服务之间的复杂依赖关系,试想一种最坏的情况:每个服务要被其他所有服务依赖,每个服务也要
依赖其他所有服务,这样所有都强耦合在了一起,这该是多么糟糕。

SOA的实现方式是加入了一个帮观者,一个第三方——数据总线,所有的服务不再直接依赖服务,而是依赖于数据总线调用者需要调用某服务时,向数据总线发出请求,总线接受请求并转发到对应的服务去;而调用者不需要知道被调用服务的具体是怎样、在哪里,只需要想总线请求。
通过这样的方式便可以实现服务与服务之间的解藕
通过定义服务的接口规范,服务与服务的具体实现便可以完全解藕,每个服务只需遵从接口规范就可以实现依赖

微服务

微服务是在SOA出现之后才发展起来的,微服务的目的也是为将服务分割放到多个服务器上

微服务的实现方法是通过将服务注册到服务注册中心,需要调用服务时通过服务注册中心获取服务

SOA与微服务的区别

  • 实现技术上

    • SOA可以通过Dubbo等框架实现
    • 微服务使用SpirngCloud等框架
  • 传输协议及消息载体

    • Dubbo用的rpc (远程过程调用)——服务消费者(comsumer)将要调用的方法及参数序列化后发送给服务提供者(provider),provider将消息反序列化,provider运行之后将结果序列化后再发回给consumer,consumer再反序列化得到想要的结果
    • 微服务采用http协议——使用restful API进行传输

写到这其实有点迷惑,因为实现的技术以及采用的协议并不应该作为区分SOA和微服务的依据。


  • 真正的区别:服务的划分
    • SOA没有将服务完全划分,数据库没有分开
    • 微服务每个服务都是可以独立运行的小系统

当然 分库之后就要面临分布式事物的问题,传统的单机数据库可以达到ACID的要求,而在分布式的情况下适用CAP理论以及BASE理论。

【复现】并_离网风光互补制氢合成氨系统容量-调度优化分析(Python代码实现)内容概要:本文围绕“并_离网风光互补制氢合成氨系统容量-调度优化分析”的主题,提供了基于Python代码实现的技术研究复现方法。通过构建风能、太阳能互补的可再生能源系统模型,结合电解水制氢合成氨工艺流程,对系统的容量配置运行调度进行联合优化分析。利用优化算法求解系统在不同运行模式下的最优容量配比和调度策略,兼顾经济性、能效性和稳定性,适用于并网离网两种场景。文中强调通过代码实践完成系统建模、约束设定、目标函数设计及求解过程,帮助读者掌握综合能源系统优化的核心方法。; 适合人群:具备一定Python编程基础和能源系统背景的研究生、科研人员及工程技术人员,尤其适合从事可再生能源、氢能、综合能源系统优化等相关领域的从业者;; 使用场景及目标:①用于教学科研中对风光制氢合成氨系统的建模优化训练;②支撑实际项目中对多能互补系统容量规划调度策略的设计验证;③帮助理解优化算法在能源系统中的应用逻辑实现路径;; 阅读建议:建议读者结合文中提供的Python代码进行逐模块调试运行,配合文档说明深入理解模型构建细节,重点关注目标函数设计、约束条件设置及求解器调用方式,同时可对比Matlab版本实现以拓宽工具应用视野。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值