• 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
• 构建工具:Ant、Gradle、maven
• 自动部署:Capistrano、CodeDeploy
• 持续集成(CI):Bamboo、Hudson、Jenkins
• 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
• 容器:Docker、LXC、第三方厂商如AWS
继续阅读项目架构工具选择• 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
• 构建工具:Ant、Gradle、maven
• 自动部署:Capistrano、CodeDeploy
• 持续集成(CI):Bamboo、Hudson、Jenkins
• 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
• 容器:Docker、LXC、第三方厂商如AWS
继续阅读项目架构工具选择在现实生活中,一个事件需要经过多个对象处理是很常见的场景。例如,采购审批流程、请假流程等。公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据需要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息,这无疑增加了难度。
在计算机软硬件中也有相关例子,如总线网中数据报传送,每台计算机根据目标地址是否同自己的地址相同来决定是否接收;还有异常处理中,处理程序根据异常的类型决定自己是否处理该异常;还有 Struts2 的拦截器、JSP 和 Servlet 的 Filter 等,所有这些,都可以考虑使用责任链模式来实现。
继续阅读责任链模式(职责链模式)详解你的微服务是否太小?或者太紧密耦合?本设计指南可以提供帮助。
设计微服务往往更像是一门艺术而不是科学。本文提出五个建议:
1.它不会与其他服务共享数据库表
2.它拥有最少量的数据库表
3.它设计为有状态的或无状态的
4.其数据可用性需求
5.这是真相的唯一来源
继续阅读划分微服务边界的5个特征