微服务构建本质上是软件构建过程中长期演进积累的一系列理念、架构原则、工具和最佳实践。领域驱动设计的软件思想体系和方法论可以用于指导微服务建模、微服务划分、微服务架构设计等相关工作,它可以促使技术人员与领域专家达成共识,构建领域边界合理、具备明确界限上下文、关注点分离、独立自治的微服务。领域驱动设计概述领域驱动设计(Domain Driven Design)概念的兴起可以追溯到1986年,《人月神话
转载
2024-07-03 01:19:49
26阅读
最近在看微服务编排的东西,看到一篇入门博客,私以为不错,再次分享下: 什么是微服务微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”。微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的
转载
2024-05-19 12:06:49
201阅读
一、基本规则1、代码清晰又清晰又简洁的代码当然是最好的了,但简洁不如清晰重要。总的讲不要使用单词的简写,除了非常常用的简写以外,尽量使用单词全称。API的名称不要有歧义,一看你的API就知道是以什么方式做了什么事情,不要让人有疑问!2、一致性代码保持一致,例如:创建UI相关的方法,可以使用统一的方法命名,所见即所得,见表知其意,这样,既保证了代码的一致性,也可以方便我们后续维护和管理,也利于团队代
转载
2024-08-23 13:42:38
161阅读
摘要经常会有同学遇到api通过ip可以访问,但是通过域名却不可以访问。本篇文章总结了造成这种情况可能的原因。 因为与具体技术的选型、规则配置有关,所以没有深入讨论,只是列出可能性,仅供参考。分析问题通过域名访问不到的请求表现的现象有接口返回404一个错误页面提示method type不支持提示接口缺乏必要的参数这些都是接口访问不到,2是配置了错误页面;3,4则发出的POST/PUT 请求,但是请求
转载
2024-08-30 17:04:42
11阅读
Martin Fowler在他的博客中试试这样描述微服务的 In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communi
转载
2024-09-11 14:44:19
21阅读
概览本文主要介绍如何使用RabbitMQ消息代理来实现分布式系统之间的通信,从而促进微服务的松耦合。RabbitMQ,也被称为开源消息代理,它支持多种消息协议,并且可以部署在分布式系统上。它轻量级,便于部署应用程序。它主要充当一个队列,其中输入的消息可以首先被操作。RabbitMQ可以在许多操作系统和云环境中运行,并为大多数流行语言提供了广泛的开发工具。它是生产者-消费者模式,生产者发出信息,消费
什么是服务发现首先我们先思考一个问题,当我们在浏览器中输入一个域名比如baidu.com,然后发生了什么才能让我们访问到百度的网页?简单来说,浏览器会首先从主机的hosts文件中查看是否有baidu.com对应ip的映射,如果有就直接用hosts文件得到的ip来请求数据,如果没有那么就需要去DNS服务器来请求ip地址,Dns服务器在自己数据库中查找域名对应的ip,如果有多个ip那么需要用DNS负载
转载
2024-09-04 18:52:47
37阅读
术语科普开始讲SpringCloud Alibaba之前先科普一下项目常用术语,方便后续内容讲解服务器:分软件与硬件,软件:类型tomcat这种跑项目的程序, 硬件:用来部署项目的电脑(一般性能比个人电脑好)服务:操作系统上术语:一个程序,开发中术语:一个能对外提供功能的程序微服务:小的服务,一个完整项目可以拆n个子项目,这些子项目能独立运行,独立对为提供功能。节点:微观上:一个服务,宏观上:一台
转载
2024-04-17 23:27:37
133阅读
什么是微服务就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style)。通常而言,微服务是一种架构模式或者架构风格,他提倡将单一的应用划分为一个独立的服务,每个服务运行在自己独立的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通
转载
2024-04-01 21:49:11
82阅读
一、什么是消息队列(MQ)消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 推荐文章:面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?可以简单的了解消息队列的作用和应用场景什么是消息队列?
1、初始MQ 1.1 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应,时效性强,可以立即得到结果,耦合度高, 性能吞吐能力低,有级联失败问题,有额外的资源消耗,Feign就属于同步方式 异步通讯:就像微信发消息,不需要马上回复,异步调用可以避免上述问题 无需等待订阅者处理完成,响应更快速 服务之间不是直接调用,不存在级联
命名空间和group1.namespace作为环境隔离使用,例如开发环境、测试环境、生产环境等。2.group作为微服务隔离,每个group代表一个微服务,例如customer-service等。配置文件命名1.nacos中data-id相当于spring.application.name,由于每个微服务都有一个默认的application.yml配置文件,所以每个微服务的默认配置文件命名为微服务
转载
2024-05-12 21:39:08
464阅读
微服务、微服务核心基础以及常见的微服务框架背景微服务越来越多地用于开发领域,因为开发人员致力于创建更大,更复杂的应用程序,这些应用程序作为小型服务的组合得到更好的开发和管理,这些服务可以协同工作,实现更大的应用程序范围的功能。工具正在上升,以满足使用逐件方法思考和构建应用程序的需要,坦率地说,这比一次性考虑整个应用程序更不令人难以置信。(DZone,Java微服务 )什么是微服务?微服务是一种面向
C#的命名规范 1、命名约定Pascal和Camel命名约定编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType) 以下是一些常用的C#成员及其推荐命名方法: 标志符 规则 实例与描述 类class Pas
转载
2024-08-05 17:29:51
40阅读
etcd构建自身高可用集群主要有三种形式: 静态发现: 预先已知etcd集群中有哪些节点,在启动时通过--initial-cluster参数直接指定好etcd的各个节点地址 etcd动态发现: 静态配置前提是在搭建集群之前已经提前知道各节点的信息,而实际应用中可能存在预先并不知道各节点
ip
的情况, 这时可通过已经搭建的
etcd
来辅助搭建新的
etcd
集群。通过
转载
2024-09-30 17:51:15
26阅读
# Java 微服务模块服务命名规范
## 1. 流程图
```mermaid
flowchart TD
A(开始)
B[创建微服务模块]
C[定义服务接口]
D[实现服务接口]
E[服务命名规范]
F(结束)
A --> B --> C --> D --> E --> F
```
## 2. 步骤表格
| 步骤 | 描述
原创
2024-04-05 04:35:05
257阅读
“微服务”架构是近期软件应用领域非常热门的概念。那什么是微服务?简单的说,微服务架构就是将一个完整的应用 从数据存储开始垂直拆分成多个不同的服务,每个服务都能独立部署、独立维护、独立扩展,服务与服务间通过诸如REST、API的方式互相调用。传统IT架构面临的一些问题以及云计算及互联网公司大量开源轻量级技术不停涌现并日渐成熟 ,这就催生了新的架构设计风格 – 微服务架构的出现。(简单描述一下轻量
转载
2024-04-22 11:25:00
33阅读
以下规范仅代表个人观点以及部分公司的规范,不一定适用于所有项目,具体如何准守以实际项目而定。 一.模型篇请求入参所有Controller入参,一律使用 DTO结尾进行交互所有 DTO 命名,前面采用驼峰命名,后面DTO大写所有DTO内参数,如果是一组,请用List<类型>进行接口,尽量不用分隔符隔开,然后字符串接收,所有DTO放置在子模块Model下,根据业务进行分组,例如:
转载
2024-02-25 11:16:53
72阅读
微服务是什么微服务起源于2005年Peter Rodgers博士在云端运算博览会提出的微Web服务(Micro-Web-Service),根本思想类似于Unix的管道设计理念。2014年,由Martin Fowler 与 James Lewis共同提出了微服务的概念,定义了微服务架构风格是一种通过一套小型服务来开发单个应用的方法,每个服务运行在自己的进程中,并通过轻量级的机制进行通讯(HTTP A
转载
2024-05-02 18:08:37
48阅读
1.项目命名:
xx-xx/xx-xx-xx
项目名-模块名/项目名-模块名-二级模块名
大小写:全部小写,单词间使用-连接
2项目划分
mes-base 共有基础模块,抽出共用实体,共用工具类等
mes-discovery-eureka 服务注册中心
mes-api-gateway 网关
mes-config 配置中心
mes-user 用户模块
mes-equipment 设备管理模块
等等,
转载
2024-08-11 07:28:04
148阅读