我进入基于docker的微服务架构,我有3个微服务,它们共同创建了一个产品,例如"CRM系统".
现在我希望我的客户能够随时升级他的产品.我有3个不同版本的微服务,客户应该看到哪一个?我想产品版本应该独立于微服务,因为复制一个微服务版本会让我比没有版本更麻烦.
那么有什么模式,想法来处理这种情况吗?
我唯一想到的是拥有另一个存储库,只要其中一个微服务生成生产就绪包,就会对其进行版本控制.但是,我现在有一个版本,我的产品所有者(PO)都不知道.
我总是以SOA类型的方式开发代码.今年我一直在努力做更多的DDD,但我一直觉得我没有得到它.在工作中,我们的系统是负载平衡的,并且设计为不具有状态.该架构是:
网站
===物理层==
主要服务
==物理层==
服务器1 /服务2 /服务3 /服务4
只有服务器1,服务2,服务3和服务4可以与数据库通信,主服务根据订购的产品调用正确的服务.每个物理层也是负载平衡的.
现在,当我开发一项新服务时,我尝试在该服务中考虑DDD,即使它并不真正感觉它适合.
我使用良好的DDD原则,如实体,值类型,存储库,聚合,工厂等.
我甚至尝试使用ORM,但他们似乎并不适合无状态架构.我知道有很多方法,例如使用IStatelessSession而不是NHibernate的ISession.但是,ORM只是觉得它们不适合无状态架构.
我注意到我真的只使用了DDD教给我的一些概念和模式,但整体架构仍然是SOA.
我开始认为DDD不适合大型系统,但我认为一些模式和概念确实适合大型系统.
就像我说的,也许我只是没有抓住DDD或者我可能不在分析我的设计?也许通过使用DDD告诉我的模式和概念我使用DDD?不确定这篇文章是否真的有问题,但在尝试找出DDD在整个系统中的适用位置以及它的真实可扩展性时,我有更多的想法.事实是,我认为我甚至不知道DDD是什么?
我读过这个主题,但仍然没有完整的图片,我真的很感谢你对下一个问题的回答:
我看过一篇文章" 微服务 "由Martin Fowler,并发现它很难理解智能端点 S和哑管道.请解释这些条款,欢迎提供实例.
有没有人对使用微软的WCF构建的Web服务有多好,可以扩展到大量用户?
我想到的水平是1000多个客户端用户连接到一组WCF服务的区域,这些服务为我们的应用程序提供业务逻辑,并且这些与数据库通信 - 类似于传统的3层架构.
是否有任何特定陷阱降低了性能,或者是否已经实现了这种可伸缩性的设计经验?
无论如何,如果主端点死亡,是否有配置故障转移端点的WCF服务?有点像能够在SQL集群中指定故障转移服务器.
具体来说,我使用TCP/IP绑定来提高速度,但是在极少数情况下机器不可用我想将流量重定向到故障转移服务器.丢失消息并不是太麻烦.我只是不想编写代码来处理重新路由.
想象一下,我们有2项服务:产品和订单.基于我对SOA的理解,我知道每个服务都可以拥有自己的数据存储(一个单独的数据库,或同一个数据库中的一组表).但是,不允许任何服务直接触摸另一个服务的数据存储.
现在,假设我们在产品和订单服务中独立存储了产品和订单数据.在订单服务中,我们可以通过其ID识别产品.
我的问题是:使用这种架构,如何在"同一"页面上显示订单列表和产品详细信息?
我的理解是我应该从OrderService获取OrderItems列表.每个OrderItem都有一个ProductID.现在,如果我单独调用ProductService来检索有关每个产品的详细信息,那将是非常低效的.
你会如何解决这个问题?
干杯,莫什
我正在构建一个应用程序,其中需求似乎是标准问题(至少对我来说)...我有一个基于asp .net mvc的Web.UI和来自iphone,andriod和blackberry的客户端.
因此,明智的做法是将我的所有业务逻辑移动到可以通过http访问的服务层.此服务层必须接受具有用户上下文(身份)的请求,并且以一种不错的方式执行授权,无论哪种类型的客户端与之通信(我希望?).
在一年多的时间里,我做了一个3个月的演出,在混合的内部部署和云架构中使用了WIF(Windows Identity Foundation).我喜欢它.引起共鸣的三件事是(1)外化认证而不关心如何完成,(2)从业务逻辑中删除授权逻辑,(3)基于声明的授权.
在过去的一年里,我听说并关注Rest Services的所有"酷炫的嬉皮士做事方式".所以我虽然很棒,但试试吧.在我开始玩游戏并获得编码之后,我开始变得非常困惑(并且随后在没有编写另一行c#的情况下阅读了大约10个小时).我仍然对所有SOAP vs REST,WS.*vs Http,SAML vs SWT babble感到困惑.我真的不希望这个线程是关于那个,因为有足够的说法在stackoverflow,但我觉得我有两个阵营之间的选择,当它不是真的感觉我想要一个或另一个但每个位?
对我来说,我上面提到的关于WIF的3点似乎并不像应该与WS绑定的概念.*?但是我感觉到他们,或者至少WIF现在是如何产生的,没有一些专家调整(例如我几天前才发现这篇文章 - http://zamd.net/2011/ 02/08/using-simple-web-token-swt-with-wif /).
我不太了解的其他领域是我的客户端(iphone,andriod,blackberry)能够玩WIF,是否是向他们抛出SAML令牌的STS,它们的行为就像浏览器一样并传回去在标题中就像任何其他客户端一样?是的,我必须要找出来,但如果这是WIF的交易破坏者,我发布后直接发现,那么至少我可以把注意力从它上面移开.
最后还要再加一点.我真的不想考虑这些.我想使用第三方身份验证/身份提供商 - http://www.janrain.com/products/engage - 我认为它使用OpenID.这可以适用于WIF还是我只是从OpenID创建一个新的SAML令牌并从那时起使用WIF.
我想在这个喋喋不休的结尾,我想回到我开始的地方,因为越来越复杂,我问的问题越多,我考虑的选择就越多.
是否有一个服务层(在WCF上)与不同的非.NET客户端进行通信,这些客户端需要身份上下文和授权如此奇怪?如果你已经建立了这样的东西,你是如何接近它的?
soa ×10
architecture ×5
.net ×3
wcf ×3
c# ×2
asp.net-mvc ×1
distributed ×1
docker ×1
esb ×1
messaging ×1
scalability ×1
service ×1
wif ×1