1 概述1.1 单体架构vs 微服务架构 单体架构是什么微服务是什么微服务特性微服务全景架构图微服务优缺点微服务适用场景1.2 业务分析与建模项目功能演示与分析微服务拆分项目架构图数据库设计 API文档1.3 编写微服务创建小程序创建项目编写用户微服务编写内容微服务2 单体应用一个归档包(例如war包)包含所有功能的应用程序,我们通常称为单体应用。而架构单体 ......
332
0
0
2023-05-21
使用微服务的Spring据笔者所知,从未接触过Spring Framework 的Java开发人员可谓寥寥无几。实际上,Spring Framework是由许多项目组成的,它可以与许多其他框架一起使用,开发人员迟早都将被迫尝试使用它。虽然Spring Boot 的应用经验相当不常见,但它很快就获得了很高的人气。与Spring Framework相比,Spri ......
265
0
0
2023-05-21
目录Consul是什么Consul原理启动 Consul 集群kubernetes集成ConsulSpringBoot注册Consul总结 Consul是什么Consul是一个基于HTTP的服务发现工具,用于配置和管理系统和服务之间的依赖关系。它提供了一个简单的方式来注册、发现和配置服务,并包括健康检查、负载均衡和故障转移等功能。Consul是一种 ......
391
0
0
2023-05-06
目录微服务相关简述微服务架构中的重要角色微服务架构分布式远程调用RESTFUL接口资源表现层状态转化RPCCAP原理springCloud简述服务注册与发现负载均衡熔断链路追踪API网关测试模拟远程调用创建父工程remote_call模块创建子模块server_a创建子模块server_b微服务相关简述微服务架构中的重要角色服务调用者:可以暂时认为是与用户交 ......
302
0
0
2023-04-28
一、前言微服务(MicroServices)是一种架构风格,一个大型复杂软件应用由多个微服务和前端展示层组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 以往我们开发应用程序都是单体应用(可以理解为一个部署包包含了项目的所有功能),虽然开发和部署比 ......
365
0
0
2022-12-16
在单体应用中,一个组件调用其它组组件时,是通过语言级的方法或者函数调用,而一个基于微服务的应用是运行于多个服务器上的分布式系统,每个服务实例是一个典型的进程。所以,如下图显示的,服务必须通过内部进程交互机制(IPC)进行交互。交互风格在为一个服务选择IPC的时候,首先考虑一下这些服务是如何交互的是很有用处的。有多种client/server的交互风格,它们可 ......
361
0
0
2022-12-16
1. 基础概念1.1 集群与节点kubernetes是一个开源的容器引擎管理平台,实现容器化应用的自动化部署,任务调度,弹性伸缩,负载均衡等功能,cluster是由master和node两种角色组成master负责管理集群,master包含kube-apiserver,kube-controller-manager,kube-scheduler,etcd组件 ......
338
0
0
2022-11-15
微服务化最大的两个问题是可用性的问题和数据一致性的问题。我们把项目从一个单体拆分为微服务,项目复杂度上升,出问题的概率自然提高了。并且从数学与统计角度而言,由于服务数量变多了,假设单个服务的故障率不变,那么整体微服务系统的故障率则会提高。如果我们不做任何预防手段,微服务中若有一个服务宕机,可能会连锁反应导致整个服务不可用。所以我们采用“隔离”的手段,让影响范 ......
288
0
0
2022-11-12
网关简介大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去用。 这样架构会存在很多问题:每个业务都会需要鉴权、限流、权限校验、跨域等逻辑,如果每个业务都各自为战,自己造轮子实现一遍,会很蛋疼,完全可以抽出来,放到一个统一的地方去做。如果 ......
310
0
0
2022-11-11
一、Sentinel 控制台部署下载地址# 启动控制台命令 java -jar sentinel-dashboard-1.8.1.jar 用户可通过如下参数进行配置: -Dsentinel.dashboard.auth.username=sentinel 用于指定控制台的登录用户名为 sentinel -Dsentinel.dashboard.a ......
405
0
0
2022-11-11
一、什么是 SpringCloud LoadBalancerSpring Cloud LoadBalance 是 Spring Cloud 官方自己提供的客户端负载均衡器,用来替代 Ribbon, Spring官方提供了两种负载均衡的客户端:RestTemplateRestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestT ......
418
0
0
2022-11-11
一、管理命令docker version,查看docker客户端及服务端的版本信息;docker info,查看docker容器的详细信息,除了如上版本信息,还有镜像、容器数据卷、容器网络、Registry地址、物理配置等信息;docker --help,查看命令帮助;二、镜像命令docker images,查看本地所有顶层镜像(top level)信息的命 ......
313
0
0
2022-11-10
上一篇文章中引入了消息队列对秒杀流量做削峰的处理,我们使用的是Kafka,看起来似乎工作的不错,但其实还是有很多隐患存在,如果这些隐患不优化处理掉,那么秒杀抢购活动开始后可能会出现消息堆积、消费延迟、数据不一致、甚至服务崩溃等问题,那么后果可想而知。本篇文章我们就一起来把这些隐患解决掉。批量数据聚合在SeckillOrder这个方法中,每来一次秒杀抢购请求都 ......
611
0
0
2022-11-09
有了服务注册和发现机制,消费者不需要知道具体服务提供者的真实物理地址就可以进行调用,也无须知道具体有多少个服务者可用;而服务提供者只需要注册到注册中心,就可以对外提供服务,在对外服务时不需要知道具体是哪些服务调用了自己。RPC 配置Etcd: Hosts: - 127.0.0.1:2379 Key: user.rpc 这里分析go- ......
358
0
0
2022-10-28
微服务遵循领域驱动设计(DDD),与开发平台无关。Python 微服务也不例外。Python3 的面向对象特性使得按照 DDD 对服务进行建模变得更加容易。本系列的第 10 部分演示了如何将用户管理系统的查找服务作为 Python 微服务部署在 Kubernetes 上。微服务架构的强大之处在于它的多语言性。企业将其功能分解为一组微服务,每个团队自由选择一个 ......
312
0
0
2022-10-26