首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

讨论软件架构的30个共同原则

WSO2,我已经完成了八年多的架构评审。WSO2拥有广泛的产品组合,包括众所周知的WSO2 ESB,WSO2 API Manager和WSO2 SP。...服务器设计和并发 原则13:了解服务器的工作方式,从硬件到操作系统,再到编程语言。优化IO调用的数量是迈向最佳架构的第一指导。 原则14:了解Amdhal关于同步的定律。...原则17:除非您在客户端和服务器中都控制代码,否则完全一旦消息传递,无论失败,都很难。尝试将您的系统设计得更少(使用原则18)。知道大多数承诺一次交付的系统会在某个地方偷工减料。...调试时,无提示配置错误是许多丢失时间的来源。 难题 原则29:梦想新语言很容易,但要做到正确是非常困难的。除非团队可以花费至少十个人年,否则尽量不要这样做。...原则30:可组合的拖放UI很难,除非团队准备投入10个人年,否则不要启动。 最后,让我谈谈我随着时间的推移改变主意的事情。

94630

如何成为一名优秀的架构师?

WSO2,我参与架构评审的时间已长达八年之久。WSO2 的产品非常丰富,比如 WSO2 ESB 、WSO2 API Manager 以及 WSO2 SP 都人尽皆知。...但是,从长远来看,我们会组建一个团队,让他们自己不断思考、改善架构,并从他们的错误中来提升自己。 当我们专注于团队时,他们自然会随着时间的推移而变得更好。...服务器设计与并发 原则13:从硬件、操作系统到你使用的编程语言等多方面深入了解服务器的工作原理。优化 IO 操作的效率是一个良好架构的首要任务。 原则14:遵循 Amdhal 的同步定律。...原则17:除非你能够掌控客户端和服务器的所有代码,否则消息传递失败的情况在所难免。尽量减少你的系统依赖的因素(例如使用原则18)。 原则18:尽可能实施幂等操作。...如果你不够投入和细心,你只指出错误,但是不道明错误原因,那么你的意见可能会让团队感到困惑。

1.2K60

WSO2 ESB(4)

WSO2的企业服务总线(ESB)的用户指南 用户指南介绍了如何配置WSO2 ESB使用基于Web的管理控制台。...WSO2的管理控制台已经过测试的Mozilla Firefox2.0,3.0和Internet Explorer 6.0,7.0的Web浏览器,分辨率为1024x768 1,WSO2 ESB安装和运行...将出现一条消息,提示您确认删除。 注册表浏览器 - 单击此图标可以查看注册表浏览器。您可以选择从本地注册表中的元素,以及综合注册表,都登记在浏览器中显示。...它可以被指定为一个端点地址,WSDL端点,比集团失败,或负载平衡组。 端点可以添加,编辑和删除。您还可以启用地址和WSDL端点的统计信息。 请参阅端点上的细节文档。...监测WSO2 ESB的一个详细的指南可以在这里找到。

4.2K80

成为一个优秀架构师,你必须了解的 30 条设计原则

他是 Apache 的核心成员,拥有 15 年分布式系统编程经验,设计了 Apache Axis2 以及 WSO2 流处理器。 在 WSO2,我参与架构评审的时间已长达八年之久。...WSO2 的产品非常丰富,比如 WSO2 ESB 、WSO2 API Manager 以及 WSO2 SP 都人尽皆知。在过去八年中,我们对许多产品和功能进行了讨论、设计、改进和重新设计。...原则 17:除非你能够掌控客户端和服务器的所有代码,否则消息传递失败的情况在所难免。尽量减少你的系统依赖的因素(例如使用原则 18 )。 原则 18:尽可能实施幂等操作。...在调试过程中,无提示的配置错误会浪费我们很多调试时间。 难点 原则 29:尝试新语言很容易,但要正确使用却很难。除非公司愿意组建一个十人团队并花一年的时间来学习,否则尽量不要这样做。...如果你不够投入和细心,你只指出错误,但是不道明错误原因,那么你的意见可能会让团队感到困惑。避免这种情况的一种方法是拥有一套普遍接受的原则,这些原则是讨论架构时遵循的基本点,也是初学者学习架构的好资源。

1.1K10

优秀架构师必须了解的6大方面30条设计原则

WSO2,我参与架构评审的时间已长达八年之久。WSO2 的产品非常丰富,比如 WSO2 ESB 、WSO2 API Manager 以及 WSO2 SP 都人尽皆知。...但是,从长远来看,我们会组建一个团队,让他们自己不断思考、改善架构,并从他们的错误中来提升自己。 当我们专注于团队时,他们自然会随着时间的推移而变得更好。架构团队的首要任务是:尽可能保证架构容易执行。...原则17:除非你能够掌控客户端和服务器的所有代码,否则消息传递失败的情况在所难免。尽量减少你的系统依赖的因素(例如使用原则18)。 原则18:尽可能实施幂等操作。...在调试过程中,无提示的配置错误会浪费我们很多调式时间。 六、难点 原则29:尝试新语言很容易,但要正确使用却很难。除非公司愿意组建一个十人团队并花一年的时间来学习,否则尽量不要这样做。...如果你不够投入和细心,你只指出错误,但是不道明错误原因,那么你的意见可能会让团队感到困惑。避免这种情况的一种方法是拥有一套普遍接受的原则,这些原则是讨论架构时遵循的基本点,也是初学者学习架构的好资源。

90520

玩转企业集群运维管理系列(八):Haproxy 负载均衡集群部署实践

retries:在连接失败后重新尝试请求连接的次数,超过设置的尝试次数将认为连接失败。 timeout #设置各种请求、连接、响应的 Timeout时间,单位为秒(s)或者毫秒(m)。...数据库服务前端 frontend vip-db bind 192.168.142.201:3306 timeout client 90m default—backend db-vms-Galera #qpid...消息服务前端 froatend Vip-qpid bind192·168、142·215:5672 timeout client120s default—backend qpid-vms #dashboard...(6) Errors Req #错误的请求数量。 Conn #错误连接数量。 Resp #错误响应数量。 (7) Warnings Retr #重新尝试连接的请求数量。...如下进行多后端服务器定义, check inter 1500是检测心跳频率, rise 3表示3次检查结果正确则认为服务器可用,fall 3表示检测结果失败3次则认为服务器不可用, weight代表服务器权重

27010

常常听到的流处理是什么?

事件流处理器将为收集数据付出艰辛的努力,将其交付给每个参与者,确保它们以正确的顺序运行,收集结果,如果负载很高则进行扩展并处理失败。 其中的例子有Storm,Flink和Samza。...自2016年以来,出现了一个名为Streaming SQL的新概念。我们称之为一种语言, 使用户能够编写 sql (如查询) 来查询流式数据流 sql 语言。...想想一个永无止境的表,新的数据会随着时间的推移而出现。流就是这样一个表。流中的一个记录或一行称为事件。但是它有一个模式,其行为就像数据库行一样。...WSO2流处理器(WSO2 SP), 它可以从Kafka,HTTP请求和消息代理中获取数据,并且可以使用Streaming SQL语言查询数据流。 WSO2 SP是Apache许可下的开源代码。...只有两台商品服务器,它可以提供高可用性,并且可以处理100K + TPS吞吐量。 它可以在Kafka之上扩展到数百万TPS。 谁正在使用流处理?

1.4K20

深入解读RabbitMQ工作原理及简单使用

为什么选择RabbitMQ 现在的市面上有很多MQ可以选择,比如ActiveMQ、ZeroMQ、Appche Qpid,那问题来了为什么要选择RabbitMQ?...除了Qpid,RabbitMQ是唯一一个实现了AMQP标准的消息服务器; 可靠性,RabbitMQ的持久化支持,保证了消息的稳定性; 高并发,RabbitMQ使用了Erlang开发语言,Erlang是为电话交换机开发的语言...消息持久化 Rabbit队列和交换器有一个不可告人的秘密,就是默认情况下重启服务器会导致消息丢失,那么怎么保证Rabbit在重启的时候不丢失呢?答案就是消息持久化。...安装Erlang; 安装Rabbit Server; 进入安装目录\sbin下,使用命令“rabbitmq-plugins enable rabbitmq_management”启动网页管理插件; 重启...不然会出现Rabbit安装之后启动不了的情况,理论上卸载的顺序也是先Rabbit在Erlang。

4.5K21

持续交付:云原生应用的“十二要素”

支持服务 :将支持服务视为一种附加资源(一般通过网络进行调用) 在构建管道的组件测试中,Java 开发人员习惯用这种方式来代替数据存储和中间件,例如,使用内存数据库(例如,HSQLDB、Apache Qpid...可处置性 :通过快速启动和优雅关闭保证最大的稳定性 对于习惯于创建传统的、长期运行的 Java 应用程序的开发人员而言,这可能需要转变观念,因为大部分应用程序的配置和初始化,都是在 JVM 或者应用程序启动过程中预先加载的...容器化和无服务器应用程序,会出现新的安全攻击漏洞,必须加以关注和处理。...面向失败的设计和持续测试 云计算为开发人员提供了绝佳的机会,十年前,我们只能梦想像现在一样,点一下按钮就可以将硬件组装起来。但这种基础设施也带来了新的挑战。...松耦合的系统通常更容易测试,因为你可以更容易地隔离组件,而高内聚有助于在修复错误时,降低寻找问题原因的难度。

1.3K40

非云环境中Kubernetes的配置和运行:技术栈

一些项目已采用 Corosync 作为高可用框架,其中包括 Apache Qpid、Pacemaker 等。...同时,所有其它节点将处于非活动状态,直到该节点或该节点所附加的资源由于某种原因产生失败。...它支持实例在启动时自动配置,在数秒内将通用 Linux 镜像转换为经配置后的服务器,快速简单。 在最新 Linux 发行版中提供的 cloud-init 工具,适用于执行服务、用户和软件包的设置。...它们通常用于在服务器首次启动时的配置。 下面的 Youtube 视频给出了 cloud-init 运行情况。降低视频速度,可查看运行细节。...该方法的一大优势是,用户可在任何其他环境或新机上启动容器,而不会出现意外错误或其他配置问题。因为用户应用所需的所有内容都打包在同一容器中。通过这种方式,容器实现了可预测、可重复和不可变的管理。

69820

什么是API管理?

合理的设计和开发可以防止后续出现问题,严格的测试可以保证可靠性。部署和监控可以使API平稳运行,版本控制允许API进化,下线可以确保废弃的API正常结束。...API分析和监控工具可以提供API使用、性能和错误的实时洞察。这些工具可以帮助组织及时识别和解决问题,优化API性能,并根据数据作出决策来持续改进API。 API安全性意味着确保认证、授权和数据保护。...WSO2 API Manager: WSO2是一个完整的开源API管理解决方案,具有网关、开发者门户和分析功能。它以其灵活性和混合部署支持而闻名。...API 分析仪表板可以实时洞察 API 的使用情况、性能和错误率。这些数据有助于组织做出明智决策,优化 API,提供更好的用户体验。 开发者参与和协作功能。...无服务器 API 无服务器计算获得极大关注,这一范式转变也延伸到了 API 开发和部署。无服务器 API 消除基础设施管理的复杂性,使组织可以更专注于编写代码。

14810

微服务:API网关在API安全中的作用

日志记录 许多API开发人员对所有成功请求使用200,对所有失败使用404,对某些内部服务器错误使用500,在某些极端情况下,在详细的堆栈跟踪之上,在正文中使用200,并带有失败消息。...当堆栈跟踪以包名、类名、框架名、版本、服务器名和SQL查询的形式揭示底层设计或体系结构实现时,它可能成为恶意用户的信息泄漏。...返回一个“平衡的”错误对象是一个很好的实践,它具有正确的HTTP状态代码、最少的必需错误消息,并且在错误条件下没有堆栈跟踪。这将改进错误处理并保护API实现细节不受攻击者的攻击。...API网关可用于将后端错误消息转换为标准化消息,使所有错误消息看起来相似;这也消除了后端代码结构的暴露。...开发源码的API 网关: 以下是一些值得一看的产品: Tyk WSO2 API Manager Kong Community Edition 结论 在谈到API安全性时,我们必须明白,安全性是公司、组织

3K40

10 个令人瞩目的云原生编程语言特性

它不是那么严格,负载中有无法识别的变化也不一定会失败。Ballerina 的类型系统既可以作为描述网络数据的模式语言,也可以作为操作内存值的程序的类型系统。...要生成上述 Ballerina 代码的序列图,请下载 VSCode 插件并启动图形查看器。 7....Ballerina 编译器可以生成 Dockerfile、Docker 镜像、Kubernetes YAML 文件、无服务器函数等工件。...当出现问题时,只是方便地抛出一个异常,就会使什么东西都失控。为了实现恰当的错误处理,你必须得仔细看下程序,弄清楚可能出现错误的地方是否有错,以及控制流如何变化。...作者简介: Dakshitha Ratnayake 目前在 WSO2 担任 Ballerina 的项目经理。

1.2K10

消息队列的过去、现在和未来

很多互联网企业基于云厂商的云服务构建软件后发现,成本比之前买服务器还要高很多。采购服务器硬件只需要付费一次,而基于云服务构建需要按时间缴费。...而在某云计算机提供商购买 8 核 16G 的云服务器,每年租用的价格为 1.8 万元[59],与采购一台硬件服务器价格相当。...一方发起请求后,对方必须响应,如果不响应通信就会失败。而且同一时间程序只能响应一个 RPC,其他程序只能占线。...因为过去服务之间基于 RPC 通信,如果两个服务跨云或者跨数据中心有可能因为超时、网络故障等原因导致通信失败,而异步通信这种情况大大降低。...Website.https://qpid.apache.org RabbitMQ VS Apache Qpid.libhunt.https://www.libhunt.com/compare-rabbitmq-server-vs-qpid

1.5K20

MySQL数据库常见报错案例与错误代码说明

需要启动这台机器上的MySQL服务,如果负载太高也会产生这个错误。 解决方法:  启动这台机器的mysql服务,如果启动不成功,多数是因为你的my.ini配置的有问题,重新配置其即可。...1146:数据表不存在 1147:未定义用户对数据表的访问权限 1149:SQL 语句语法错误 1158:网络错误出现错误,请检查网络连接状况 1159:网络错误,读超时,请检查网络连接状况 1160...:网络错误出现错误,请检查网络连接状况 1161:网络错误,写超时,请检查网络连接状况 1062:字段值重复,入库失败 1169:字段值重复,更新记录失败 1177:打开数据表失败 1180:提交事务失败...2002:服务器端口不对。 2003:MySQL 服务没有启动,请启动该服务。 2008:MySQL client ran out of memory 错误指向了 MySQL 客户 mysql。...查找了一下 10055(没有缓存空间可利用) 10061: 启动这台机器上的 MySQL 服务 如服务启动失败,一定是你的 my.ini 文件出了差错, MySQL 服务不能正常启动 你删除了它后,MySQL

1.9K21

Mysql错误代码大全

1044错误:数据库用户权限不足,请联系空间商解决 1045错误:数据库服务器/数据库用户名/数据库名/数据库密码错误,请联系空间商检查帐户。...1054错误:程序文件跟数据库有冲突,请使用正确的程序文件上传上去覆盖。 1146错误:数据表缺失,请恢复备份数据. 2002错误服务器端口不对,请咨询空间商正确的端口。...2003错误:mysql服务没有启动,请启动该服务 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败...1147:未定义用户对数据表的访问权限 1149:SQL语句语法错误 1158:网络错误出现错误,请检查网络连接状况 1159:网络错误,读超时,请检查网络连接状况 1160:网络错误出现错误,...1159:网络错误,读超时,请检查网络连接状况 1160:网络错误出现错误,请检查网络连接状况 1161:网络错误,写超时,请检查网络连接状况 1062:MYSQL字段值重复,入库失败 1169:

4.6K40

Mysql常见错误提示及解决方法

1023:关闭时发生错误。 1024:读文件错误。 1025:更改名字时发生错误。 1026:写文件错误。 1030:可能是服务器不稳定。(具体原因不是很清楚) 1032:记录不存在。...1045:数据库服务器/数据库用户名/数据库名/数据库密码错误,请联系空间商检查帐户。...1149:SQL 语句语法错误。 1158:网络错误出现错误,请检查网络连接状况。 1159:网络错误,读超时,请检查网络连接状况。 1160:网络错误出现错误,请检查网络连接状况。...1216:外键约束检查失败,更新子表记录失败。 1217:外键约束检查失败,删除或修改主表记录失败。 1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器。...2002:服务器端口不对,请咨询空间商正确的端口。 2003:MySQL 服务没有启动,请启动该服务。

1.9K20
领券