
博客系统(微服务)
按照业务拆分为:用户模块(8080端口)、博客模块(9090端口) 将多个模块中的公共 SDK 等统一放到 blogcommon 模块中 网关服务 gatewayservice(10020端口)单独作为一个模块 bloginfoapi 和 userinfoapi 模块各自存放对应服务的公共 SDK 比如 feign远程调用接口 、pojo 等数据。 先说结论:当 Controller 已经...

按照业务拆分为:用户模块(8080端口)、博客模块(9090端口) 将多个模块中的公共 SDK 等统一放到 blogcommon 模块中 网关服务 gatewayservice(10020端口)单独作为一个模块 bloginfoapi 和 userinfoapi 模块各自存放对应服务的公共 SDK 比如 feign远程调用接口 、pojo 等数据。 先说结论:当 Controller 已经...
前面的服务,咱们都是在单机上部署的,接下来我们使用多台服务器,演示下分布式服务部署。 在部署之前先整理下需要部署的内容: 1. MySQL 2. Nacos 3. 网关服务 4. 产品服务 5. 订单服务 由于服务器受限,我们把 MySQL、Nacos,网关服务部署为单例的,产品服务和订单服务部署为多例的。 机器个数: 1N台均可。 如果为 1 台,参考前面课程,所有的项目均部署在一台机器即可。...

前面学习中通过 Eureka、Nacos 解决了服务注册、服务发现的问题,使用 Spring Cloud LoadBalance 解决了负载均衡的问题,使用 OpenFeign 解决了远程调用的问题。 但是当前所有微服务的接口都是直接对外暴露的,可以直接通过外部访问。为了保证对外服务的安全性,服务端实现的微服务接口通常都带有一定的权限校验机制。并且由于使用了微服务,原本一个应用的的多个模块拆分成了...

观察之前写的远程调用代码: 虽说 RestTemplate 对 HTTP 封装后,已经比直接使用 HTTPClient 简单方便很多,但是还存在一些问题: 1. 需要拼接 URL,灵活性高,但是封装臃肿,当 URL 复杂时容易出错。 2. 代码可读性差,风格不统一。 微服务之间的通信方式,通常有两种:RPC 和 HTTP。 在 SpringCloud 中,默认是使用 HTTP 来进行微服务的通信 ...

2018年6月,Eureka2.0 宣布闭源(但是1.X版本仍然为活跃项目),同年7月份,阿里 Nacos 宣布开源,并快速成为国内最受关注开源产品。作为 Eureka 的替代,Nacos 已经成为了国内开发者的首选,目前 Nacos Star 已经突破 28K(Eureka12K) Nacos (Dynamic Na mingand Co nfiguration S ervice) 在最初开源时...

负载均衡(LoadBalance)是高并发、高可用系统必不可少的关键组件。 当服务流量增大时,通常会采用增加机器的方式进行扩容,负载均衡就是用来在多个机器或者其他资源中,按照一定的规则合理分配负载。 一个团队最开始只有一个人,后来随着工作量的增加,公司又招聘了几个人。负载均衡就是:如何把工作量均衡的分配到这几个人身上,以提高整个团队的效率。 在服务端进行负载均衡的算法分配。 比较有名的服务端负载均...

上个章节的例子中可以看到,远程调用时,我们的 URL 是写死的: 当更换机器,或者新增机器时,这个 URL 就需要跟着变更,就需要去通知所有的相关服务去修改。随之而来的就是各个项目的配置文件反复更新,各个项目的频繁部署。这种没有具体意义,但又不得不做的工作,会让人非常痛苦。 注册中心(Service Registry / Service Discovery Center)是微服务架构中一个核心组件...

Spring Cloud 是基于 Spring Boot 进行开发的,Spring Boot 3.X 以下的版本,Spring 官方已不再进行维护(还可以继续使用),Spring Boot 3.X 的版本,使用的 JDK 版本基线为 JDK17 。 在使用 Spring Cloud Azure 的场景(即 Spring Cloud 在 Azure 上对 MySQL 的支持)中,官方明确表示其 "当...

下图表示了服务架构从单体应用逐渐转变为微服务应用的过程 业务的所有功能实现都打包在一个 war 包或者 jar 包中,这种方式就称为单体架构。 以大家都很熟悉的电商系统为例,电商系统包括:用户管理、商品管理、订单管理、支付管理、库存管理、物流管理等等,项目早期我们会把这些模块都写在一个 web 项目中,然后统一部署到一个 web 服务器中。 这种架构开发简单,部署简单,一个项目就包含了所有的功能,...